扯淡的就是我们队训练赛两个队友一个过了一个一人题一个过了一个5人题,然后我这边有两个通过率90%+的卡住没过,呵呵了真的是,怀疑人生。
这个后来补题也是wa,计数并查集合并公式推错(这么简单卧槽我小学数学没学好),然后最愚蠢的是排序的时候把m写成了n,wa到哭。
其实当时第一眼看就大概想到是用计数的并查集做,但是没想到自己能写这么挫,而且当时主要是被那个二叉树卡住(怀疑人生+2),那个真的只要简单粗暴就好我却想多了,唉
扯淡的就是我们队训练赛两个队友一个过了一个一人题一个过了一个5人题,然后我这边有两个通过率90%+的卡住没过,呵呵了真的是,怀疑人生。
这个后来补题也是wa,计数并查集合并公式推错(这么简单卧槽我小学数学没学好),然后最愚蠢的是排序的时候把m写成了n,wa到哭。
其实当时第一眼看就大概想到是用计数的并查集做,但是没想到自己能写这么挫,而且当时主要是被那个二叉树卡住(怀疑人生+2),那个真的只要简单粗暴就好我却想多了,唉
算是学到了缩点构造新图的方法吧emm有点笨
有环的图一般都有点难倒腾,所以这种都是遇见了先求scc,变成DAG以后再想办法求解。
分析题意后可以发现,对于DAG,求出来的其实是一条路径,因为如果有分叉的话分叉的不同子树之间就没有办法互通了。令每个缩点的权值为含点的个数,这样就转化成了DAG上的最长路问题了。
错误:scc每次都会出现漏初始化错误。。。还有就是缩点之后的节点标记与原来的节点意义不同,要注意。
这题略坑。。。输入的可以是不连续的点,我一开始都从1开始dfs,WA了n发发现数据里可能没1这个点。。。GG
求割点的话本身倒是很裸,但是还要求出生成的子集个数,也是试了各种奇怪的方法。。。。后来发现把low[v]>=pre[u]的子节点v的数量记下来就可以了,至于证明。。。直觉证明法吧
继续阅读“[割点][强连通分量] POJ1523 SPF”
这场CF也是崩了。。AB太慢而且wa了n发,C知道正确做法然后wa了3发剩20min放弃了。然后今天手算了五分钟ac emmmmm
这个要做到每个格子都只走一次,就必须先蛇形然后转圈,只不过中间从哪一点开始转圈决定了最后的答案大小。样例给的就是两种极端情况,一种是从一开始就开始转圈,另一种是一直蛇形直到最后。
预处理的话左边的从左往右推,右边的从右往左推,主要是右边的计算有点绕(其实也不是很绕主要是当时心态崩了emmm 继续阅读“[CF][思维][预处理][枚举] CF1016C Vasya And The Mushrooms”
https://cn.vjudge.net/problem/POJ-2992
这个题数据非常严格,极容易TLE。。。需要预处理出阶乘对应的质数的幂次然后查询。对于阶乘中某个质数的指数有结论
https://cn.vjudge.net/contest/243050#problem/E
手推几项可以看出是卡特兰数,具体证明 https://blog.csdn.net/Bfk_zr/article/details/78313960
这个题最神奇的是学到了O(n)求对非任意数组合数取模的方法!(适用于n<1e7) 继续阅读“[卡特兰数][大组合数取模] BZOJ 1485”
https://cn.vjudge.net/problem/POJ-2480
题意:给定int范围内的整数N,要求gcd(i,N)之和,其中1<=i<=N
大佬们说积性函数的和也是积性函数那我就先这么说吧
继续阅读“[数论][积性函数][欧拉函数性质] POJ2480”
http://codeforces.com/problemset/problem/1015/D
题意:给定n,k,s,要求在一段[1,n]的线段上走整点,从1开始,每次只能往一个方向走走任意步(但不能不动),然后要求总共走k步走完s,要求输出任意的方案。如果无法做到则输出NO。 继续阅读“[CF][贪心] CF 1015D”
(其实一开始想的是错的,实际上就是mu[i]^2的前缀和S
先考虑对立面,2到n之间有多少个数可以被平方数整除?可以枚举从2到sqrt(n),然后把可以被这些数字的平方整除的算上,也就是n/(i^2)个对于每个来说。但是这里会有重复的,比如i分别为2,3,6时,算上了4,9,36,其中36被算了两遍,所以要加加减减。(好吧其实我也还没自己证明出来但是今天有点疲回头填坑ooorz
继续阅读“[暑期集训][数学][数论][组合数学] SPOJ Square-free integers”