acm
rudy45
这个作者很懒,什么都没留下…
展开
-
acm 2084
刚开始还不会,找找答案,原来是动态规划的问题。#include#include#includeusing namespace std;int main(){int t,high,map[101][101],i,j;cin>>t;while(t--){ cin>>high;memset(map,0,sizeof(map));for(i=1;i原创 2013-06-02 19:48:03 · 541 阅读 · 0 评论 -
acm 2034
这个题关键是最后结果的输出时,每个元素后边有一空格 #include#include#includeint cmp(const void *a,const void *b){ return *((int *)a)-*((int *)b);}void main(){ int a[102],b[102],c[102],x[102];int i,j原创 2013-05-27 23:16:49 · 517 阅读 · 0 评论 -
acm 2023
最后的输出要输出2个空格#include#includevoid main(){ double ave[6]={0.0}; int i,j,n,m,num,sum,flag;int grade[52][6];while(scanf("%d%d",&n,&m)!=EOF){ num=0;memset(ave,0,sizeof(ave));mem原创 2013-05-25 22:54:23 · 560 阅读 · 0 评论 -
acm 2081
#include#includevoid main(){ int n,i,j; char inputChar[12]; char outCh[7]="6";scanf("%d%*c",&n);for(i=0;i { scanf("%s",inputChar);outCh[1]=inputChar[6]; outCh[2]=inputChar[7]原创 2013-05-23 18:32:15 · 565 阅读 · 0 评论 -
acm 2097
这道题关键是输出结果最后还有个英文的句号要带上 #includeint find(int n,int num){ int sum=num%n; num=num/n; while(num>0){ sum+=num%n; num=num/n;}return sum;}void main(){ int n;原创 2013-05-23 18:19:18 · 450 阅读 · 0 评论 -
acm 2099
#include#includevoid main(){ int n,m,i,j;while(scanf("%d%d",&n,&m)!=EOF&&n&&m){ i=n%m*100; j=n%m*100+99; int loop=i; char ch[3]=""; int flag; for(flag=0;loop if(loop%原创 2013-05-23 17:59:01 · 527 阅读 · 0 评论 -
acm 2027
#include#include#includevoid main(){ int t,i,j;char ch[102];int count[5]={0};scanf("%d%*c",&t);for(i=0;i{gets(ch);memset(count,0,sizeof(count)); if(i!=0) printf("\n");原创 2013-05-22 23:32:19 · 498 阅读 · 0 评论 -
acm 2030
汉字在计算机中是以两字节来存储的,而且只要判断两字节的大小都是负数就可以了 #include#include#includeusing namespace std;void main(){ int t;scanf("%d",&t);string p;getchar();int len,i,j;for(i=0;i{getline(cin,原创 2013-05-22 21:55:49 · 825 阅读 · 0 评论 -
acm 2024
#include#includevoid main(){ int t,i,j; char ch[55]; scanf("%d%*c",&t); for(i=0;i { gets(ch); j=0; if((ch[0]>='A'&&ch[0]='a')||(ch[0]=='_')) { j=1; for原创 2013-05-22 23:08:59 · 585 阅读 · 0 评论 -
acm 2026
考虑当第一个字符是空格的时候 #include#include#includeusing namespace std;void main(){ int i,j; string ch;while(getline(cin,ch)){ i=0;if(ch[i]>='a'&&ch[i]{ ch[0]=ch[0]-'a'原创 2013-05-22 22:30:40 · 423 阅读 · 0 评论 -
acm 2035
已经经过oj验证的 #includeint main(){ int n,m,i,num; while(scanf("%d%d",&a,&b)!=EOF&&(m||n)) { num=n%1000; for(i=1;i num=num*a%1000; printf("%d\n",num); } return 0;}原创 2013-05-28 19:08:24 · 561 阅读 · 0 评论 -
acm 2048
这道题的关键是种类数很大,数组要用longlong #includeint main(){ _int64 a[21][2]={{0,0},{1,0},{2,1}}; int i,j,C,sum;for(i=3;i{ a[i][0]=i*a[i-1][0];a[i][1]=(i-1)*(a[i-1][1]+a[i-2][1]);}scanf("%d",&C原创 2013-05-29 21:04:05 · 673 阅读 · 0 评论 -
acm 2053
这道题结果至于第n盏灯有关,所以计算的时候其他灯的状态不用管 #include#includeint main(){int lap[100005],i,j,n,k;while(scanf("%d",&n)!=EOF){ memset(lap,0,sizeof(lap)); for(i=1;i { if(n%i==0) lap[n原创 2013-05-31 23:10:19 · 549 阅读 · 0 评论 -
acm 2087
刚开始做这道题,就是用穷举法,没过,然后改成kmp算法,竟然过了。 #include#includeusing namespace std;void _next(string pStr,int *next){ int k=-1,j=0,len=pStr.length(); next[0]=-1; while(j { if(k==-原创 2013-06-01 14:06:48 · 513 阅读 · 0 评论 -
acm 2074
提交了很多遍才过得,原来用这种方法,当输入是1 的时候就是错的,所以1要特殊处理 #include#includeint main(){char map[81][81],a[2],b[2];int flag=0,num,i,j,k;char c;while(scanf("%d%s%s",&num,b,a)==3){if(!flag) ++flag;原创 2013-06-01 16:20:27 · 729 阅读 · 0 评论 -
acm 2076
右边是double型的数值,而左边有整数时,给整数*1.0.i#include#includeint main(){int t,h,m,s,i,j;double dh,dm,ans;scanf("%d",&t);for(i=0;i{dh=0.0; dm=0.0;scanf("%d%d%d",&h,&m,&s);if(h>=12)h-=12;原创 2013-05-30 11:03:22 · 536 阅读 · 0 评论 -
acm 2039
#include#includeint main(){int i,n;float a[3]; //说的是正数,没有说是整数scanf("%d",&n);for(i=0;i{scanf("%f%f%f",&a[0],&a[1],&a[2]);if((a[0]+a[1]>a[2])&&(a[2]+a[1]>a[0])&&(a[2]+a[0]>a[1])原创 2013-05-29 22:00:06 · 549 阅读 · 0 评论 -
acm 2096
#includeint main(){int i,n;_int64 j,t;scanf("%d",&n);for(i=0;i{ scanf("%I64d%I64d",&j,&t);printf("%I64d\n",(j+t)%100);}return 0;}原创 2013-05-29 23:38:42 · 613 阅读 · 0 评论 -
acm 2044
这道题和2041一样都是呀使用动态规划,地推来做,不过要注意的是,数组要设置很大的值才可以,这个是最终要的 #include#includeint main(){int i,j,n,a,b;_int64 step[50]={0};memset(step,0,sizeof(step));step[1]=1;for(i=1;i{ if(i+1 st原创 2013-05-29 23:27:36 · 550 阅读 · 0 评论 -
acm 2031
#include#includeint main(){ int ans[100];int j,i,mark,n,m; while(scanf("%d%d",&n,&m)!=EOF){mark=1;if(n{mark=-1;n=abs(n);printf("-");}j=0;while(n){ ans[j++]=n%m;原创 2013-05-29 21:20:09 · 541 阅读 · 0 评论 -
acm 2041
这个题的原理是动态规划,1地推回去就可以了#include#includeint main(){int a[41]={0,1},i,j,n;a[1]=1;memset(a,0,sizeof(a));a[0]=0;a[1]=1;for(i=1;i{ if(i+1 a[i+1]+=a[i];if(i+2 a[i+2]+=a[i原创 2013-05-29 22:55:21 · 507 阅读 · 0 评论 -
acm 2022
对于这种从很多数中挑出最大值,或者是最小值的,不用数组,输入一个比较一个。 #include#includevoid main(){ int row,col,max,score,i,j;int n,m;while(scanf("%d%d",&n,&m)!=EOF){max=row=col=0; for(i=0;i for(j=原创 2013-05-20 18:58:31 · 574 阅读 · 0 评论 -
大三计划
本人虽是女流之本,专业是软件工程。但是偏偏对软件工程,分析呀什么的没兴趣。经历了2年才发现我真的很喜欢算法。回头看看就数据结构的成绩最高了。而且实验我都是提前完成的。因为兴趣在那里么。 转眼间已经是大二下学期了。突然醒悟过来,要准求自己擅长的,所喜欢的,找来找去就是算法了。班级里的有几个男生acm很厉害。和他们一比,自惭形秽呀。那叫一后悔呀,为什么我入门这么慢,大一为什么不开始学ac原创 2013-05-20 10:35:49 · 687 阅读 · 0 评论 -
acm 2021
#include#includeusing namespace std;void main(void){ int a[]={100,50,10,5,2,1}; int n,m,ans,i,j;while(scanf("%d",&n)!=EOF&&n&&n{ ans=0; for(i=0;i { scanf("%d",&m);原创 2013-05-19 16:59:00 · 497 阅读 · 0 评论 -
acm 2020
输入n(n Input输入数据有多组,每组占一行,每行的第一个数字为n,接着是n个整数,n=0表示输入数据的结束,不做处理。 Output对于每个测试实例,输出排序后的结果,两个数之间用一个空格隔开。每个测试实例占一行。 Sample Input3 3 -4 24 0 1 2 -30 Sample Out原创 2013-05-19 16:39:50 · 545 阅读 · 0 评论 -
acm 2019
#include#includeusing namespace std;int main(){ int m,n;int a[102];while(scanf("%d%d",&n,&m)!=EOF&&(n||m)){ int i,j,t=-1;memset(a,0,sizeof(a));for(i=0;i{scanf("%d",&a[i]);原创 2013-05-19 08:34:25 · 719 阅读 · 0 评论 -
acm 2014
Problem Description青年歌手大奖赛中,评委会给参赛选手打分。选手得分规则为去掉一个最高分和一个最低分,然后计算平均得分,请编程输出某选手的得分。 Input输入数据有多组,每组占一行,每行的第一个数是n(2 Output对于每组输入数据,输出选手的得分,结果保留2位小数,每组输出占一行。 Sample Input原创 2013-05-19 06:31:31 · 394 阅读 · 0 评论 -
acm 2013
喜欢西游记的同学肯定都知道悟空偷吃蟠桃的故事,你们一定都觉得这猴子太闹腾了,其实你们是有所不知:悟空是在研究一个数学问题!什么问题?他研究的问题是蟠桃一共有多少个!不过,到最后,他还是没能解决这个难题,呵呵^-^当时的情况是这样的:第一天悟空吃掉桃子总数一半多一个,第二天又将剩下的桃子吃掉一半多一个,以后每天吃掉前一天剩下的一半多一个,到第n天准备吃的时候只剩下一个桃子。聪明的你,原创 2013-05-19 06:10:04 · 422 阅读 · 0 评论 -
acm 2005
给定一个日期,输出这个日期是该年的第几天。 Input输入数据有多组,每组占一行,数据格式为YYYY/MM/DD组成,具体参见sample input ,另外,可以向你确保所有的输入数据是合法的。 Output对于每组输入数据,输出一行,表示该日期是该年的第几天。 Sample Input1985/1/202006/3/12原创 2013-05-18 19:04:00 · 499 阅读 · 0 评论 -
acm 使用穷举法解决人鸡狗米过河的问题
在网上看了一到关于人鸡米狗过河的数学建模题。然后对其进行编码实现。方法参考来源于:http://blog.sina.com.cn/s/blog_6c138b4701011own.html。以下是具体的代码: #include#include#include#define STATUS 16#define NUM 4#define NUMOFSTEP 20原创 2013-05-17 14:15:06 · 2757 阅读 · 0 评论 -
acm 人鸡米狗过河的实现
今天上网看到一到题,是关于人 鸡米狗过河的问题。借助于图的深层递归,输出所有的答案。看了半天终于弄懂了,一下是我的理解。代码来源:http://dfpxing.i.sohu.com/blog/view/50626999.htm 一个人带着米,鸡,狗过河,人只能一次带一动物过河,但是鸡和狗,米和鸡不能单独呆在一起。为了安全起见,怎样过河 理解: 设here[4](表示4个对象是否在此转载 2013-05-16 23:15:40 · 3227 阅读 · 0 评论 -
acm 2009
Problem Description数列的定义如下:数列的第一项为n,以后各项为前一项的平方根,求数列的前m项的和。 Input输入数据有多组,每组占一行,由两个整数n(n Output对于每组输入数据,输出该数列的和,每个测试实例占一行,要求精度保留2位小数。 Sample Input81 42 2原创 2013-05-19 00:04:26 · 509 阅读 · 0 评论 -
acm2012
#includeusing namespace std;void main(void){ int x,y,i,c,b,n,s;while(cin>>x>>y){ if(x==0&&y==0) break; b=0;for(n=x;n{ s=n*n+n+41;c=0; for(i=2;i{ if(s%i==0)转载 2013-05-19 06:02:21 · 463 阅读 · 0 评论 -
acm 2093
今天考失落,2093花了好久都没做出来。明天继续吧原创 2013-05-20 01:07:16 · 539 阅读 · 0 评论 -
acm 2043
#include#include#include#includeusing namespace std;int main(){ char a[60]; int n,m,i; int t; int b[4]={0}; while(scanf("%d",&n)!=EOF) { for(i=0;i { memset(b,0,sizeof原创 2013-05-19 18:02:54 · 413 阅读 · 0 评论 -
acm 2089
#include#include#includeint num[1000010];void Init(){ int i,j;char ch[20];num[0]=0;for(i=1;i{num[i]=num[i-1]; itoa(i,ch,10);if(strstr(ch,"62")!=NULL||strstr(ch,"4")!=NULL)转载 2013-05-20 18:27:32 · 452 阅读 · 0 评论 -
acm 2054 这道题关键是输入数据的处理
if A==B刚刚看这道题的时候因为很水,没想到我想的太水了。在网上看了很多人讨论之后才发现原来是这样:数据的输入格式题目根本没有给出。可能是 00.0 00.0000 1.00 001.000等等,稀奇的数字。但是本质上就是去除数字开头语结尾的无用0.就可以了。输入的字符串容量要足够大。 #include#include#includeusing namespa原创 2013-05-19 22:15:18 · 506 阅读 · 0 评论 -
acm 2040
#include//这道题的本质就是找一个数的约数,但是要注意当为o的时候#include#includeusing namespace std;int main(void){ int n,x,y,i,j;scanf("%d",&n);for(int loop=0;loop{ scanf("%d%d",&x,&y);j=0;if(x!=1)原创 2013-05-19 21:16:45 · 409 阅读 · 0 评论 -
acm 2093终于通过
此题没有说输入人数的多少,那就设置大一些。这个代码找了很久,在网上找的代码。然后自己用qsort函数写了一遍,终于通过了 #include#include#include#includeusing namespace std;struct STUDENT{ char name[11]; int count; int time;}st原创 2013-05-20 17:33:37 · 549 阅读 · 0 评论 -
acm 2017
Problem Description对于给定的一个字符串,统计其中数字字符出现的次数。 Input输入数据有多行,第一行是一个整数n,表示测试实例的个数,后面跟着n行,每行包括一个由字母和数字组成的字符串。 Output对于每个测试实例,输出该串中数值的个数,每个输出占一行。 Sample Input2asdfasdf1231原创 2013-05-19 07:33:57 · 639 阅读 · 0 评论