上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 30 下一页
摘要: 这里是个DAG,可以利用类似倍增的做法。 但是可以直接支配树做,建立一个虚点向所有的起点,然后支配树就即可。 // Author: levil #include<bits/stdc++.h> using namespace std; typedef long long LL; typedef pai 阅读全文
posted @ 2021-08-17 20:41 levill 阅读(35) 评论(0) 推荐(0) 编辑
摘要: 个人觉得理解起来比较抽象,自己可能也讲不好。 定义: 支配点:对于当前点u,如果删去点v后,点u就无法从起点s到达,那么称v为u的支配点。 支配树:将每个点和它的最近支配点连边,那么最后就会形成一棵树,称为支配树。 这个支配点具有类似传递性的性质,a是b的支配点,c是b的支配点,那么必定存在:a是b 阅读全文
posted @ 2021-08-17 14:03 levill 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 这场前面几题感觉都不是很难。 A:很显然很大的时候都用最大的来塞就行了,对于较小的时候用背包计算下最优的方案。 // Author: levil #include<bits/stdc++.h> using namespace std; typedef long long LL; typedef pa 阅读全文
posted @ 2021-08-16 08:40 levill 阅读(18) 评论(0) 推荐(0) 编辑
摘要: Fansblog: 虽然想到了威尔逊定理,但是觉得用不上。 这里有个结论,那就是相邻的质数之间的最大距离 <= 1e5 + 5。 有了这个结论,我们就能暴力找到Q。 然后根据威尔逊定理 (p - 1)! mod p = p - 1。 那么(p - 1) ! = (p - 1) * (p - 2) * 阅读全文
posted @ 2021-08-15 07:41 levill 阅读(25) 评论(0) 推荐(0) 编辑
摘要: A:排序之后以某个点为分界线肯定是最优的。 // Author: levil #include<bits/stdc++.h> using namespace std; typedef long long LL; typedef pair<double,int> pii; const int N = 阅读全文
posted @ 2021-08-14 07:42 levill 阅读(36) 评论(0) 推荐(0) 编辑
摘要: 1001 : 点双连通分量: tarjan模板题:需要注意的是,点双连通分量是极大子图,也就是说他如果是很多个环拼成一个环,那么这个分量还是一个,就是最大的那个。 我们从环顶退栈即可,类似割点的位置。 / Author: levil #include<bits/stdc++.h> using nam 阅读全文
posted @ 2021-08-12 17:23 levill 阅读(28) 评论(0) 推荐(0) 编辑
摘要: 练完车了,回归了! Longest Subarray: 这题的做法抽象到了极点。还是没有完全看懂。 题解:https://www.cnblogs.com/vege-chicken-rainstar/p/11503606.html 只能写下大致的理解:对于不合法的区间 + 1,合法 - 1 最后满足 阅读全文
posted @ 2021-08-12 07:58 levill 阅读(21) 评论(0) 推荐(0) 编辑
摘要: 这题非常好。 dp[i][j][3] - 以i为根的子树保护了j个点的方案数,0 - 未放置自己,且没被子节点保护,1 - 未放置自己,被子节点保护,2 - 放置了自己. 这里的转移从所有子节点的状态转移过来来想比较好。 这里主要有一点就是会存在增加新节点的情况。 1:自己没有放置,但是被子节点覆盖 阅读全文
posted @ 2021-08-12 07:55 levill 阅读(51) 评论(0) 推荐(0) 编辑
摘要: 出题人卡的真的好. 宇佐大人的白旗 ~ Most Famous Hero: 这题有点无语了,比赛的时候数据出问题了,害我一直出问题,最后数据修了就过了。 做法1:直接最短路上更新就好了。 // Author: levil #include<bits/stdc++.h> using namespace 阅读全文
posted @ 2021-08-02 17:20 levill 阅读(38) 评论(0) 推荐(0) 编辑
摘要: 模型一:进出序列。 求解:给定n个的数,有多少种出栈序列?(抽象成一个有n个1和n个-1组成的字串,且前k个数的和均不小于0,那这种字串的总数为多少?) 容斥可得 ans(合法) = ans(all) - ans(不合法)ans(all) = C(2n,n) //任选n个位置放1. 首选,我们将这个 阅读全文
posted @ 2021-07-21 08:42 levill 阅读(40) 评论(0) 推荐(0) 编辑
上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 30 下一页