TodoList

种类并查集(食物链、关押罪犯)

记忆化dfs与拓扑排序之间的联系,bfs式拓扑排序

记忆化搜索/dp->dijkstra、spfa->次短路、k短路(A*)

2019年4月25日18:59:02 咕咕咕咕咕咕咕咕咕咕咕

kmp与mp,求字符串周期系列……

2019年8月16日12:12:39 咕咕咕咕咕咕咕咕咕咕咕

主席树卡空间、整体二分

线段树进阶

  • BZOJ1018 堵塞的交通

线性基第k大之类的问题

贪心反悔

tarjan相关

  • 缩点
  • 求割点和桥
    • UVA 315 POJ 1144 ZOJ 1311 Network 神奇的简化板子,dfn和low记录的是深度,不是时间戳,要仔细想一下
    • BZOJ 1123 [POI2008]BLO (记住无向图只有两种边啊)
  • 上面两个综合起来再加个LCA可得:HDU 2460 POJ 3694 Network
  • 点双联通和边双联通=》仙人掌
  • 再加个求最小环的,一般情况dfs不能求最小环,要Floyd或者多次dijkstra什么的

DP

  • 数位DP
  • 斜率优化和优先队列优化的一堆题

数学

  • 无穷级数,把猴子排序那篇博客的坑填了
  • min25筛
  • 数论函数专题(莫比乌斯反演 最裸的BZOJ2301 百度之星初赛C轮C题HDU6715)
  • 拉格range 插值
  • 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

湖南省赛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的正解就只剩网络流了(开始时读错题,还拿基尔霍夫定理搞了一会)

原文地址:https://www.cnblogs.com/wawcac-blog/p/10324185.html