TodoList
种类并查集(食物链、关押罪犯)
记忆化dfs与拓扑排序之间的联系,bfs式拓扑排序
记忆化搜索/dp->dijkstra、spfa->次短路、k短路(A*)
2019年4月25日18:59:02 咕咕咕咕咕咕咕咕咕咕咕
kmp与mp,求字符串周期系列……
2019年8月16日12:12:39 咕咕咕咕咕咕咕咕咕咕咕
主席树卡空间、整体二分
线段树进阶
- BZOJ1018 堵塞的交通
线性基第k大之类的问题
- HDU 3949 XOR
- BZOJ 2844 albus就是要第一个出场
- BZOJ 3811 玛里苟斯
- CF742G
贪心反悔
- https://www.cnblogs.com/antiquality/p/9289671.html
- https://www.cnblogs.com/Miracevin/p/9795871.html
- https://www.cnblogs.com/wawcac-blog/p/11359534.html CF1203F2
- CSUOJ 2337 终局,官方数据是不是有点问题
- 洛谷 P2949 [USACO09OPEN]工作调度Work Scheduling(if和if嵌套时注意可能不能缩减if数量)
- BZOJ 1029: [JSOI2007]建筑抢修
- ………………HDU6709钓鱼大师
tarjan相关
- 缩点
- 受欢迎的牛
- HDU 5934 Bomb
- POJ 1236 Network of Schools
- 求割点和桥
- UVA 315 POJ 1144 ZOJ 1311 Network 神奇的简化板子,dfn和low记录的是深度,不是时间戳,要仔细想一下
- BZOJ 1123 [POI2008]BLO (记住无向图只有两种边啊)
- 上面两个综合起来再加个LCA可得:HDU 2460 POJ 3694 Network
- 点双联通和边双联通=》仙人掌
- 再加个求最小环的,一般情况dfs不能求最小环,要Floyd或者多次dijkstra什么的
- 洛谷 P4151 BZOJ 2115 [WC2011]最大XOR和路径 求环的方法,这篇里面也再更新一下。这题可以dfs求环是因为——对于有公共边的两个环,总的和两个小的这三个环求出任意两个就可以异或出第三个
- CF1206D,那些wa14 wa1 wa74
- hdu1599 裸的最小环
- https://vijos.org/p/1423 也可以算是最小环板子,不过有点变化
DP
- 数位DP
- 斜率优化和优先队列优化的一堆题
数学
- 无穷级数,把猴子排序那篇博客的坑填了
- min25筛
- 数论函数专题(莫比乌斯反演 最裸的BZOJ2301 百度之星初赛C轮C题HDU6715)
- 拉格range 插值
- CF622F、教科书般的亵渎->https://www.luogu.org/problemnew/solution/CF622F求自然数幂和,除了拉格朗日插值(关于那个多项式次数的证明),还有好像差分、用杨辉三角、组合数之类的递推(李善兰自然数幂求和公式?),还有伯努利数(https://www.cnblogs.com/hbyer/p/10821363.html)、斯特林数……https://www.cnblogs.com/Hany01/p/10220530.html……但其他做法好像没有拉格朗日快……做了教科书那题就把拉格朗日博客补了吧
- 查自然数幂和的论文还发现一些奇奇怪怪的不太适合竞赛的做法,有些还不错的感觉,还有不少是上面几种方法,但总感觉其中有些文章作者不想让人看懂,https://www.luogu.org/problemnew/solution/P4593真的,竞赛题这种东西,洛谷题解、博客比论文好懂不少
- FFT
- 多项式乘法、字符串匹配
字符串
- AC自动机
- 后缀数组
- 后缀自动机
一堆一堆又一堆
2019年8月18日15:24:29:昨天没写博客,只更新了这个TODOlist,做题量就上去了……写博客不详细,连两年后现在的自己都看不懂;详细,时间又不够……先拿Todolist缓冲一下吧
宁夏网络赛
- HDU6705 -》CodeForces 1196F K-th Path -》洛谷 P2483 BZOJ 1975 [SDOI2010]魔法猪学院
- 建超级源点超级汇点跑k短路、选前k短的边跑Floyd、lfw的
- HDU6704后缀自动机还没学
- HDU6709又是神奇的贪心——
- 煮鱼的时间对k取模后排序(排序规则见代码)。然后开始抓一条,煮每一条的时候,去抓t_i/k条,把余数扔进大根堆,煮下一条,发现下一条还没抓,从大根堆里取出最大的,时间加上k-最大余数,在煮那条鱼时多抓一条。如果发现余数未零,就别扔了,堆为空时,就直接 ans+=k。"原来商也要排吗"“要的,如果一个鱼t巨长,足够抓所有鱼,而余数为1,其它的t为k-1 ,不把商大排前面不行”。代码——https://www.luogu.org/paste/63ebppl2
- https://blog.csdn.net/liufengwei1/article/details/100047318又是可反悔的贪心
CF1207
- D:简单容斥https://blog.csdn.net/liufengwei1/article/details/100030671
- E交互题https://blog.csdn.net/liufengwei1/article/details/100030936
湖南省赛2017K,留坑……
百度之星第三轮初赛B即HDU6714
- 最短路dag上dp,然后经过简化,dag都不用建了,dijkstra过程中就可以搞出来
- 湖南省赛2017 I,看上去差不多
- ccf csp 201903-5 317号任务可能可以用这个思路?
第三轮D即HDU6715
- 数论题,现在还不会……yehs的想法是——先筛出$\mu(x)$,然后暴力跑三重循环——
prepare();//筛出mu函数 s(T);//快读 while(T--){ s(n);s(m); int h=min(n,m); long long ans=0; for(int d=1;d<=h;d++){ if(!mu[d])continue; for(int i=1;i<=n/d;i++){ if(!mu[i])continue; if(gcd(i,d)!=1)continue; for(int j=1;j<=m/d;j++){ if(!mu[j])continue; if(gcd(i,j)!=1||gcd(d,j)!=1)continue; ans+=mu[d]*mu[i]*mu[j]; } } } cout<<ans<<endl;; }
结果肯定是T了,赛后看别人代码,发现可以把最里面的两重循环用前缀积预处理出来……留坑
百度之星初赛D轮什么**出的题,数据一塌糊涂——
第一题(HDU6719)题面说n>=1,结果实测n为0时答案要输出1
最后一题HDU6724本来是网络流,不少人用一个假算法A过去了,就——每个点的度数都大于等于k就yes,赛后交流时Artoriax给了一组hack数据:
1 3 7 4 1 2 1 2 1 2 2 3 2 3 2 3 1 3
这个图,度数满足要求了,但边的数量m都不够k棵树的边数总和(k*(n-1)),后来大家讨论过程又提出弥补办法——每个点度数都大于等于k且所有点度数总和大于等于k*2(n-1)(换句话说,m>=k*(n-1)),然后Artoriax又给了一组hack数据——
1 4 6 2 1 2 1 2 1 2 2 3 2 4 3 4
从此,HDU6724的正解就只剩网络流了(开始时读错题,还拿基尔霍夫定理搞了一会)