nyoj
浮屠血华
这个作者很懒,什么都没留下…
展开
-
nyoj 243 交换输出
找到最小值 与第一位交换后输出#includeint main(){int a[100];int n,i,min,q,t;while(scanf("%d",&n)&&n!=0){q=0;//为后文下标做交换for(i=0;i{scanf("%d",&a[i]);}min=a[0];for(i=0;i{if(min>a[i]){原创 2016-07-10 09:43:32 · 212 阅读 · 0 评论 -
nyoj 71 独木舟上的旅行
#include#includeint cmp(const void*a,const void*b){return *(int*)b-*(int*)a;} int main(){int a[300];int s,i,j;scanf("%d",&s);while(s--){int w,n;int count=0;scanf("%d%d",&原创 2016-07-14 10:28:55 · 190 阅读 · 0 评论 -
nyoj 106 背包问题
#include#includestruct tx{int v;int w;};int comp(const void*a,const void*b){return (*(tx*)b).v>(*(tx*)a).v?1:-1;} int main(){tx a[11];int n,sw,sv;int i,j,t;scanf("%d",&原创 2016-07-15 10:53:42 · 189 阅读 · 0 评论 -
八皇后 问题 回溯算法
#includeint tot;int n;int c[110];void serch(int h){ if(h==n) tot++;//递归的边界 else { for(int i=0;i<n;i++) { int ok=1; c[h]=i;//将第h行的皇后放在i列 for(int j=0;j<h;j++) { if(c[h]==c[原创 2016-07-26 19:39:29 · 220 阅读 · 0 评论 -
nyoj 14 会场安排问题
本体是经典的贪心算法问题按结束时间由小到大排序第一个区间是一定要选的之后 需要把所有和区间1相交的区间排除在外 并记录上一个被选的区间编号这样 排序后只需扫描一次就可以得到正确结果#include#includestruct tme{ int st; int ed;};int cmp(const void*a,const void*b){ return (*(tme*)a).ed原创 2016-07-16 10:14:24 · 172 阅读 · 0 评论 -
深搜解决迷宫问题
#includeint book[51][51];int a[51][51];int m,n,i,j,p,q;int min=99999;void dfs(int x,int y,int step){ //判断的是否达到目标位置 if(x==p&&y==q) { //更新最小值 if(step<min) min=step; return ; } int原创 2016-07-27 09:35:33 · 636 阅读 · 0 评论 -
数独问题的方法
#include #include int map[9][9]; bool row[9][10]; bool col[9][10]; bool block[3][3][10]; //三位数组 前两位为数组的坐标 最后一位为数组的内容 bool flag;void DFS(int x)//填入81个数由零开始 { if(flag) return;//减少不必要的判断 进行时原创 2016-07-27 17:10:05 · 259 阅读 · 0 评论 -
nyoj 914 yougth最大值 二分 贪心
#include #include #define N 10010using namespace std;double cmp(double a,double b){ return a>b;}double w[N],v[N],c[N];int main(){ int n,k; while(scanf("%d%d",&n,&k)!=EOF) { int i; dou转载 2016-07-18 11:37:58 · 235 阅读 · 0 评论 -
nyoj 58 最小步数问题 BFS
#includestruct note{ int x; int y; int s;};int main(){ struct note que[82]; int a[9][9]={ 1,1,1,1,1,1,1,1,1, 1,0,0,1,0,0,1,0,1, 1,0,0,1,1,0,0,0,1,原创 2016-07-28 18:21:50 · 302 阅读 · 0 评论 -
nyoj 35 表达式求值
#include#include#include#includeusing namespace std;char s[1010];stack numb;//定义数据栈stack fh;//符号栈int main(){ int n; scanf("%d",&n); while(n--) { scanf("%s",&s[1]); int len=strlen(&s[1转载 2016-07-18 17:26:06 · 191 阅读 · 0 评论 -
nyoj 2 括号配对 栈
#include#include#includeusing namespace std;char a;int main(){ int n; scanf("%d",&n); getchar(); while(n--) { stack fh;//定义栈 while(scanf("%c",&a)&&a!='\n') { if(fh.empty())如果栈为空原创 2016-07-18 21:27:09 · 226 阅读 · 0 评论 -
nyoj 305 表达式求值 (栈实现)
#include#includeusing namespace std;#includeint main(){ int n; scanf("%d",&n); while(n--) { char g[310]; stack f; stack num; scanf("%s",g); int len=strlen(g); for(int i=0;i<len;i原创 2016-07-19 10:52:54 · 267 阅读 · 0 评论 -
nyoj 755 山谷
#include#includeusing namespace std;stack j;int main(){ int n,hi; while(scanf("%d",&n)!=EOF) { int t=0; int count=0; while(n--) { scanf("%d",&hi); if(j.empty()) { j.push(原创 2016-07-21 09:28:37 · 280 阅读 · 0 评论 -
nyoj 苹果 01背包
#include#includeint v,n;int f[1010];int main(){ while(scanf("%d%d",&n,&v),v+n) { int c,w; memset(f,0,sizeof(f)); for(int i=1;i<=n;i++) { scanf("%d%d",&c,&w); for(int j=v;j>=c;j--)原创 2016-08-04 17:38:56 · 244 阅读 · 0 评论 -
poj 2386 同 nyoj 27 dfs
#includeint m,n;char a[105][105];void dfs(int x,int y){ if(x=m||y=n) { return ; } if(a[x][y]=='W')//八个方向搜索 { a[x][y]='.'; dfs(x+1,y); dfs(x,y+1); dfs(x-1,y); dfs(x,y-1); dfs(x-原创 2016-08-02 21:09:48 · 247 阅读 · 0 评论 -
nyoj 6 喷水装置(一)
#include#include#includeint comp(const void *p1,const void *p2){double *a=(double*)p1;double *b=(double*)p2;return *a-*b>0?-1:1;//当为double类型排序时应特别注意}int main(){double pen[610];原创 2016-07-13 20:25:26 · 192 阅读 · 0 评论 -
nyoj 8 一种排序
学会了使用qsort函数 来进行排序http://baike.baidu.com/link?url=ui_gRpSGl5ZBO6SqQDeKnG_EBOnfS4ZH3XTNlBd826grBJzPp-SQisr0ITjopXIZXivhXUCZnpgjMXjPH1dFZK#include#includestruct ch{int l;int w;int原创 2016-07-13 11:35:41 · 191 阅读 · 0 评论 -
nyoj 26 孪生素数问题
由于题目使用的数据过大 普通判断方法会超时 采用筛选法#include#includebool temp[1000010];int main(){int n,i,j;scanf("%d",&n);while(n--){int count=0;int m;scanf("%d",&m);if(m>2){temp[2]=true;}原创 2016-07-13 08:20:42 · 228 阅读 · 0 评论 -
nyoj 244 16进制简单运算
#includeint main(){int t;scanf("%d",&t);while(t--){int a,b;char c;scanf("%x%c%x",&a,&c,&b);if(c=='+'){printf("%o\n",a+b);}if(c=='-'){printf("%o\n",a-b);}}return 0原创 2016-07-10 10:28:27 · 422 阅读 · 0 评论 -
nyoj 255 c小加之随机数
对输入的数据进行去重和排序#includeint a[100],n;void quick(int l,int r){int i,j,temp,t;if(l>r)return ;temp=a[l];i=l;j=r;while(i!=j){while(a[j]>=temp&&i{j--;}while(a[i]{i++;}原创 2016-07-10 11:31:09 · 238 阅读 · 0 评论 -
nyoj 260 数数小木块
找到规律 很简单#includeint main(){int n;scanf("%d",&n);while(n--){int t,sum=0;int i,j;scanf("%d",&t);for(i=1;i{for(j=i;j>=1;j--){sum+=j;}}printf("%d\n",sum);}return原创 2016-07-10 15:45:26 · 389 阅读 · 0 评论 -
nyoj 263 精挑细选
考察较为全面#includeint main(){int n,i;scanf("%d",&n);while(n--){int m;int a,b,c,a1,b1,c1;scanf("%d",&m);scanf("%d%d%d",&a,&b,&c);for(i=0;i{scanf("%d%d%d",&a1,&b1,&c1);if((a1>a原创 2016-07-10 17:09:54 · 375 阅读 · 0 评论 -
nyoj 264 国王的魔镜
镜子的反射 因此需要对称的看#include#includeint main(){int n;scanf("%d",&n);while(n--){int l,i,f=0;char a[100];scanf("%s",&a);l=strlen(a);while(l%2==0)//根据奇偶性做判断 直到为奇数跳出循环{for(i=0;i{原创 2016-07-10 19:13:14 · 287 阅读 · 0 评论 -
nyoj 268 荷兰国旗问题
很水的一道题 但因为自己的粗心 错了一次 以此为戒#includeint main(){int n,i;scanf("%d",&n);while(n--){int r=0,w=0,b=0;char a[1000];scanf("%s",a);for(i=0;a[i]!='\0';i++){if(a[i]=='R')r++;if(a[i]=原创 2016-07-10 20:13:37 · 299 阅读 · 0 评论 -
nyoj 275 队花的烦恼一
数组开的不够大#includeint main(){int n,i,q,a[10000];while(scanf("%d",&n)!=EOF){i=0;if(n==0)printf("0");while(n!=0){a[i++]=n%2;n/=2;}q=i;for(i=q-1;i>=0;i--) {printf("%d",a[原创 2016-07-10 20:48:27 · 294 阅读 · 0 评论 -
nyoj 276 比较字母大小
#includeint main(){int t;scanf("%d",&t);while(t--){char a,b;getchar();//字符注意回车与空格scanf("%c %c",&a,&b);if(a==b){printf("%c=%c\n",a,b);}if(a{printf("%c>%c\n",a,b);}if原创 2016-07-10 21:12:25 · 247 阅读 · 0 评论 -
nyoj 277 车牌号
考察字符串数组的应用#include#include int main(){int n,m,i;scanf("%d",&n);while(n--){char a[6],s[6];scanf("%d",&m);scanf("%s",a);strcpy(s,a);for(i=1;i{scanf("%s",a);if(strcmp(a,原创 2016-07-11 10:00:32 · 342 阅读 · 0 评论 -
nyoj 283 对称排序
先排序 再对称#include#includeint main(){int n,i,j,m=0;char a[15][26],temp[26];scanf("%d",&n);while(n){for(i=0;iscanf("\n%s",a[i]);for(i=0;ifor(j=0;jif(strlen(a[j])>strlen(a[j+1])原创 2016-07-11 11:43:45 · 192 阅读 · 0 评论 -
大数加法
大数问题 使用字符数组 模拟竖式运算方法 进行运算 #include#includeint main(){int n,i,l,la,lb,k;char a[201],b[201];int af[201]={0},bf[201]={0},c[201]={0};scanf("%d",&n);while(n--){scanf("%s%s",a,b);la=原创 2016-07-12 11:05:32 · 166 阅读 · 0 评论 -
nyoj 655
#include#includeint main(){int t,i,j;int fib[205][205];fib[0][204]=1;fib[1][204]=1;for(i=2;i{for(j=204;j>=0;j--){ fib[i][j] += (fib[i-1][j]+fib[i-2][j]) % 10;原创 2016-07-12 15:49:08 · 185 阅读 · 0 评论 -
nyoj 28 大数阶乘
#includeint main(){int m,i,j,k,flag;int a[6001],b[16000];//最终存放结果的数组一定要开的大一点;scanf("%d",&m);for(i=0;i{a[i]=i;}b[1]=1;k=1;for(i=1;i{flag=0;for(j=1;j{b[j]=b[j]*a[i];}原创 2016-07-12 16:54:41 · 168 阅读 · 0 评论 -
nyoj 458 小光棍数
#include#includeint main(){char m[100];int a[100];int n,i,k;scanf("%d",&n);while(n--){k=0;scanf("%s",&m);int len=strlen(m);for(i=0;m[i]!='\0';i++){a[i]=m[i]-'0';}for(原创 2016-07-12 19:40:25 · 348 阅读 · 0 评论 -
nyoj 17 最长子序列相关问题
#include#includeint main(){ int T,count; char a[10000],dp[30]; scanf("%d",&T); while(T--) { count=0; memset(dp,0,sizeof(dp)); scanf("%s",a); int len=strlen(a); for(int i=0;i<len;i++原创 2016-08-06 21:04:07 · 271 阅读 · 0 评论