摘要:
题目大意:有两个函数,g[i] = k * i + b,另外一个函数f[i] = f[i-1] + f[i-2],问你从0到n-1的f(g[i])的和。解题思路:斐波那契数列有种递推的思路是:{f[i+1], f[i]; f[i], f[i-1]} = A ^ i其中A = {1, 1; 1, 0}... 阅读全文
摘要:
题目大意:给你一个序列,让你把它变成一个严格递增的序列。对每个数字,无论+1或者-1都消耗1,问你把它变成严格递增的序列的最小cost解题思路:DP首先根据题目,a[i+1] >= a[i] + 1,两边同时减去i+1,就得到a[i+1] - (i + 1) >= a[i] - i设b[i] = a... 阅读全文
摘要:
题目大意:+ x表示向一个mutiset里增加一个数x- x表示向一个mutiset里面减少一个数x? x表示询问这个mutiset里面能够与x匹配的数的个数,匹配规则是x只由01组成,0表示偶数,1表示奇数。当x比要匹配的数长度短的时候,在x前面补0,当x比要匹配的数长度长的时候,在待匹配的数前面... 阅读全文
摘要:
题目大意:已知f[0] = 0, f[1] = 1, f[i] = f[i-1] * 2 + f[i-2],且g[n] = g[n-1] + f[n] * f[n],现在给出n,y,x,s,问你x^(g[n*y]) mod (s + 1)的值为多少。解题思路:首先可以得到的是g[n] = f[n] ... 阅读全文
摘要:
一、引言在平时做题目或者进行运算的时候,素数的出现次数总是十分频繁。今天我们就来一点一点的说一说关于素数的一些算法。二、朴素判断素数算法就判断素数而言,事实上是非常简单的了。根据定义,判断一个整数n是否是素数,只需要去判断在整数区间[2, n-1]之内,是否具有某个数m,使得n % m == 0。代... 阅读全文
摘要:
题目大意:有n对二元组(key, value),两个相邻的元组间如果key的不互质,那么可以被移除,并获得两个元组的value值之和的分数,问你最多能有多少分数。解题思路:区间DP按照最裸的区间DP模型用记忆化搜索写是要超时的...本题的模型可以参考POJ-2955 Brackets题解这里有~设d... 阅读全文
摘要:
题目大意:给你n个点,有m条边,让你求出这个图的最短路上的最小割,这个最小割。解题思路:直接求出最短路图然后dinic跑最小割就行。我遇到的一些错误点:1、用dinic算法求解最小割需要使用当前弧优化,否则会TLE2、最短路图注意求最短路的时候,每个边都是长度为1,也就是说可以bfs求。千万不要把权... 阅读全文
摘要:
题目大意:给你n个长度为ai的序列,让你把这n个序列合并,每次合并需要一个cost,值为合并的序列的长度之和,每次最多可以合并k个序列。现在问你,给出cost最大为T,最小的k是多少。解题思路:显然,可以用优先队列水一发,复杂度为nlognlogn二分枚举k,然后每次取最小的k个加在一起,加入队列,... 阅读全文
摘要:
题目大意:给你一个完全图让你删除给出的这些边形成新的图,问你在新的图上的s点到其它所有点的距离。解题思路:BFS乱搞...补图的BFS的问题虽然很经典= =不过确实还是第一次做。很方。用一个map来保存邻接的信息。因为最多20000,很坑的是比赛时候题面给的是5000然后先从s来遍历所有点,如果邻接... 阅读全文
摘要:
解题思路:斜率优化DP这道题= =嘛算是斜率优化的入门题目了。还是非常经典的感觉。首先考虑,这道题目有经验的小伙子一眼就可以想出来状态转移方程是什么。显然是 dp[i] = min(dp[i], dp[j] + pow(sum[i] - sum[j] + i - j - 1 - L, 2));但是想... 阅读全文