题意:A biologist experimenting with DNA modification of bacteria has found a way to make bacterial colonies sensitive to the surrounding population dens...
分类:
编程语言 时间:
2014-08-25 18:32:14
阅读次数:
252
题目来源:URAL 1019. Line Painting
题意:求最长的一段全部为白色的区间
思路:线段树成段更新 区间合并 离散化 这里对应的是一段区间 所以每次不是m+1 而是 l m 和 m r 了 另外我加上了0 和 10^9 这两个点
每一段区间(l, r)我记录的是l和r之间有多少条线段
#include
#include
#include
using namesp...
分类:
其他好文 时间:
2014-08-25 17:12:12
阅读次数:
229
题意 判断一个串最少可以分解为多少个对称串 一个串从左往后和从右往左是一样的 这个串就称为对沉串
令d[i]表示给定串的前i个字母至少可以分解为多少个对称串 那么对于j=1~i 若(i,j)是一个对称串 那么有 d[i]=min(d[i],d[j-1]+1) 然后就得到答案了
#include
#include
#include
using namespace std;...
分类:
其他好文 时间:
2014-08-25 17:11:44
阅读次数:
181
题意 求一个序列a某一位的最长递增序列(lis)和最长递减序列(lds)中最小值的最大值
开始直接用DP写了 然后就超时了 后来看到别人说要用二分把时间复杂度优化到O(n*logn) 果然如此 用一个栈s保存长度为i的LIS的最小尾部s[i] top为栈顶即当前LIS的长度 初始s[1]=a[1] top=1 遍历整个序列 当a[i]>s[top]时 a[i]入栈
...
分类:
其他好文 时间:
2014-08-25 17:10:14
阅读次数:
258
题意:
给你 N 和 K,问有多少个数对满足 gcd(N-A, N) * gcd(N - B, N) = N^K
分析:
由于 gcd(a, N) 2 都是无解,K=2 只有一个解 A=B=N,只要考虑 K = 1 的情况就好了
其实上式和这个是等价的 gcd(A, N) * gcd(B, N) = N^K,我们枚举 gcd(A, N) = g,那么gcd(B, N) = N / g。问题转化为...
分类:
其他好文 时间:
2014-08-25 17:04:04
阅读次数:
183
题意:给出矩形两对角点坐标,求矩形面积并。解法:线段树+离散化。每加入一个矩形,将两个y值加入yy数组以待离散化,将左边界cover值置为1,右边界置为2,离散后建立的线段树其实是以y值建的树,线段树维护两个值:cover和len,cover表示该线段区间目前被覆盖的线段数目,len表示当前已覆盖的...
分类:
其他好文 时间:
2014-08-25 16:30:44
阅读次数:
293
一周总结数论POJ3058题意:就是给定一个分数,要求把它化成二进制形式,求最小的循环节和循环节开始的位置。首先约分化成最简分数形式p/q,然后化成二进制就是每次乘2大于1时,本位为1,该数取余,那么总会存在。则(p*2^i)%q=(p*2^j)%q,这里假设i<j,则可化为(p*2^(j-...
分类:
其他好文 时间:
2014-08-25 16:19:54
阅读次数:
180
题意:就是给定一个范围的时间段,第一天是周日,然后周五周六是不会罢工的。有几个党派,他们会每个hi天发起罢工,每个党派有一个hi值。这样,求给定天数中的罢工天数。
思路:从1到n循环天的编号,如果是周五周六(模7等于6或0),则不罢工;如果是其中某个hi的倍数,则必罢工。
这个应该是水题了吧。。虽然开始可能会想到计数问题那个复杂的东西~
Code:
#include
int main()...
分类:
其他好文 时间:
2014-08-25 15:06:24
阅读次数:
152
UVA 1471 - Defense Lines
题目链接
题意:给定一个序列,要求删去一个连续子序列后,得到的序列有一个最长的连续递增序列,输出最长连续递增序列长度
思路:先左右扫描一遍,把每个位置往左和往右的最大长度记录下来,然后在从左往右扫描一遍,开一个数组Min用来记录长度i的序列,最后一位的最小值,这个序列是满足单调性的,因为递增序列肯定是1,2,3,4...这样不断往...
分类:
其他好文 时间:
2014-08-25 15:03:34
阅读次数:
227
链接:http://poj.org/problem?id=3311
题意:有N个地点和一个出发点(N
思路:首先用floyd找到所有点之间的最短路。然后用状态压缩,dp数组一定是二维的,如果是一维的话不能保证dp[i]->dp[j]一定是最短的。因为dp[i]记录的“当前位置”不一定是能使dp[j]最小的当前位置。所以dp[i][j]中,i表示的二进制下的当前已经经过的状态,j表示的是...
分类:
其他好文 时间:
2014-08-25 15:03:14
阅读次数:
109