L_0_Forever_LF的专栏

曾是一个OIer

51nod 1397

根据增广路的性质(未匹配匹配未匹配交错路),画图贪贪贪感觉能搞出来?我们先把图中的m对匹配点连上,得到这个东西蓝色的为匹配边,上方为集合A,下方为集合B,不妨设|B|>=|A| 先不考虑匹配点的度数够不够,我们尝试补并尽量添加非匹配点的度 因为m个匹配已经存在,所以A集和B集中的非匹配点...

2017-11-20 22:12:50

阅读数:114

评论数:0

51nod 1446

一个good点如果只和bad相连就不计算他的价值,否则算入总价值记作great点,要求总价值<=maxval这些good点之间除了权值没啥区别,生成树计数容易想到用矩阵树定理去统计,但是用矩阵树定理,只能通过让他们之和bad间有边限制i个点一定不是great点,对于其他点有可能还有不是gre...

2017-11-20 21:46:23

阅读数:173

评论数:0

51nod 1448

倒着考虑印的过程,最后一次印的区域一定是K*K的同色区域 然后在之前的操作这片区域里印成什么颜色都行,定义为杂色,每次找一个K*K的全0/1+杂色区域印,(nm)^6code:#include<set> #include<map> #include<deque>...

2017-11-19 17:24:27

阅读数:147

评论数:0

51nod 1450

得到2颗星的期望次数可以解方程算但得到1颗星的算不了。 因为每关都要通过,我们按Yi从小到大处理,f[i][j],pi[i][j]表示玩了i关,获得了j颗星的期望次数,概率 如果(n-i)*2=m-j,那接下来每关都要玩2星,也只会在这些关弄2星因为他们的Yi最大 否则我们只要求通过就行了 ...

2017-11-19 17:22:58

阅读数:165

评论数:0

51nod 1487

注意到只能建2个塔,暴力枚举是k(n*m)^2的 但可以发现我们枚举了第一个塔后,第二个塔没有必要枚举,可以预处理第二个塔放在每个位置的价值,塞进一个堆里(事实上不需要堆…排个序就行了,还省个log…) 考虑到两个塔覆盖了重复的点只算一次,如果堆顶的塔与当前枚举的塔冲突就把他取出来算一下贡献,...

2017-11-19 17:19:57

阅读数:250

评论数:0

SRM550

A 模拟 B 观察性质,发现每次放子,是在上一个人的基础上走2步,所以横纵坐标和的奇偶性始终不变 且根据(x+y)/2的奇偶性可以判断如果这个位置有棋子,这个棋子是谁放的 而且因为只有可能放在(x,y)的(x+1,y+1)和(x+2,y),所以有子的格子也满足x>=y 在这个基础...

2017-10-31 21:01:34

阅读数:227

评论数:0

SRM 549

A 看不懂..B 事实上由于wizard可以调换硬币,所以你拿到的k个硬币一定是最小的k个硬币,将硬币排序后相当于求最多能拿多少枚硬币 发现n很小,可以状压,用0表示这个帽子还未翻开,1表示这个帽子翻开了有硬币,2表示翻开了没硬币。 先2^n预处理出所有合法的放硬币情况,再把翻开了的,没翻...

2017-10-31 20:56:41

阅读数:180

评论数:0

SRM 548

A 二分加贪心 code: class KingdomAndTrees { public: int n; bool judge(const int x,vector<int>heights) { int las=0; ...

2017-10-23 11:47:44

阅读数:168

评论数:0

SRM500

A 最大概率输的一定是最多人投的那个,模拟code: …好像被我自己不小心删掉了…….B 看不懂aC 枚举2,4,8,9的个数后可以知道所有数的个数,预处理1+10+100+..1000..的和后直接算贡献code:class ProductAndSum { public: ...

2017-10-20 14:29:39

阅读数:155

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭