51nod
L_0_Forever_LF
一个热爱OI的OIer
展开
-
51nod 1575 Gcd and Lcm
先吐槽一下这题题解的不负责,完全就是什么都没讲然后去膜sxt大爷讨论区也给出了关于∑ij=1∑ik=1[(i,j),(i,k)]\sum_{j=1}^i\sum_{k=1}^i[(i,j),(i,k)]这个东西对于一个质数和质数的若干次幂的公式,然后就可以用洲阁筛了以下是个人看了论文后的一些理解和总结(主要写给自己看),部分摘自论文,侵删以n√\sqrt n为界,因为1∽n1 \backsim n原创 2017-04-08 11:32:29 · 738 阅读 · 0 评论 -
51nod 1551 集合交易
任意一个全集的子集包含的元素数量>=子集大小,根据霍尔定理,这个其实就是说存在完美匹配先将权值全部取反,问题变成求最大收益考虑最小割源点和集合连边(st,i,收益) 若集合i包含了元素j,连边(i,j,inf) 元素和汇点连边(j,ed,0) 然后给每条边加上一个相对较大的值A首先这个图一定割了n条边 证明: 若这个图边权全1,那么因为存在完美匹配,最小割=最大流=...原创 2018-04-21 07:48:09 · 269 阅读 · 0 评论 -
51nod 1397
根据增广路的性质(未匹配匹配未匹配交错路),画图贪贪贪感觉能搞出来?我们先把图中的m对匹配点连上,得到这个东西蓝色的为匹配边,上方为集合A,下方为集合B,不妨设|B|>=|A| 先不考虑匹配点的度数够不够,我们尝试补并尽量添加非匹配点的度 因为m个匹配已经存在,所以A集和B集中的非匹配点之间不能有边 我们先为B集某个未匹配点添加边(这里假定度数要求为2,所以这个未匹配点至少要添加2条边,与匹配原创 2017-11-20 22:12:50 · 310 阅读 · 0 评论 -
51nod 1446
一个good点如果只和bad相连就不计算他的价值,否则算入总价值记作great点,要求总价值<=maxval这些good点之间除了权值没啥区别,生成树计数容易想到用矩阵树定理去统计,但是用矩阵树定理,只能通过让他们之和bad间有边限制i个点一定不是great点,对于其他点有可能还有不是great点的情况统计 于是用g[i]表示至少i个good点非great,f[i]表示恰好i个good点非grea原创 2017-11-20 21:46:23 · 389 阅读 · 0 评论 -
51nod 1448
倒着考虑印的过程,最后一次印的区域一定是K*K的同色区域 然后在之前的操作这片区域里印成什么颜色都行,定义为杂色,每次找一个K*K的全0/1+杂色区域印,(nm)^6code:#include<set>#include<map>#include<deque>#include<queue>#include<stack>#include<cmath>#include<ctime>#inc原创 2017-11-19 17:24:27 · 300 阅读 · 0 评论 -
51nod 1450
得到2颗星的期望次数可以解方程算但得到1颗星的算不了。 因为每关都要通过,我们按Yi从小到大处理,f[i][j],pi[i][j]表示玩了i关,获得了j颗星的期望次数,概率 如果(n-i)*2=m-j,那接下来每关都要玩2星,也只会在这些关弄2星因为他们的Yi最大 否则我们只要求通过就行了 通过的期望次数是能算的,通过了后获得1/2颗星的期望是Xi:Yi,就可以dp了code:#includ原创 2017-11-19 17:22:58 · 361 阅读 · 0 评论 -
51nod 1487
注意到只能建2个塔,暴力枚举是k(n*m)^2的 但可以发现我们枚举了第一个塔后,第二个塔没有必要枚举,可以预处理第二个塔放在每个位置的价值,塞进一个堆里(事实上不需要堆…排个序就行了,还省个log…) 考虑到两个塔覆盖了重复的点只算一次,如果堆顶的塔与当前枚举的塔冲突就把他取出来算一下贡献,把所有冲突的拿出来后计算完贡献再把他们放回去,最多k^2个重复,复杂度 O(nmk2log(nm))O(原创 2017-11-19 17:19:57 · 449 阅读 · 0 评论 -
51nod算法马拉松23(飞越愚人节)
A. 不会..B. 设生成的数和的期望为ff,n个数的平均数为xx 那么有f=x+(1−mn)ff=x+(1-\dfrac{m}{n})f 所以f=x∗nmf=x*\dfrac{n}{m}C. 可以发现,一条路径上两个不同的城市x,y的a[x] mod a[y]的最大值即是a的次大值,于是只要求出首都到每个城市所有路径次大值的最大值 先缩环,然后做一个拓扑排序,维护到每个点的所有路径的最大原创 2017-04-13 22:01:54 · 814 阅读 · 0 评论 -
51nod算法马拉松25
A:将1~n放入n个位置,问有多少种方案使得按照题目给出的寻找m的二分程序最终找到的位置是k可以模拟题目的二分程序,最后的位置是k,那么有log个位置的值和m的大小关系就确定了,算先放这些位置的方案数,剩下的位置放什么都行,有(n-log)!种方案 因为n的值很大,所以算阶乘可以分段打表B:给出n个数字,问用这n个数字组成的序列有多少种满足相邻两项差的绝对值小于1首先排序,如果值不是连续的就一定无原创 2017-06-05 13:36:56 · 520 阅读 · 0 评论 -
51nod 1297 管理二叉树
预处理写挂,邻接表开小,是不是要退役了…动态点分治如果建出了树,就是一道动态点分治的(模板题?),一开始所有点点权为0,然后一个个点赋权,维护每个点管理的块内到父亲的带权距离和,每个点的管的块内到该点的带权距离和,每个点管理的块内带权的点的数量,就可以求出每次赋权增加的距离和了然后考虑怎么建出最终的树,此处提供两种做法 1(来自队爷):将每个点按权值排序后,最先出现的点肯定是根,然后比这个点小的全原创 2017-03-30 19:58:56 · 801 阅读 · 1 评论 -
51nod 1184 第N个质数
这题正解不用二分的呀…我弱只会二分的 (除了正解,好像有个更厉害的论文解法,然而根本看不懂论文…)二分+洲阁筛二分后,问题转化为判定性问题,即1~n有多少个质数 设g[i][j]表示1~j,与前i个质数互质的数的个数,得 g[i][j]=g[i−1][j]−g[i−1][j/prime[i]]g[i][j]=g[i-1][j]-g[i-1][j/prime[i]] 因为二分有多个n,不能递推原创 2017-04-08 10:20:59 · 972 阅读 · 2 评论 -
51nod1259 整数划分V2
整数划分有个用五边形数定理O(nn−−√)O(nn)O(n\sqrt n)的做法,粘发链接跑 传送门code:#include<set>#include<map>#include<deque>#include<queue>#include<stack>#include<cmath>#include&l...原创 2018-05-04 16:08:44 · 333 阅读 · 0 评论