2012年7月31日

2012 Multi-University Training Contest 3

摘要: 1001检查A中的质因子 是否都在 B中被包含。1002按位统计计算,如果枚举 那么复杂度就是 64 * N第一条当统计第K位的时候 可以注意到 第 B+T*A 和 B+(T+2^(K+1))*A 位是相同的那么 第K位的时候 只需要统计2^K 次就可以了第二条当统计第K位的时候 可以注意到 连续的 (2^K)/A都是连续的0 或者连续的1 所以可以考虑直接连续记录(2^K)/A个结果。 那么 第K位的时候 只需要统计N / ((2^K)/A)次就可以了 综合 第一条 第二条 那么 第K位的时候 只需要统计 2^K/((2^K)/A) 复杂度 变为O(A) 总... 阅读全文

posted @ 2012-07-31 21:03 矮人狙击手! 阅读(217) 评论(0) 推荐(0) 编辑

zoj1414

摘要: 我是傻得不能再傻了,把整个过程模拟出来了,还很高兴,提交之后发现空间超了,看了下别人的原来是找规律啊坐标中表述的x,y 只有2种关系 :要么x = y, 当X为偶数 则所求数是2*x, 若为奇数,则2*x -1。要么x - y = 2. 当X为偶数 则所求数是2*x + 2, 若为奇数,则2*x +1。唉,可怜我原来的代码虽然没有过还是贴出来安慰下自己吧#include <stdio.h>#include <string.h>int a[5005][5005];int main(){ a[0][0]=0; a[1][1]=1; a[2][0]=2; a[3][1]=3; 阅读全文

posted @ 2012-07-31 09:47 矮人狙击手! 阅读(218) 评论(0) 推荐(0) 编辑

zoj1115

摘要: 水题一道,不过输入的时候欠思考,wa了一次代码:#include <stdio.h>#include <string.h>int work(int n){ int sum=0; while(n) { sum=sum+n%10; n=n/10; } return sum;}int main(){ char a[1000]; int n; while(1) { n=0; scanf("%s",a); int i; for(i=0;i<strlen(a);i++)... 阅读全文

posted @ 2012-07-31 09:03 矮人狙击手! 阅读(346) 评论(0) 推荐(0) 编辑

zoj1110

摘要: 说来惭愧,本以为是到简单题,但是就是捋不清思路,痛苦啊贴下代码吧:#include <stdio.h>int main(){ int s,p,y,j; int d=0,c=0,t=0; int i=0; while(scanf("%d %d %d %d", &s, &p, &y, &j) != EOF)//这里突然让我想到了一点,在c语言里while(),括号里不可以是true,只能是1,估计是用vc6.0用习惯了,用codeblocks就很不习惯,不过还是严格点好 { i=(12+j-y-p)/3; t=i; c=i+p... 阅读全文

posted @ 2012-07-31 08:19 矮人狙击手! 阅读(357) 评论(0) 推荐(0) 编辑

导航