摘要:
详见代码View Code 1 //设n可以表示成i个连续整数之和,首项为a, 2 //则n=a+(a+1)+……(a+i-1)=i*a+(1+2+……+(i-1))=i*a+(i*(i-1)/2)-->a=(n-(i*(i-1)/2))/i 3 //枚举i,使得a右边能整除,ans++ 4 #include<stdio.h> 5 int main(){ 6 int n; 7 while( scanf("%d",&n)!=-1 ){ 8 int sum=0,i; 9 for( i=1;i<=n;i++ ){10 sum... 阅读全文
摘要:
题意:给定一张图,包括n个城市,m条路径,q个询问( 图中没有环 )。bfs会超时!!LCA问题:询问 a,b 之间的最短距离。因为图中不可能出现环,所以两点之间有且仅有一条路,或者没有。所以先预处理出a,b的最近公共祖先,和他们各自的距离。比如a,b的最近公共祖先为father(简易图)aa----father----b | | a1 | aans=dis[ a ]+dis[ b ]-dis[ father ]*2;dfs中的fa==0判断是因为这是无向图。。。谨记。。。这只是求距离,对父子关系要求不明显View Code 1 #incl... 阅读全文
摘要:
2-sat初次接触2-sat。首先对于2-sat问题,可简化为:现在有N个党派,每个党派只有2名人员,从2者挑出一个,且某两个党派挑出来的人可能存在矛盾,这时不能同时选择他们。(引用对称性解决2-sat的ppt)例如:(x1,x2),(y1,y2)为两个不同党派的人。若两两之间都没有矛盾,则do nothing若 x1-y1有矛盾,则他们不能同时被选择,所以 (x1,y2)是必选的,或者(x2,y1)是必选的。然后根据这条规律,tarjan+缩点,得到新的一张图,这张图没有环,若某个“点”中存在(x1,x2)(即:某个党派2个人同时出现在这个“点”中),这是就不能达到目标。反之成立。View 阅读全文