上一页 1 ··· 24 25 26 27 28 29 30 31 32 ··· 66 下一页
摘要: 题目意思很好懂,就是问最少出来多少个是的队中的每一个人都能够看到最左边或者是最右边。我们通过枚举没一点作为最高点来求解这个问题,有个要注意的地方就是最高点其实允许有两个,即一个往左看,一个往右看。所以我们就只能够去枚举到左边的最高点,通过搜索去找右边的最高点(这个最高点只要满足高度小于等于我们枚举的点即可)。代码如下:#include <iostream>#include <cstdlib>#include <cstdio>#include <cstring>#include <algorithm>#include <cmath 阅读全文
posted @ 2012-09-14 21:18 沐阳 阅读(272) 评论(0) 推荐(0)
摘要: 这题给定一个系列的石头,求去除一些石头后,相邻两个石头的距离最小值最大。一个判定的贪心规则就是当枚举长度为D的时候,那么我们查看[0, 1]的距离是否大于D,如果小于的话,那么就直接删除掉1号点,再判定[0,2]是否满足,如果[0,2]满足了的话,那么就把2作为起点继续即可。代码如下:#include <iostream>#include <cstdlib>#include <cstdio>#include <cstring>#include <algorithm>#include <cmath>#include < 阅读全文
posted @ 2012-09-13 21:31 沐阳 阅读(219) 评论(0) 推荐(0)
摘要: 相当于表达式计算一般,用递归进行处理,将BEGIN视作是一个LOOP,每次进入LOOP则进行多条语句处理,知道遇到END位置,结束这个LOOP。代码如下:#include <iostream>#include <cstdlib>#include <cstdio>#include <cstring>#include <algorithm>#include <cmath>#include <string>#include <map>#include <queue>#include <v 阅读全文
posted @ 2012-09-13 19:45 沐阳 阅读(238) 评论(0) 推荐(0)
摘要: 求一个数形如 A^B 的所有因子和对9901的模。我们首先得到A的素因子分解形式p1^e1*p2^e2...pn^en 它的B次方就是p1^E1*p2^E2...pn^En,其中Ei = ei*B。其素因子的和就是(p1^0+p1^2+p1^3+...+p1^E1)*(p2^0+p2^2+p2^3+...+p2^E2)*... 对于其中的一项进行二分计算即可。注意大质数的存在。代码如下:#include <iostream>#include <cstdlib>#include <cstdio>#include <cstring>#include 阅读全文
posted @ 2012-09-13 12:15 沐阳 阅读(259) 评论(1) 推荐(0)
摘要: 给定一个串,两个串有A,T,G,C组成,求其两两配对,可以各自插入如干个空格,求最后的和值得最大值。可以定义如下状态,f[i][j]表示1串到第i位,2串到达第j位通过各自补充空格达到一一配对的最终最大值,这就意味着f[3][0]也是有意义的,表示1串的前三个与三个空格的最终结果。刚开始做的时候就是认为长的一个串一定不要添加空格导致后面否定了一些状态。那么有状态转移方程f[i][j] = max{ f[i-1][j]+val[s1[i]]['-'], f[i][j-1]+val['-'][s2[j]], f[i-1][j-1]+val[s1[i]][s2[j]] 阅读全文
posted @ 2012-09-13 10:29 沐阳 阅读(195) 评论(0) 推荐(0)
摘要: 题意是给定一个大数,这个数是由两个素数相乘得到的,现在问你这个大数的分解是否存在一个素数小于给定的数。由于这个给定的数L小于10^6,所以我们就可以打表到10^6,最好打的大一点(比10^6大的最小的素数即可),这样可以方便跳出循环。接下来,对于每一个数,我们直接对其小于L的所有素数进行一次试除,看是否余数为零。这里用到了一个大数取模的运算,一个大数对一个int型的数。过程是这样的,我们可以把一个数(abc...xyz)看作是10*(abc...xy)+z --> 10*(10*(abc...x)+y)+z,一直这样下去,我们在从最里面取模开始即可。代码如下:#include <c 阅读全文
posted @ 2012-09-12 20:22 沐阳 阅读(386) 评论(0) 推荐(0)
摘要: 注意输出结果也是在32位无符号内就可以了。代码如下:#include <cstdlib>#include <cstring>#include <cstdio>#include <algorithm>using namespace std;typedef long long Int64;Int64 C(Int64 a, Int64 b) { Int64 ret = 1; for (int i = 0; i < a; ++i) { ret *= (b-i); ret /= (i+1); } return ret;}int main() { .. 阅读全文
posted @ 2012-09-12 07:40 沐阳 阅读(192) 评论(0) 推荐(0)
摘要: 给定两个数,这两个数的长度都不超过6位数,然后求后一个数被怎样的分割能使得其和值最接近前一个数,其实这个问题就相当于在后一个数中进行插板而已。通过状态压缩来枚举隔板即可。代码如下:#include <iostream>#include <cstdlib>#include <cstdio>#include <cstring>#include <algorithm>#include <cmath>#include <string>#include <map>#include <queue># 阅读全文
posted @ 2012-09-12 07:13 沐阳 阅读(246) 评论(0) 推荐(0)
摘要: LightningLessonsTime Limit:5000ms,Special Time Limit:12500ms,Memory Limit:32768KBTotal submit users:8,Accepted users:8Problem 12545 :No special judgementProblem descriptionZeus wrung his hands nervously. “I’ve come to you because I agreed to duel Thor in the upcoming Godfest. You’re good in a fight, 阅读全文
posted @ 2012-09-11 20:18 沐阳 阅读(625) 评论(0) 推荐(0)
摘要: 给定一个数N,判定(1-N)中的数P满足gcd(N, P) != 1 && N % P != 0,当一个数在(1-N)中有奇数个这样的数,那么我们就是这个数是可取的,现在要求统计某一个区间[a,b]内有多少个满足要求的数。一般的思路就是通过区间相减来做了,对于1-N中有多少个这样的可以通过找规律来解决,不管你找没找到,我是没找到...这题可以来想,对于一个数N,其不互质的数的个数就是 N - phi(N),在剩余的数里面有多少个数是N的因子呢,通过素因子分解我们知道答案是T = (e1+1)*(e2+1)*...其中e1,e2是素因子的指数,所以最后结果就是 N-phi(N)- 阅读全文
posted @ 2012-09-11 11:47 沐阳 阅读(819) 评论(0) 推荐(1)
上一页 1 ··· 24 25 26 27 28 29 30 31 32 ··· 66 下一页