摘要: 无向图的最小路径覆盖。 找出联通块里所有的奇度点,然后两个两个的点互相连边,构造成所有点都是偶度数。 然后就找联通块里有多少条欧拉回路,如果回路中有新加的边则答案++。 #include <bits/stdc++.h> using namespace std; const int M = 1e5+7 阅读全文
posted @ 2018-09-19 16:45 LMissher 阅读(128) 评论(0) 推荐(0)
摘要: 给一幅图,并且给出图里哪些是好点,哪些是坏点,问你这副图能不能被分成一个好点坏点图不矛盾。 我们先把给定了是好点或者坏点的点进行二分图染色,如果染出来是矛盾的就错误。 然后在把那些和已知点不在同一个联通块里的点随意指定初始颜色染色,染出来是矛盾的就错误。 #include <bits/stdc++. 阅读全文
posted @ 2018-09-19 16:31 LMissher 阅读(86) 评论(0) 推荐(0)
摘要: 让你找一幅图里有多少点集含有三元环或者三个独立点。 由拉姆塞定理可知六个人中必有三个人认识或三个人都不认识,所以超过6的点集都算。 ans = pow(2,n) - C(n,i) i属于[ 0 , 5 ] r然后再暴力计算[ 3 , 5 ]的点集里哪些属于合法的即可。 #include <bits/ 阅读全文
posted @ 2018-09-19 15:34 LMissher 阅读(276) 评论(0) 推荐(0)
摘要: water,给一个数n,问从1...n的数字里最少删去多少数字让剩下的数字必不可能组成三角形。 保留的数字必定是1、2、3、5、8、13、21.....这样的数字。 //#define test #include<bits/stdc++.h> using namespace std; const i 阅读全文
posted @ 2018-09-19 12:43 LMissher 阅读(139) 评论(0) 推荐(0)
摘要: water //#define test #include<bits/stdc++.h> using namespace std; const int Nmax=1e6+7; typedef long long ll; struct LL { ll a,b; LL(){ } LL(ll aa,ll 阅读全文
posted @ 2018-09-19 12:41 LMissher 阅读(128) 评论(0) 推荐(0)
摘要: 构造一个n个数字的排列,使其作为 sigma( gcd( a[i] , a[i+1] ) ) 中第k小的排列。 因为题目给的 k*2 <= n ,所以可以知道只会询问最小到第 n/2 小,易得最多移动一个数字即可得到答案。 假设原始排列为1 2 3 ... n,如果询问最小直接输出排列,否则询问x且 阅读全文
posted @ 2018-09-19 12:36 LMissher 阅读(199) 评论(0) 推荐(0)
摘要: 给两个数组a , b,并给一个间隔值p。问在间隔值p下b在中有多少个匹配。 比如a数组为1 2 2 4 3,b数组为1 2 3,那么在间隔值为2的情况下有一个匹配。 把a数组中可以作为开头的所有间隔数字比如2可以开头的数字是1或者2,3可以开头的数字是1、2、3取出来。 然后做p次kmp即可。 // 阅读全文
posted @ 2018-09-19 12:28 LMissher 阅读(172) 评论(0) 推荐(0)
摘要: 给一个数字 n ,(1<=n<=1e18)。让你找一些数字加起来和为 n ,数字个数不超过50个而且数字都是回文数字。 每次找到大小最接近这个数的回文数即可。如6745888可以找到6745476,6960242可以找到6950595。 用大数模拟一下即可。 //#define test #incl 阅读全文
posted @ 2018-09-19 12:21 LMissher 阅读(167) 评论(0) 推荐(0)
摘要: 给一棵树,q次询问,每次询问给连续的一个闭区间,问区间所有数的LCA是多少。 做一个dfs序,其中把dfs序最小的点和最大的点做一次LCA求出的点就是答案。 #include <bits/stdc++.h> #define lson l,mid,rt<<1 #define rson mid+1,r, 阅读全文
posted @ 2018-09-19 12:10 LMissher 阅读(129) 评论(0) 推荐(0)