Beautiful Set Problem's Link: http://acm.hdu.edu.cn/showproblem.php?pid=5321 Mean: 给出一个集合,有两种计算集合的值的方式:1  对于集合的一种排列方式,求它任意区间的gcd,将所有区间的gcd值加起来,即为该排列方式的值:将集合所有排列方式的值加起来即为集合的值;2  对于集合,任意取k个数,对于取出k个数,值为k个数的gcd*k;k从1-n(集合总个数),加起来即为集合的值如果集合的值相同,则输出该值,否则输出…
Friends Problem's Link: http://acm.hdu.edu.cn/showproblem.php?pid=5305 Mean: n个人,m对朋友关系,每个人的朋友中又分为在线好友和不在线好友,对于每个人都要保证在线好友和不在线好友一样多,求方案数有多少种. analyse: 我们用m对关系建立一个无向图(存边即可),同时统计每个节点的度. 首先可以确定的是:如果某个节点的度是奇数,很显然answer=0. 将每个节点的度分为两组:online和offonline. 初始…
题目链接 题意:t 组測试数据,每组測试数据有 n个人,m条关系 每条关系能够是 "线上关系" 或者 "线下关系". 要求每一个人的线上关系(条数) == 线下关系(条数) 问共同拥有几种分配方法 思路: ①由于要使每一个人的线上关系的总数 == 线下关系 的总数.那么总关系数一定是偶数所以当m为奇数时,方法数肯定为0: ②由于每条边仅仅有两种状态.online 或 offline,所以能够用壮压来做,1表示online, 0表示offline; ③m最大有 (8*…
题意: 给出一个十进制数,数位两两可以交换,给出最多能交换多少次,以及交换后的数不能有前缀0,问能形成最小和最大的数 * * * 尝试的思路 贪心,将字符串先排出最大以及最小的情况,然后按一定顺序将对应位置换过去,不知道为什么wa * * * 枚举全排列,将验证能否在规定步数能换过去,假如可以则更新最小最大值,不会判断能否换过去,计算循环节,循环节内的交换次数为(循环节长度-1) * * * 通过观察发现,一个长为n的串,假如最多能交换n-1次,它就能变成任何的串,那么就缩小了k的范围.然后解决…
6324.Problem F. Grab The Tree 题目看着好难,但是题解说的很简单,写出来也很简单.能想出来就是简单的,想不出来就难(讲道理,就算是1+1的题目,看不出来就是难的啊). 和后面的东西一点关系都没有... 官方题解: 设sum为所有点权的异或和,A为先手得分,B为后手得分. 若sum=0,则A=B,故无论如何都是平局. 否则考虑sum二进制下最高的1所在那位,一定有奇数个点那一位为1.若先手拿走任意一个那一位为1的点,则B该位为0,故先手必胜. 时间复杂度O(n). 代码…
http://acm.hdu.edu.cn/showproblem.php?pid=6662 仿照 CC B - TREE 那道题的思路写的,差不多.也是要走路径. 像这两种必须走到叶子的路径感觉是必须从INF出发,使得它强制从子树转移过来.否则假如可以在中间节点中断的话,初始值就是0,转移的时候假如子树更不好就不会更新这个0. 与哪个求每个点去往的最远点的标号(同样远的求最小标号)类似. f[u]表示从u节点向下走向子树的最优值,这样必须dfs到叶子然后初始化叶子再返回. g[u]表示从u节点…
http://acm.hdu.edu.cn/showproblem.php?pid=6638 偷学一波潘哥的二维离散化和线段树维护最大子段和. 思路是枚举上下边界,但是不需要从左到右用最大子段和dp. 用O(n)建立线段树之后,下边界在往下增长的时候,每次只会单点修改某个点的值,影响这个点的祖先. 注意离散化减去的是数组的开头指针,而lowerbound减去的是另一个东西. #include<bits/stdc++.h> typedef long long ll; using namespac…
http://acm.hdu.edu.cn/showproblem.php?pid=6608 题意:给一个比较大的质数P(1e14以内),求比它小的最大的质数Q(貌似保证存在的样子,反正我没判不存在),求Q!modP的值. 一开始觉得是个什么神仙题,但是怎么全场都绿了一片,瞬时感觉智商受到了侮辱.想了很多什么奇奇怪怪的性质,都不太清楚,然后队友卡1007的时候我打了个对P找ans的表看了一下.发现当P-Q=2的时候就是ans=1??? 然后打个(P-2)!%P的表,发现小数据都这样过,估计也是真…
The path Time Limit: 2000ms Memory Limit: 65536KB This problem will be judged on HDU. Original ID: 538564-bit integer IO format: %I64d      Java class name: Main Special Judge   You have a connected directed graph.Let d(x) be the length of the shorte…
2018 Multi-University Training Contest 5 6351.Beautiful Now 题意就是交换任意两个数字,问你交换k次之后的最小值和最大值. 官方题解: 哇塞,C++竟然自带全排列的函数,头文件为#include<algorithm> 全排列 next_permutation() 函数.随便传送两篇博客: 1.[算法]——全排列(Permutation)以及next_permutation 2.next_permutation 代码: //1002-63…