摘要:
题意: 给出数字A和B,要求AB的所有因子(包括AB和1)之和 mod9901 的结果。思路: 即使知道公式也得推算一阵子。 很容易知道,先把分解得到,那么得到,那么的所有因子之和的表达式如下: 我们要做的就是计算出sum%9901的结果。 有两种方法: (1)直接用快速幂计算对上面... 阅读全文
摘要:
题意: 给一个数字序列,要求找到LIS,输出其长度。思路: 扫一遍+二分,复杂度O(nlogn),空间复杂度O(n)。 具体方法:增加一个数组,用d[i]表示长度为 i 的递增子序列的最后一个元素,且该元素总是保持当前最小。初始化d[1]=A[i],当前LIS的长度len=1。从 2 to n... 阅读全文
摘要:
题意: 给一个合法的括号序列,仅含()这两种。现在要为每对括号中的其中一个括号上色,有两种可选:蓝or红。要求不能有两个同颜色的括号相邻,问有多少种染色的方法?思路: 这题的模拟成分比较多吧?两种颜色还有无色,用2个bit就可以表示了。然后就是各种转移,注意结果可能非常大,要取模后输出。转移主要... 阅读全文
摘要:
题意: 给出一个字符串,其中仅仅含 “ ( ) [ ] ” 这4钟符号,问最长的合法符号序列有多长?(必须合法的配对,不能混搭)思路: 区间DP的常规问题吧,还是枚举区间[i->j]再枚举其中第k个与第i个来配对,如果配对了就+2这样子。 1 //#include 2 #include 3 ... 阅读全文
摘要:
题意: 有个人要去参加万圣节趴,但是每到一个趴都要换上特定的服装,给定一个序列表示此人要穿的衣服编号(有先后顺序的),他可以套很多件衣服在身上,但此人不喜欢再穿那些脱下的衣服(即脱下后就必须换新的),问最少需要穿多少件衣服?思路: 如果多件一样的相连的话就可以只穿1件。将问题化为小问题,再来连接... 阅读全文
摘要:
题意: 给一棵n节点的树图,每个点都是一个小写字母,要求找到两个点(a,b),从a->b的路径上形成了一个字符串为s。给出s,问是否存在这样的点对。思路: 考虑一个点,要么从该点出发,要么在该点结束,要么它作为一个中间点将左右两个串连起来成为s。叶子只能是起点或者终点。在每个点中需要保存两个队列... 阅读全文
摘要:
题意: 给出平面直角坐标系上的n个点的坐标,表示一个多边形蛋糕,先判断是否是凸多边形,若否,输出"I can't cut."。若是,则对这个蛋糕进行3角形剖分,切n-3次变成n-2份三角形蛋糕给小伙伴吃,但是每切一次需要一个费用,公式是:cost[i][j]= |xi+ xj| * |yi+ yj... 阅读全文
摘要:
题意: 有n个城市,构成一棵树,每个城市有v个人,要求断开树上的一条边,使得两个连通分量中的人数之差最小。问差的绝对值。(注意本题的M是没有用的,因为所给的必定是一棵树,边数M必定是n-1)思路: 考虑当前节点t,当断开t与父亲的边时,“子树t中的人数”与“剩下的人数”之差的绝对值若最小,则为答... 阅读全文
摘要:
题意: 给定一棵树,n个节点,若删除点v使得剩下的连通快最大都不超过n/2,则称这样的点满足要求。求所有这样的点,若没有这样的点,输出NONE。思路: 只需要拿“求树的重心”的代码改一行就OK了。因为依然是在判别最大连通块的点数。 1 //#include 2 #include 3 #inc... 阅读全文
摘要:
题意:求树的重心,若有多个,全部打印出来。思路: 树的重心:在删除点v后,森林中的每棵树的节点数尽量均匀,若最大的那棵树的节点数最小,称v为树的重心。 这道题只是求树的所有重心,当且经当这棵树有对称性质时才有多重心,因此一棵树的重心最多不会超过2个。也是一遍DFS就可以搞定了,参考这个。 1 /... 阅读全文