摘要: 题目: gbn最近打算穿过一个森林,但是他比较傲娇,于是他决定只走一些特殊的道路,他打算只沿着满足如下条件的(A,B)道路走:存在一条从B出发回家的路,比所有从A出发回家的路径都短。你的任务是计算一共有多少条不同的回家路径。其中起点的编号为1,终点的编号为2. 分析: 先求出每个点到终点的距离,根据 阅读全文
posted @ 2016-03-21 13:49 konjak魔芋 阅读(242) 评论(0) 推荐(0) 编辑
摘要: 题意: 有n个宇航员,按照年龄划分,年龄低于平均年龄的是年轻宇航员,而年龄大于等于平均年龄的是老练的宇航员。 现在要分配他们去A,B,C三个空间站,其中A站只有老练的宇航员才能去,而B站是只有年轻的才能去,C站都可以去。 有m对宇航员相互讨厌,不能让他们在同一个空间站工作。 输出每个宇航员应分配到哪 阅读全文
posted @ 2016-03-18 13:18 konjak魔芋 阅读(182) 评论(0) 推荐(0) 编辑
摘要: 题意: 给一张有向图G,求一个结点数最大的结点集,使得该结点中任意两个结点 u 和 v满足:要么 u 可以到达 v, 要么 v 可以到达 u(u 和 v 相互可达也可以)。 分析: Tarjan求SCC缩点,SCC的节点数为新点点权,然后求DAG上权最大的的路径。 代码如下: 2016-03-17  阅读全文
posted @ 2016-03-17 16:53 konjak魔芋 阅读(303) 评论(0) 推荐(0) 编辑
摘要: 题意: 给出N个命题,要求你证明这N个命题的等价性 比如有4个命题a,b,c,d,我们证明a<->b, b<->c,c<->d,每次证明都是双向的,因此一共用了6次推导 如果换成证明a->b,b->c,c->d,d->a,每次证明都是单向的,而只需4次就可以证明所有命题的等价性 现在给出M个命题证明 阅读全文
posted @ 2016-03-17 16:45 konjak魔芋 阅读(337) 评论(0) 推荐(0) 编辑
摘要: 题目: 题意: 给了一个联通无向图,现在问去掉某个点,会让图变成几个联通块? 输出的按分出的从多到小,若相等,输出标号从小到大。输出M个。 分析: BCC求割点后联通块数量,Tarjan算法。 联通块的数目在找到一个low[y]>=dfn[x]时累加,最后加一即可。 代码如下: 2016-03-17 阅读全文
posted @ 2016-03-17 13:42 konjak魔芋 阅读(286) 评论(0) 推荐(0) 编辑
摘要: 题意: 给定一个有n个节点的无根树,有两种装置A和B,每种都有无限多个。在某个节点X使用A装置需要C1的花费,并且此时与节点X相连的边都被覆盖。在某个节点X使用B装置需要C2的花费,并且此时与节点X相连的边以及与X相连的点相连的边都被覆盖。求覆盖所有边的最小花费。 分析: 首先无根树可以先dfs确定 阅读全文
posted @ 2016-03-10 17:15 konjak魔芋 阅读(628) 评论(0) 推荐(0) 编辑
摘要: 题目: 分析: 其实就是两个dp结合起来。第一个dp求区间[l,r]全部合并起来要用的最小次数,可以用区间[l,k]&[k+1,r]转移(l<=k<r)。第二个dp求前i个娃娃分成多个套娃组最小合并次数。这两个动态规划都是很常规的。 我们考虑一个问题:怎样的区间才能弄成一个套娃组(即为1~p的互不相 阅读全文
posted @ 2016-03-08 13:31 konjak魔芋 阅读(897) 评论(1) 推荐(0) 编辑
摘要: 题意: 给出两个字符串A,B将B分解成若干个子字符串,然后每个子字符串都要经过编辑变成字符串A,所有子串中编辑最多的次数即为当前状态下的最大编辑次数,要求求最小的最大编辑次数。 编辑操作包括修改、删除和插入。(|A|<=5000,|B|<=50) 分析: 因为A的长度较大,直接算出A每个区间对应B的 阅读全文
posted @ 2016-03-06 16:47 konjak魔芋 阅读(313) 评论(0) 推荐(1) 编辑
摘要: 题意: 你经营者一直棒球队。在接下来的g+10天中有g(3<=g<=200)场比赛,其中每天最多一场比赛。你已经分析出你的n(5<=n<=100)个投手中每个人对阵所有m个对手的胜率(一个n*m矩阵),要求给出作战计划(即每天使用哪个投手),使得总胜场数的期望值最大。注意,一个投手在上场一次后至少要 阅读全文
posted @ 2016-03-06 15:41 konjak魔芋 阅读(542) 评论(1) 推荐(0) 编辑
摘要: 题意: 输入正整数n和k(1<=n<=400,1<=k<=10),求长度为n的01串中有多少个不含长度至少为k的回文连续子串。例如,n=k=3时只有4个串满足条件:001,011,100,110。 分析: 做这题的时候走了很多弯路,自以为想到了一个不用表示状态的dp,然而在保证不回文的时候就发现了很 阅读全文
posted @ 2016-03-04 13:24 konjak魔芋 阅读(1004) 评论(1) 推荐(0) 编辑
摘要: 题目描述: 题意: 就是给定一个a/b,求a/b的结果变成二进制之后的小数。这个小数后面会有一段循环节,只要求输出循环节开始循环的位置和循环长度。 分析: 这题我是这么想的,比如说样例中的1/5,我们可以像平时列竖式那样算,不过要先把a和b转成二进制,然后在二进制的条件下计算。 当余数重复的时候,答 阅读全文
posted @ 2016-02-05 16:51 konjak魔芋 阅读(438) 评论(0) 推荐(0) 编辑
摘要: 题目描述: 分析: 根据欧几里德,我们有gcd(b×t+a,b)=gcd(a,b) 则如果a与b互质,则b×t+a与b也一定互质,如果a与b不互质,则b×t+a与b也一定不互质。 所以与m互质的数对m取模具有周期性,则根据这个方法我们就可以很快的求出第k个与m互质的数。 假设小于m的数且与m互质的数 阅读全文
posted @ 2016-02-05 16:18 konjak魔芋 阅读(487) 评论(0) 推荐(0) 编辑
摘要: 题目描述: 题意: 定义原根:对于一个整数x,0<x<p,是一个mod p下的原根,当且仅当集合{ (xi mod p) | 1 <= i <= p-1 } 等于{ 1, ..., p-1 }.给定p,询问有多少个满足定义的原根。 这里有一个定理:如果p有原根,则它恰有φ(φ(p))个不同的原根 证 阅读全文
posted @ 2016-02-05 16:09 konjak魔芋 阅读(224) 评论(0) 推荐(0) 编辑
摘要: 题意: 就是求2~n的所有欧拉函数值的和,这里就用到了快速求欧拉函数的方法。(不能暴力求了,不然必定TLE啊) 说说欧拉筛法,感觉十分机智啊~~ 对于上述代码的几个问题: 1.问:为什么i%prime==0时break? 答:欧拉筛法每次合成时都是用最小质因子合成的,如果我们在程序加一行记录,即可先 阅读全文
posted @ 2016-02-04 16:39 konjak魔芋 阅读(284) 评论(0) 推荐(0) 编辑
摘要: 上一篇博文中说道了baby step giant step的方法(简称BSGS),不过对于XY mod Z = K ,若x和z并不互质,则不能直接套用BSGS的方法了。 为什么?因为这时候不存在逆元了啊,那么怎么办呢? 既然是x和z不互质,那么我们就想办法让他们互质,再套用BSGS的解法即可。(这就 阅读全文
posted @ 2016-02-03 20:12 konjak魔芋 阅读(790) 评论(0) 推荐(1) 编辑
摘要: 最近在学习数论,然而发现之前学的baby step giant step又忘了,于是去翻了翻以前的代码,又复习了一下。 觉得总是忘记是因为没有彻底理解啊。 注意baby step giant step只能用在b和p互质的情况下,因为只有b和p互质的情况下,b才有mod p下的逆元。(下面要用到逆元) 阅读全文
posted @ 2016-02-03 09:47 konjak魔芋 阅读(383) 评论(0) 推荐(0) 编辑
摘要: 关键字: ·模数两两互质。 ·拓展欧几里德求(a1*a2*...*a-1*x)%ak=1 的x ·找最小的要不减去 最小公倍数 感觉古人很机智,不过中国剩余定理对于除数不互质的情况是不能够解决的哦~~要用到前面那个方法。 下面是中国剩余定理的详细过程: 最后一步成的(3*5*7)表示的是所有除数的最 阅读全文
posted @ 2016-02-02 10:01 konjak魔芋 阅读(304) 评论(0) 推荐(0) 编辑
摘要: 同余方程组 例题1:pku2891Strange Way to Express Integers 中国剩余定理求的同余方程组mod 的数是两两互素的。然而本题(一般情况,也包括两两互素的情况,所以中国剩余定理成为了“时代的眼泪”)mod的数可能不是互素,所以要转换一下再求。 P=b1(mod a1) 阅读全文
posted @ 2016-02-02 09:41 konjak魔芋 阅读(342) 评论(0) 推荐(0) 编辑
摘要: 题意:求一个字符串里两个不重叠的最长重复子串代码如下: 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 7 int sa[20010],rank[20010],y[20010],Rsort[... 阅读全文
posted @ 2015-12-15 17:02 konjak魔芋 阅读(205) 评论(0) 推荐(0) 编辑
摘要: 题意:给定一个字符串,求重复次数最多的连续重复子串。 传说中的后缀数组神题,蒟蒻真的调了很久才对啊。感觉对后缀数组和RMQ的模版都不是很熟,导致还是会有很多各种各样的小错误= = 首先,枚举重复子串的循环节为L,因为枚举的是循环节长度,所以是没有单调性的,那么枚举就要用0(n)的时间了。连续一次的情 阅读全文
posted @ 2015-12-15 16:59 konjak魔芋 阅读(345) 评论(0) 推荐(0) 编辑