fzyzojP3412 -- [校内训练20171212]奇数】的更多相关文章

套路地, 考虑dfs树上搞事情 容易发现,对于(x,y)如果dfs树上距离为奇数,或者dfs树上路径中有一条边在某个简单奇环上,那么可以经过奇数条边到达 判断边在某个奇环上: 点双,点双中黑白染色,如果有一个奇环,那么点双中的所有边都在一个奇环中 询问 倍增预处理,LCA搞一下即可 #include<bits/stdc++.h> #define il inline #define reg register int #define numb (ch^'0') using namespace st…
1.SB题 2.有n个点,m条边,每次加入一条边,你要挑出一些边,使得形成的图每个点度数都为奇数,且最长的边最短. 3.给一个N次多项式,问有多少个质数在任意整数处的点值都是p的倍数,输出它们.$N \leq 1000,|a_i| \leq 10^9$ 问题等价于这个多项式在mod p意义下存在因数(x-i),i取遍所有整数. 那么p满足要求,等价于这个N次多项式存在因数$x(x-1)(x-2)...(x-p+1)=x^p-x(mod p)$ 因此,p要么是系数gcd的质因数,要么在N以内. #…
题意 一个排列,每次选一个子序列按顺序放在开头,要求变成升序的操作次数不超过17次,给出方案.n<=1E5. 思考 对于ai=aj-1且i<j的数字,一定要保持其相对顺序.可以根据这个关系分成若干个块,并根据每个块最小的数从小到大将块编号为1~m. 接着把所有奇数编号的块选出来放在左侧.能发现这次操作后奇数编号和偶数编号的块至少有一半会变成更大的块. 复杂度O(nlogn). 代码 #include<bits/stdc++.h> using namespace std; ; ][m…
来自FallDream的博客,未经允许,请勿转载,谢谢. hzwer又出丧题虐人 4道noi....        很奇怪 每次黄学长出题总有一题我做过了. 嗯题目你们自己看看呗 好难解释 -------------------------------------- A.[bzoj1565][NOI2009]植物大战僵尸 这道题其实挺好想的.nm比较小,考虑最小割,假设割到S表示吃,割到T表示不吃 那么能源小于0的,从S向他连边,流量是负的能源, 能源大于0的,从它向T连边,流量是能源,同时答案…
来自FallDream的博客,未经允许,请勿转载,谢谢. 报警啦.......hzwer又出丧题虐人啦..... 4道ctsc...有一道前几天做过了,一道傻逼哈希还wa了十几次,勉强过了3题..我好菜啊都不会 A.[ctsc2014][bzoj3555]企鹅QQ 给定n个长度为l的字符串,两量不同,求有多少对字符串只有一个字符不同.  n<=300000  l<=200 这个很明显就是哈希啦......我写了几发都随便wa,然后怒而滚键盘才过了.map会T,用了个手写map #include…
来自FallDream的博客,未经允许,请勿转载,谢谢. ----------------------------------------------------------------------------- hzwer这次不都出省选题了,干脆直接扔出了APIO三道+一道NOI,然后按照惯例最后留了一个模板题.有两道apio是2014的,以前做过了,剩下的题调来调去,还剩20分钟终于做完了. --------------------------------------------------…
题意 给出n,等概率地生成一个1~n的数列.现在有n个人从左到右站成一排,每个人拿有当前数列位置上的数字,并且一开始都不知道数字是多少(但知道n是多少).从左到右让每个人进行如下选择: 1.选择保留自己的卡片,让所有人知道这个卡片上面的数字,并且走到等待区中.第一个人只能进行该选择. 2.选定等待区中的一个人,将自己的卡片与其交换,然后自己带着交换后的卡片退出游戏.等待区中的那个人会让所有人知道这个卡片上面的数字. 假如每个人都绝顶聪明,都想最大化自己的数字,求出等待区中人数的期望.n≤1E15…
题意 给出一个二分图,左边为A集合,右边为B集合,要求把A集合中每一个点染为黑白两色中的一种,B集合中的颜色已定.染色后对于原本相邻且颜色相同的点,建立新的二分图,即得到了两个新的二分图,它们是独立的.求出这两个新的二分图的最大匹配数的和的最小值.数均小于等于5000. 思考 这是简化题意.由于暴力很难写,考虑网络流.将B集合中的每一个点根据其颜色分为一类和二类点.对于A集合中的每一个点,拆成两个点,两点连1的单向边,将所有相邻的一类点连线左边,另一类连向右边,值为1.所有二类点连向汇点,源点连…
对于每个平面图,都有唯一一个对偶图与之对应.若G‘是平面图G的对偶图,则满足: G'中每一条边的两个节点对应着G中有公共边的面,包括最外部无限大的面. 直观地讲,红色标出来的图就是蓝色标出的图的对偶图. 求出一个平面图的对偶图(而且不是特殊的结构),可以贪心地找出所有最小的面.但如何描述最小?我们要固定一条边,按它顺时针或逆时针的方向找到第一条边,直到出现第一个访问过的边,就找到了一个面. 具体地将:从每个边出发,按有方向的角排序,找到角度最大或最小的边,再进行下去.反正自己写写代码就知道了.…
原题见CF632F https://blog.csdn.net/Steaunk/article/details/80217764 这个比较神仙了 点边转化, 把max硬生生转化成了路径最大值,再考虑所有路径最大值的最小值 再通过<=,>=变成= 简单证明一下充要性:如果都满足f(i,j)=a(i,j),那么对于路径aij->aik->akj->aij也都满足,所以一定成立 如果存在一个f(i,j)<a(i,j),那么一定会有某一步a(k1,k3)>max(a(k1…