摘要: 以前总是,得一行打印一行,现在可以将全部存储以后,再一次性输出,很好的方法还有就是行数的奇偶控制,很有效。找出n与,a,b的规律#include <cstdio>#include <cstring>#include <algorithm>using namespace std;int n;char a[81][81];void eva(int x, char c){ int i = x; int j = x; if(2*x>n) a[i][j]=c; else { for(;j... 阅读全文
posted @ 2012-04-04 10:20 shijiwomen 阅读(223) 评论(0) 推荐(0) 编辑
摘要: 本题用了打表的形式,求出了1000内的sg值,非常直接参考代码(http://www.cnblogs.com/lzsz1212/archive/2012/01/06/2315337.html)# include <stdio.h># include <string.h>int sg[10010] ;int k, knum[110] ;int flag[110] ;int met(int n){ int i, ans = 0 ; memset (flag, 0, sizeof(flag)) ; for (i = 0 ; i < k ; i++) if (n - k. 阅读全文
posted @ 2012-04-03 12:03 shijiwomen 阅读(230) 评论(0) 推荐(0) 编辑
摘要: 非常巧妙的运用了m^m=0的情况,妙啊35 7 90参考代码(http://www.cnblogs.com/lzsz1212/archive/2012/01/06/2315324.html)# include <stdio.h>int a[110] ;int main (){ int i, n, k, ans ; while (~scanf ("%d", &n) && n) { k = 0 ; for (i = 0 ; i < n ; i++) { scanf ("%d", &a[i]) ; ... 阅读全文
posted @ 2012-04-03 11:27 shijiwomen 阅读(214) 评论(0) 推荐(0) 编辑
摘要: 我一开始开了一个2000*2000的数组一直mte,后来发现,这个pn状态图有规律,才ac,这就有了一个启示,如果题目数据量大,我们需要考虑一下这题的数据是否有规律 阅读全文
posted @ 2012-04-03 10:55 shijiwomen 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 格式控制那块,用cin输入,输出的时候有问题,但不知道为什么能过不知道是不是我理解错了#include <cstdio>#include <iostream>using namespace std;char a[102][102];int n,m;int add(int q,int p){ int mines=0; if(a[q][p]=='*') return -1; if(q-1>=0&&a[q-1][p]=='*')mines++; if(q-1>=0&&p-1>=0&&am 阅读全文
posted @ 2012-04-02 17:20 shijiwomen 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 注意 题意输入的循序不能变 还有就是设置一个变量数组 记忆优化#include <stdio.h>#define INF 10000000int rem[INF]={0},max,sum;int main(){ int n,a,b,i,f,s,o; rem[1]=1; while(scanf("%d%d",&a,&b)!=EOF) { max=-1; s=a; o=b; if(a>b) { a=o; b=s; } for(i=a;i<=b;i++) { n=i; sum=1; //printf("fz:%d %d %d %d 阅读全文
posted @ 2012-04-01 21:17 shijiwomen 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 越来越感觉算法就是一种方法,一个解决一类问题的公式,当然公式有变形,题也有变形但只要深刻理解它,变形只是一种顺理而成,只要类比公式,推理一下,将代码变形一下#include <stdio.h>#include <string.h>#define MAX 50005struct trea{ int l,r; int summ;}trees[MAX*3];int num[MAX],n,t;void biuld(int i,int l,int r){ trees[i].l=l; trees[i].r=r; if(l==r) { trees[i].summ=num[l-1]; 阅读全文
posted @ 2012-04-01 18:49 shijiwomen 阅读(238) 评论(0) 推荐(1) 编辑
摘要: 真的很气愤,这题的限制条件有严格控制,代码中体现,我都无语了#include <stdio.h>#include <stdlib.h>int a[260][101],b[260][101];//第二维数组为硬币数 int main(){ int i,j,k,l,n,sum; int c[5]={1,5,10,25,50}; for(i=0;i<=260;i++) for(j=0;j<=101;j++) { a[i][j]=0;b[i][j]=0; } for(i=0;i<=100;i++)//用面值为1的硬币组成价值为i(不超过100) { b[i][ 阅读全文
posted @ 2012-04-01 14:18 shijiwomen 阅读(545) 评论(0) 推荐(0) 编辑
摘要: 递推式的时候一定要注意+号m+=m+n,左边的加号加不加我查了半天啊#include<stdio.h> #include<iostream> #include<string.h> #include<stdlib.h> #include<queue> #include<set> #include<stack>#include <fstream> using namespace std;#define max 8000003struct node{ char state[3][3]; int x,y; 阅读全文
posted @ 2012-04-01 08:55 shijiwomen 阅读(314) 评论(0) 推荐(0) 编辑
摘要: 题意:倒水问题,现在有两个容积为a和b的水壶,对每个水壶可以进行4种操作,两个水壶之间相互倒水(一个水壶倒空或者一个水壶倒满为止),从水农头那里灌水(将水壶灌满为止),向外倒水(将水壶倒空为止),问对这两个水壶进行这样的一系列操作是否可以量出容积为c的水(两个杯子中有一个水壶中的水的容积恰好为c) 由于题目是"Special Judge",即答案不是唯一的,题目给出了三项假设: 1> 只有两个水壶 2> 对于每个输入,都有一个确定的输出 3> 0<c[a]<=c[b]和N<=c[b]<=1000 也就是水壶A肯定比水壶B小,水壶B肯 阅读全文
posted @ 2012-03-31 20:13 shijiwomen 阅读(754) 评论(0) 推荐(0) 编辑