摘要: 思路: 二分答案 判一下能不能加//By SirisuRen#include #include #include using namespace std;const int N=40050;int n,m,k,xx,yy,aa,bb,ans,f[N],top;struct Node... 阅读全文
posted @ 2017-03-04 21:12 SiriusRen 阅读(97) 评论(0) 推荐(0) 编辑
摘要: 思路: 如果 每个联通块 边数>=点数 就OK 用并查集搞//By SiriusRen#include #include #include using namespace std;const int N=100050;int n,m,xx,yy,sizep[N],sizee[N],... 阅读全文
posted @ 2017-03-04 21:09 SiriusRen 阅读(107) 评论(0) 推荐(0) 编辑
摘要: 思路: f[]表示选1个点的 g[]表示选2个点的 dp一下 ans+=(ll)g[k]*deep[k]; g[k]+=(ll)f[k]*deep[k]; f[k]+=deep[k];听说有O(n)做法但是我不会//... 阅读全文
posted @ 2017-03-04 21:04 SiriusRen 阅读(101) 评论(0) 推荐(0) 编辑
摘要: 题意是啥……. 思路: 不是与1或n连起来的边 边权是1 否则是inf 跑网络流//By SiriusRen#include #include #include #include using namespace std;const int N=66666,inf=0x3f3f3f... 阅读全文
posted @ 2017-03-04 21:03 SiriusRen 阅读(108) 评论(0) 推荐(0) 编辑
摘要: 写完维修数列 这不是水题嘛233333//By SiriusRen#include #include #include using namespace std;const int N=5000050;int n,pos=1,ch[N][2],fa[N],size[N],root,x... 阅读全文
posted @ 2017-03-04 21:01 SiriusRen 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 思路: 我们可以列出几个不等式 用y0带进去变成等式 下-上 可以消好多东西我们发现 等式左边的加起来=0 可以把每个方程看成一个点正->负 连边 跑费用流即可//By SiriusRen#include #include #include #include using nam... 阅读全文
posted @ 2017-03-04 20:59 SiriusRen 阅读(108) 评论(0) 推荐(0) 编辑
摘要: 思路: set按照dfn排序 两点之间的距离可以O(logn)算出来 加一个点-> now ans+=dis(pre,now)+dis(now,next)-dis(pre-next); 删一个点同理 最后加上dis(begin,end)即可//By SiriusRen#includ... 阅读全文
posted @ 2017-03-04 20:56 SiriusRen 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 思路: 肯定每回只加最大值和次大值如果 一开始的最大值>0且次大值0搞一个矩阵 推斐波那契数列 求和 就好…//By SiriusRen#include #include #include using namespace std;const int mod=10000007,N=1... 阅读全文
posted @ 2017-03-04 20:53 SiriusRen 阅读(114) 评论(0) 推荐(0) 编辑