惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

小众软件
小众软件
IT之家
IT之家
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Security Archives - TechRepublic
Security Archives - TechRepublic
P
Proofpoint News Feed
C
CERT Recently Published Vulnerability Notes
阮一峰的网络日志
阮一峰的网络日志
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
The Cloudflare Blog
P
Palo Alto Networks Blog
Know Your Adversary
Know Your Adversary
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Cisco Talos Blog
Cisco Talos Blog
L
Lohrmann on Cybersecurity
AWS News Blog
AWS News Blog
J
Java Code Geeks
博客园_首页
Scott Helme
Scott Helme
WordPress大学
WordPress大学
有赞技术团队
有赞技术团队
T
The Exploit Database - CXSecurity.com
Security Latest
Security Latest
V
Visual Studio Blog
Cloudbric
Cloudbric
Jina AI
Jina AI
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
博客园 - 叶小钗
Apple Machine Learning Research
Apple Machine Learning Research
博客园 - 聂微东
人人都是产品经理
人人都是产品经理
A
Arctic Wolf
C
Cybersecurity and Infrastructure Security Agency CISA
S
SegmentFault 最新的问题
The Last Watchdog
The Last Watchdog
SecWiki News
SecWiki News
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
W
WeLiveSecurity
K
Kaspersky official blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Hacker News: Ask HN
Hacker News: Ask HN
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
宝玉的分享
宝玉的分享
Hugging Face - Blog
Hugging Face - Blog
量子位
Google Online Security Blog
Google Online Security Blog
博客园 - Franky
Simon Willison's Weblog
Simon Willison's Weblog
博客园 - 三生石上(FineUI控件)
Recent Commits to openclaw:main
Recent Commits to openclaw:main

某岛

AtCoder Beginner Contest 409 Luogu P5325. 【模板】Min_25 筛 UOJ #188. 【UR #13】Sanrd AtCoder Beginner Contest 371 AtCoder Beginner Contest 369 RPGMaker 2k3 百科 OneShot 的考古 2024“开创拓芯”游戏创享节的相关记录 CJ 回来后的戒断反应 Luogu P10221. [省选联考 2024] 重塑时光 Luogu P5308 [COCI2018-2019#4] Akvizna wqs 二分 歌唱王国 Lean 相关 BZOJ 3153. Sone1 The 2023 ICPC World Finals Luxor 新巴别塔 Sora 的想象与思考 Facebook Hacker Cup 2023 Round 1 AtCoder Beginner Contest 322 LLaMA 2 相关 HuggingFace AI Game Jam ACL 2023 Trans 相关… Luogu P2053. [SCOI2007] 修车 Luogu P1973. [NOI2011] NOI 嘉年华 Luogu P1933. [NOI2010] 旅行路线 Luogu P1954. [NOI2010] 航空管制 Luogu P2048. [NOI2010] 超级钢琴 Luogu P2046. [NOI2010] 海拔 Luogu P3227. [HNOI2013] 切糕 Luogu P8500. [NOI2022] 冒泡排序 Luogu P3629. [APIO2010] 巡逻 USACO 2018 February Contest, Gold Problem 2. Directory Traversal Luogu P3647. [APIO2014] 连珠线 IZhO 2017. Problem F. Hard route SPOJ TWOPATHS. Two Paths 换根 dp 洪恩电脑 —— 开天辟地 Facebook Hacker Cup 2022 Round 2 Codeforces Round #875 Luogu P5828 边双连通图计数 EC Final 拉格朗日反演定理 Luogu P5827. 点双连通图计数 无标号连通图 AtCoder Beginner Contest 284 Luogu P4708. 画画 Luogu P6295. 有标号 DAG 计数 BZOJ #2863. 愤怒的元首 HDU 3303. Harmony Forever 聊聊《明日方舟 Side Story 孤星》与《崩坏:星穹铁道》 SGU 208. Toral Tickets 后日谈,SHLUG 月度分享(上) 钢琴练习 EasyRPG x ChatGPT ControlNet 相关 The 1st Universal Cup, Stage 4, Ukraine EasyRPG —— Sliding Puzzle The 1st Universal Cup, Stage 3, Poland DP 优化练习 NOI 2009 TypeDB Forces 2023 Nas 买来做什么… Global Game Jam 2023 参赛纪录 The 1st Universal Cup, Stage 2, Hongkong The 1st Universal Cup, Stage 0, Nanjing Codeforces Round #850 舟游同人游戏 RM2k3 机能增强 —— EasyRPG Player 魔改版 《海之歌》设定与剧本 dfs 序求 lca Codeforces Round #844 P3768 简单的数学题 AtCoder Beginner Contest 281 ChatGPT 相关 AtCoder Grand Contest 059 AtCoder Beginner Contest 280 Codeforces Global Round 24 事实核查,以乌鲁木齐火灾为例 SPOJ MUSKET. Musketeers Pinely Round 1 Note about FTX Permutation ICPC World Final 2021 CodeTON Round 3 Codeforces Round #831 Educational Codeforces Round 138 NovelAI 法术指南 卡农 Educational Codeforces Round 135 Codeforces Round #819 瓦喵之夏 NOI 2022 Luogu P3765 总统选举 Luogu P3369 【模板】普通平衡树 网络国家 旋转卡壳 OFAC Sanctions && Tornado Cash BZOJ 1185. [HNOI2007]最小矩形覆盖
Codeforces Round #740
2021-08-28 · via 某岛

传送门

https://codeforces.com/contest/1558

久违的 Tourist round…
因为 B 题没做出来,直接又跌成蓝名。。。

Problem B. Up the Strip

给定下面的递推公式:
$f(x) = \sum \limits_{y=1}^{x-1} f(x-y) + \sum \limits_{z=2}^{x} f(\lfloor \frac{x}{z} \rfloor)$
f(1) = 1,求 f(n)。

const int N = int(4e6) + 9;

Int f[N], s[N];
int n;

int main()
{

#ifndef ONLINE_JUDGE
    freopen("in.txt", "r", stdin);
    //freopen("/Users/minakokojima/Documents/GitHub/ACM-Training/Workspace/out.txt", "w", stdout);
#endif

    RD(n, MOD); f[n] = s[n] = 1;
    DWN(i, n, 1) {
        f[i] = s[i+1];
        //FOR_1(j, 2, i) f[i/j] += f[i];
        for (int j=2;i*j<=n;++j) {
            int l = i*j, r = min(n+1, l+j);
            f[i] += s[l]-s[r];
        }
        s[i] = s[i+1] + f[i];
    }

    cout << f[1] << endl;
}

非常 nice 的题。。个人非常喜欢。。。naive 的我只会类似数论分块的 sqrt 搞法。
但这个方法只能过 div2 的弱化版,比赛时华丽的 TLE 了。
正确的做法是考察相邻状态求和过程中的 diff,然后整块整块的处理。。

Problem C. Bottom-Tier Reversals

给定一个排列,每次你可以选一个前缀翻转,问是否能在 5n/2 步数内排序这个排列。
递归构造,分情况倒着讨论即可,发现恰好至多 5 步可以将规模减小 2,满足条件。

Problem D. Top-Notch Insertions

计数。问有多少长度为 n 的排列 ai,满足 ai 的值域为 [1,n] 且,对它执行插入排序时,插入的时刻和位置恰好时给定的 m 个操作。

假设不提供任何插入信息,那么任意构造一个长度为 n,值域为 [1, n] 的非严格单调递增序列都满足条件,方案数是经典的 C(2n+1,n)。
(证明,后面的每个数都多一个等号成立的影子状态,相当于给后面每个位置都累加 1,以保证每个数不相等,构造出从 2n+1 个数里选 n 个数的一一映射。)
那么如果出现了插入信息,会让一些位置的等号关系不成立,从而上面的影子状态变少,假设有 m 个等号不成立,答案就是 C(2n+1-m,n)。

但是提供的插入信息不一定一定会让 m+=1,有些信息是会重复的。
问题变为使用数据结构维护出等号不成立的位置即可。

标准做法是 Treap 或者 Splay 这种,可以支持在 kth 位置插入一个数的平衡树结构,注意需要动态离散化。复杂度 O(nlogn)。
Splay + 动态离散化(608ms)

当然也可以使用 rope 卡过去,复杂度 O(nsqrt(n)),使用 rope 的代码非常之短,就几行,而且似乎因为是奇妙的可持久化块状链表结构,甚至不需要动态离散化,
虽然 使用 rope 有可能会带来不幸,但是哪怕是用来对拍也比暴力要好写的多。。。

    Rush {
        r = r0; RD(n); int m = 0; Rush {
            int x, y; RD(x, y);
            if (r[y] == 0) {
                ++m;
                r.insert(y+1, 1);
            } else {
                r.insert(y, 0);
            }
            //REP(i, 10) cout << r[i]; cout <<endl;
        }
        cout << Binom(n+n-1-m, n) << endl;
    }

Rope(1965ms)

貌似还有一种做法是倒着做,此时每次插入的位置就是最终的位置,于是可以 树状数组 记录 Offset + 二分答案求 kth,复杂度 O(nlog2n),实际跑得比平衡树要快。
树状数组(374ms)

Problem E. Down Below

图论题。给定一个 n 个点 m 条边的无向图。(无重边、无自环、联通)
你从 1 出发,每个其他点都有一个怪物,怪物有数值 ai 和 bi,当你到达 i 点时,你英雄的 power 必须要 > ai,怪物被消灭,然后 power += bi。
你不可以重复使用一条边。(访问后立刻返回)
问要消灭所有的怪物,英雄出发时所需的最少 power 时多少。
n <= 1000, m <= 2000

开始以为是双连通分量 + 树 dp。。。但是其实可以直接二分答案,然后迭代,每次用 bfs() 找环即可。
每找到一个环就把环上的点全加到可访问集合里。我们甚至不需要维护访问到每个点时的最大 power,因为如果需要 relax… 说明已经出现环了。
逻辑上这个可访问的集合实际上可以看作是被并查集合并在一起形成的一个 super node,实现上要讨论一下找到的环是在外部,还是首位都是这个 super node,虽然逻辑很简单,但比较容易写疵。

BFS 找环

Posted by xiaodao
Category: 日常