随机化
Master.Yi
学习他人,提升自己;
提升自己,帮助他人。
展开
-
UOJ#554【UNR #4】挑战哈密顿【找哈密顿路径(调整法)】
题目描述Link提交答案题给一个有向图,求最长的不经过重复点和边的路径,保证无重边自环。题目分析直接看官方题解咯在做了点三染色使得没有同色边的问题后,我们学到了提交答案题的姿势:调整法,找一个不会使答案变劣,并且可以一直进行下去的调整方法。(如果进入死胡同就重来)在这道题上,就是按随机顺序考虑加边,然后维护一个链的集合,每次考虑合并两条链,或者替换一条边。写的过程中遇到一些问题:暴力判断是否会成环的版本:跑得很慢,基本卡卡地才跑完一次检验。发现是在走路径之前没有判断是否两个点都有入原创 2020-08-14 20:23:57 · 555 阅读 · 0 评论 -
POJ2420 A Star not a Tree?【模拟退火】
题目描述:在平面直角坐标系中求一个点使得它到nnn个已知点的距离之和最小。n≤100n\le100n≤100题目分析:模拟退火模板,求费马点。模拟退火的学习文章这题网上大多数的解法是往八个方向尝试然后缩短步长。也可以采用向量的方式,相互抵消最后哪个剩的多就往哪边走。Code1:#include<cstdio>#include<cmath>#includ...原创 2020-03-06 23:00:17 · 138 阅读 · 0 评论 -
模拟赛20200302【斯坦纳树+随机映射,二叉树限制步数路径方案数】
T1:LYK loves string求在字符集大小为 k 的情况下,有多少种长度为 n 的字符串,且该字符串共有 m 个不相同的子串。mod 1e9+71<=n<=10,1<=m<=100,1<=k<=1000000000。题解:暴力枚举每一位是新加字符还是前面的字符即可。Code:#include<bits/stdc++.h>#de...原创 2020-03-02 17:51:13 · 247 阅读 · 0 评论 -
Codeforces364D Ghd【随机+检验】
题目描述:大小为n的集合aaa,求最大的ggg满足g能够整除a中大于等于n/2个数。n<=106,a<=1012题目分析:每个数能够被g整除的概率>=12\frac 1221,那么我们在a中随机一个x,随机k次,对每个x求出它所能得到的最大的答案,统计gcd(x,a[i])中x的每个约数的出现次数(若d[i]|d[j]则cnt[i]+=cnt[j]),如果某个约数出现次...原创 2019-10-27 16:43:03 · 191 阅读 · 0 评论