How far away ?(DFS)】的更多相关文章

有两种情况需要考虑 1.链:可以发现对最终的k没有影响 2.环:如果是真环(即1->2->3->4->1),可以看出所有可行解一定是该环的因数 假环呢??(1->2->3->4,1->5->4),可行解便是两条路的差值的因数 So??对于每条边,正建1,反建-1,dfs,每出一个环,就计算gcd 没有环呢??最小是3,最大是所有链加和喽 #include<cstdio> #include<iostream> #include&l…
How far away ? Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 5766    Accepted Submission(s): 2166 Problem Description There are n houses in the village and some bidirectional roads connecting…
考试T2,考试时想到了40pts解法,即对于求b数组,随便瞎搞一下就oxxk,求a的话,很明显的高斯消元,但考试时不会打+没开double挂成10pts(我真sb),感觉考试策略还是不够成熟,而且感觉考试时间很不够用,一直在瞎yy+code,听讲题DeepinC 12min就打出了T150pts,这不仅是思维上的劣势,而且打代码的速度必须要加上来啊,不然就算有好想法也打不出来(也没啥好想法). 接下来就是正经八本的题解了: 首先我们可以来一波玄学复杂度分析,数据范围1e5,要么$O(nlogn)…
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1008 题目大意:给你n*n的矩阵,每个格子里有4个三角形,分别是上右下左,每个三角形里面标记了数字,问你能否通过移动这n*n个格子,使得相邻两个三角形具有相同的数字? dfs暴搜,dfs(x,y)代表当前要放(x,y)这个位置. 然后枚举给定的每个格子. 如果说可以放,就dfs下一个格子. 这一道题需要把相同的格子压缩起来,也就是说为了节省时间,可以记录相同的格…
特殊的质数肋骨(递归)] -题目描述-农民约翰的母牛总是生产出最好的肋骨.你能通过农民约翰和美国农业部标记在每根肋骨上的数字认出它们. 农民约翰确定他卖给买方的是真正的质数肋骨,是因为从右边开始切下肋骨,每次还剩下的肋骨上的数字都组成一个质数,举例来说: 7 3 3 1 全部肋骨上的数字 7331是质数;三根肋骨 733是质数;二根肋骨 73 是质数;当然,最后一根肋骨 7 也是质数. 7331 被叫做长度 4 的特殊质数. 写一个程序对给定的肋骨的数目 N (1<=N<=8),求出所有的特殊…
题目描述 现在有一颗以1为根节点的由n个节点组成的树,树上每个节点上都有一个权值vi. 现在有Q 次操作,操作如下: 1  x y    查询节点x的子树中与y异或结果的最大值 2 x y z    查询路径x到y上点与z异或结果最大值 输入 第一行是两个数字n, Q; 第二行是n个数字用空格隔开,第i个数字vi表示点i上的权值  接下来n-1行,每行两个数,x,y,表示节点x与y之间有边  接下来Q行,每一行为一个查询,格式如上所述. 1 < n, Q ≤ 100000 ,查询1中的y ≤ 2…
ping ping ping Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 207    Accepted Submission(s): 47 Problem Description The structure of the computer room in Northeastern University is pretty mira…
题目链接 Description "奋战三星期,造台计算机".小G响应号召,花了三小时造了台普通计算姬.普通计算姬比普通计算机要厉害一些.普通计算机能计算数列区间和,而普通计算姬能计算树中子树和.更具体地,小G的计算姬可以解决这么个问题: 给定一棵\(n\)个节点的带权树,节点编号为\(1\)到\(n\),以\(root\)为根,设\(val[p]\)表示以点\(p\)为根的这棵子树中所有节点的权值和.计算姬支持下列两种操作: 给定两个整数\(u\),\(v\),修改点\(u\)的权值…
P1113 杂务 题目描述 John的农场在给奶牛挤奶前有很多杂务要完成,每一项杂务都需要一定的时间来完成它.比如:他们要将奶牛集合起来,将他们赶进牛棚,为奶牛清洗乳房以及一些其它工作.尽早将所有杂务完成是必要的,因为这样才有更多时间挤出更多的牛奶.当然,有些杂务必须在另一些杂务完成的情况下才能进行.比如:只有将奶牛赶进牛棚才能开始为它清洗乳房,还有在未给奶牛清洗乳房之前不能挤奶.我们把这些工作称为完成本项工作的准备工作.至少有一项杂务不要求有准备工作,这个可以最早着手完成的工作,标记为杂务 1…
题目:http://dev.codevs.cn/problem/1961/ 分析: 被“SPFA”的标签骗了…… 看了hzwer的博客才知道可以用f[i][0..60]表示每个点每个秒是否可以到.至于怎么弄出这个数组呢?dfs就行了....但注意走过的点还能再走,知道f[i][j]=1为止(因为这说明成了一个循环).时间复杂度的话最坏情况是每个点每个秒都能走到,即7000*60,完全可以………