09 2016 档案
摘要:题目大意:已知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));但是想...
阅读全文
摘要:题目大意:给你一个只由'('、')'、'['、']'组成的字符串,问你这个字符串的子串能够匹配的最长长度是多少。能够匹配的意思是这样的:1.如果s是个空串,那么它是匹配的。2.如果子串是(s)或者[s],那么它也是匹配的,其中s是匹配的3.如果s是匹配的,s'也是匹配的,那么ss'也是匹配的解题思路...
阅读全文
摘要:解题思路:一种非常神奇的枚举策略...不过这种枚举策略...是需要DP来完成的嘛...这种神奇的题目我独立肯定是做不来的...所以我是看着这篇博客写的...传送门嘛...这篇博客好就好在...你必须要想通了你才知道这个代码是怎么回事...太可怕了%%%首先,因为题目说了, 必须要是三个k*k的矩形,...
阅读全文

浙公网安备 33010602011771号