杭电-acm

合集下载

杭电acm题目水题英文题目、翻译及ac源代码

杭电acm题目水题英文题目、翻译及ac源代码

1040 As Easy As A+BTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 26015 Accepted Submission(s): 11054Problem DescriptionThese days, I am thinking about a question, how can I get a problem as easy as A+B? It is fairly difficulty to do such a thing. Of course, I got it after many waking nights.Give you some integers, your task is to sort these number ascending (升序).You should know how easy the problem is now!Good luck!InputInput contains multiple test cases. The first line of the input is a single integer T which is the number of test cases. T test cases follow. Each test case contains an integer N (1<=N<=1000 the number of integers to be sorted) and then N integers follow in the same line.It is guarantied that all integers are in the range of 32-int.OutputFor each case, print the sorting result, and one line one case.问题描述这些天来,我在思考一个问题,我怎样才能得到一个简单的问题,因为A + B?这是相当困难做这样的事情。

(完整版)杭电acm部分答案

(完整版)杭电acm部分答案

Problem DescriptionCalculate A + B.InputEach line will contain two integers A and B. Process to end of file.OutputFor each case, output A + B in one line.Sample Input1 1Sample Output2#include<stdio.h>void main(){int a,b;while(scanf("%d %d",&a,&b)!=EOF){printf("%d\n",a+b);}}Problem DescriptionHey, welcome to HDOJ(Hangzhou Dianzi University Online Judge).In this problem, your task is to calculate SUM(n) = 1 + 2 + 3 + ... + n.InputThe input will consist of a series of integers n, one integer per line.OutputFor each case, output SUM(n) in one line, followed by a blank line. You may assume the result will be in the range of 32-bit signed integer.Sample Input1100Sample Output15050#include<stdio.h>void main(){int n,sum,i;while(scanf("%d",&n)!=EOF){sum=0;for( i=0;i<=n;i++)sum+=i;printf("%d\n\n",sum);}}Problem DescriptionI have a very simple problem for you. Given two integers A and B, your job is to calculate the Sum of A + B.InputThe first line of the input contains an integer T(1<=T<=20) which means the number of test cases. Then T lines follow, each line consists of two positive integers, A and B. Notice that the integers are very large, that means you should not process them by using 32-bit integer. You may assume the length of each integer will not exceed 1000.OutputFor each test case, you should output two lines. The first line is "Case #:", # means the number of the test case. The second line is the an equation "A + B = Sum", Sum means the result of A + B. Note there are some spaces int the equation. Output a blank line between two test cases.Sample Input21 2112233445566778899 998877665544332211Sample OutputCase 1:1 +2 = 3Case 2:112233445566778899 + 998877665544332211 = 1111111111111111110 #include<stdio.h>#include<string.h>int main(){char str1[1001], str2[1001];int t, i, len_str1, len_str2, len_max, num = 1, k;scanf("%d", &t);getchar();while(t--){int a[1001] = {0}, b[1001] = {0}, c[1001] = {0};scanf("%s", str1);len_str1 = strlen(str1);for(i = 0; i <= len_str1 - 1; ++i)a[i] = str1[len_str1 - 1 - i] - '0';scanf("%s",str2);len_str2 = strlen(str2);for(i = 0; i <= len_str2 - 1; ++i)b[i] = str2[len_str2 - 1 - i] - '0';if(len_str1 > len_str2)len_max = len_str1;elselen_max = len_str2;k = 0;for(i = 0; i <= len_max - 1; ++i){c[i] = (a[i] + b[i] + k) % 10;k = (a[i] + b[i] + k) / 10;}if(k != 0)c[len_max] = 1;printf("Case %d:\n", num);num++;printf("%s + %s = ", str1, str2);if(c[len_max] == 1)printf("1");for(i = len_max - 1; i >= 0; --i){printf("%d", c[i]);}printf("\n");if(t >= 1)printf("\n");}return 0;}Problem DescriptionGiven a sequence a[1],a[2],a[3]......a[n], your job is to calculate the max sum of a sub-sequence. For example, given (6,-1,5,4,-7), the max sum in this sequence is 6 + (-1) + 5 + 4 = 14.InputThe first line of the input contains an integer T(1<=T<=20) which means the number of test cases. Then T lines follow, each line starts with a number N(1<=N<=100000), then N integers followed(all the integers are between -1000 and 1000).OutputFor each test case, you should output two lines. The first line is "Case #:", # means the number of the test case. The second line contains three integers, the Max Sum in the sequence, the start position of the sub-sequence, the end position of the sub-sequence. If there are more than one result, output the first one. Output a blank line between two cases.Sample Input25 6 -1 5 4 -77 0 6 -1 1 -6 7 -5Sample OutputCase 1:14 1 4Case 2:7 1 6注:最大子序列是要找出由数组成的一维数组中和最大的连续子序列。

杭州电子科技大学刘春英-中国大学生程序设计竞赛

杭州电子科技大学刘春英-中国大学生程序设计竞赛

2018/11/6
19
谢谢~
*欢迎提问*
2018/11/6
20
11
二、普通院校的ACM之路



领导重视(必要条件,政策导向) 教练投入(铁打的教练,流水的领导和学生) 积极参与(多参加各类比赛、多交流) 群众基础(AC的不仅仅有集训队员) 科学训练(不同阶段,不同方法) 集体突破(不限于个别优秀学生,HDU2006)
2018/11/6
12
三、具体建议
八、常见问题回答(F.A.Q)
一、教练不懂算法怎么办?(见下个问题) 二、学生英语不好怎么办? 三、是不是需要教练(或老队员)讲课? 四、学校不重视怎么办?
2018/11/6
18
九、特别说明



别相信那些“让我进队,我会好好练!”的同学; 别迷信普通的“NOIP”选手; 所有别人的帮助都是有限的; 任何学校和个人的成功都来之不易; 没有所谓的秘诀,有也是“葵花宝典”;

与人为善,不要好好先生 激情四溢,不要啦啦队长 善于学习,不要投机取巧 耐力长久,不要昏昏度日 定位准确,不在一城得失 热爱生活,ACM不是全部
2018/11/6
14
五、我眼中的ACM好教练

热爱ACM(真的热爱,才有感染力,) 良好心态(生活压力、发展压力) 慧眼伯乐(有潜力的,未必成绩好) 心理专家(安慰、鼓励、痛骂) 组织部长(发挥每个队的最大能量) 后勤部长(安全、经济、开心)
2018/11/6 9
第二部分
普通院校的竞赛建议
2018/11/6
10
一、何谓“普通院校”?

非“985”的普通本科院校 普通院校的特点:

杭电ACM试题详细分类,杭电oj详细分类,hdu详细分类,详细,ACM

杭电ACM试题详细分类,杭电oj详细分类,hdu详细分类,详细,ACM
数论
1164 1211 1215 1222 1286 1299
计算几何
1086 1115 1147
贪心
1009 1052 1055 1232 1272
线段树,离散化
1199 1255
图论 最短路相关的问题
1142 1162 1217 1301
二分图问题
1054 1068 1150 1151 1281
杭电ACM试题分类 枚举
1002 1004 1013 1015 1017 1020 1022 1029 1031 1033 1034 1035 1036 1037 1039 1042 1047 1048 1049 1050 1057 1062 1063 1064 1070 1073 1075 1082 1083 1084 1088 1106 1107 1113 1117 1119 1128 1129 1144 1148 1157 1161 1170 1172 1177 1197 1200 1201 1202 1205 1209 1212(大数取模) 1216(链表)1218 1219 1225 1228 1229 1230 1234 1235 1236 1237 1239 1250 1256 1259 1262 1263 1265 1266 1276 1279 1282 1283 1287 1296 1302 1303 1304 1305 1306 1309 1311 1314
2549、2550、2551、2552、2555、2560、2561、2562、2566、2567、 2568、2700、2710、
DP:1003、10240、1029、1069、1074、1087、1114、1159、1160、
1171、1176、1203、1231、1257、1260、1284、1421、1789、1978、 2059、2084、2159、2191、2544、2571、2602、2709、

杭州电子科技大学acm答案

杭州电子科技大学acm答案

杭州电子科技大学acm答案杭电2000~A+B for Input-Output Practice (VIII)Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 5573 Accepted Submission(s): 2058Problem DescriptionYour task is to calculate the sum of some integers.InputInput contains an integer N in the first line, and then N lines follow. Each line starts with a integer M, and then M integers follow in the same line.OutputFor each group of input integers you should output their sum in one line, and you must note that there is a blank line between outputs.Sample Input34 1 2 3 45 1 2 3 4 53 1 2 3Sample Output10156正确代码:#includeusing namespace std;int main(){int m,n,i,j,s,k;cin>>n;int c[1000];for(i=0;i<n;i++)< p="">{cin>>m;s=0;for(j=1;j<=m;j++){cin>>k;s+=k;}if(i==n-1){cout<<s<<endl;< p="">}else{cout<<s<<endl<<endl;< p="">}}return 0;}A+B ComingTime Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 902 Accepted Submission(s): 456Problem DescriptionMany classmates said to me that A+B is must needs. If youcan’t AC this problem, you would invite me for night meal. ^_^ InputInput may contain multiple test cases. Each case contains A and B in one line. A, B are hexadecimal number. Input terminates by EOF.OutputOutput A+B in decimal number in one line.Sample Input1 9A Ba bSample Output102121正确代码:#includeusing namespace std;int main(){int m,n,s;while(scanf("%x%x",&m,&n)!=EOF) //以十六进制输入{s=m+n;printf("%d\n",s); //以十进制输出,与上面}return 0;}此题的输入输出没有用cin>> 和cout<<,看到很多人说scanf和printf比较常用2001ASCII码排序Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) T otal Submission(s): 32853 Accepted Submission(s): 13545Problem Description输入三个字符后,按各字符的ASCII码从小到大的顺序输出这三个字符。

ACM入门十题(杭电oj)

ACM入门十题(杭电oj)

ACM入门(杭电oj)Hdu 1000#include<stdio.h>#include<stdlib.h>int main(){int a,b;while(scanf("%d%d",&a,&b)!=EOF){printf("%d\n",a+b);}}Hdu 1001#include<stdio.h>#include<stdlib.h>int main(){int n;while(scanf("%d",&n)!=EOF){printf("%I64d\n\n",(__int64)(1+n)*n/2); }}Hdu 1002#include<stdio.h>#include<string.h>#include<stdlib.h>char str1[1005],str2[10005];int main(){int ca,count=0;scanf("%d",&ca);while(ca--){scanf("%s%s",str1,str2);int a[1005],i,j;memset(a,0,sizeof(a));for(i=strlen(str1)-1,j=0;i>=0;i--,j++)a[j]=str1[i]-'0';for(i=strlen(str2)-1,j=0;i>=0;i--,j++){a[j]=a[j]+str2[i]-'0';a[j+1]=a[j+1]+a[j]/10;a[j]=a[j]%10;}count++;printf("Case %d:\n",count);printf("%s + %s = ",str1,str2); int flag=0;for(i=1004;i>=0;i--)if(flag||a[i]){printf("%d",a[i]);flag=1;}printf("\n");if(ca!=0) printf("\n");}}Hdu 1003#include<stdio.h>#include<stdlib.h>int a[100005],sum[100005];int main(){int ca,count=0;scanf("%d",&ca);while(ca--){int n,i;scanf("%d",&n);for(i=1;i<=n;i++)scanf("%d",&a[i]);sum[1]=a[1];int r=1,max=a[1];for(i=2;i<=n;i++){if(sum[i-1]>0){sum[i]=sum[i-1]+a[i];if(sum[i]>max){max=sum[i];r=i;}}else{sum[i]=a[i];if(sum[i]>max){max=sum[i];r=i;}}}count++;for(i=r-1;i>0;i--)if(sum[i]<0) break;printf("Case %d:\n",count);printf("%d %d %d\n",max,i+1,r); if(ca!=0) printf("\n");}}Hdu 1004#include<iostream>#include<algorithm>using namespace std;struct point{char c[50];}p[1005];int cmp(point p1,point p2){return strcmp(p1.c,p2.c)<0;}int main(){int n,i;while(scanf("%d",&n)!=EOF&&n) {for(i=0;i<n;i++)scanf("%s",p[i].c);sort(p,p+n,cmp);char res[100];strcpy(res,p[0].c);int num=1,ct=1;for(i=1;i<n;i++){if(strcmp(p[i].c,p[i-1].c)==0) num++; else num=1;if(num>ct){strcpy(res,p[i].c);ct=num;}}printf("%s\n",res);}}Hdu 1005#include<stdio.h>#include<stdlib.h>#include<string.h>int s[10][10],c[1000];int main(){c[1]=1;c[2]=1;int a,b,n;while(scanf("%d%d%d",&a,&b,&n)!=EOF){if(a==0&&b==0&&n==0) break;memset(s,0,sizeof(s));s[1][1]=1;int i;for(i=3;;i++){c[i]=(a*c[i-1]+ b*c[i-2])%7;if(s[c[i-1]][c[i]]!=0) break;s[c[i-1]][c[i]]=i-1;}/*for(int j=1;j<=i;j++)printf("%d ",c[j]);*/int m=s[c[i-1]][c[i]]-1;int len=i-1-s[c[i-1]][c[i]];//printf("%d %d\n",m,len);if(n<=m){printf("%d\n",c[n]);continue;}n=n-m;printf("%d\n",c[m+(n%len? n%len:len)]); }}Hdu 1008#include<stdio.h>#include<stdlib.h>int main(){int n;while(scanf("%d",&n)!=EOF&&n){int a,sum=0,st=0,m=n;while(n--){scanf("%d",&a);sum=sum+(a-st>0?(a-st)*6:(st-a)*4); st=a;}printf("%d\n",m*5+sum);}}Hdu 1012#include<stdio.h>int main(){printf("n e\n");printf("- -----------\n");printf("0 1\n");printf("1 2\n");printf("2 2.5\n");printf("3 2.666666667\n");printf("4 2.708333333\n");printf("5 2.716666667\n");printf("6 2.718055556\n");printf("7 2.718253968\n");printf("8 2.718278770\n");printf("9 2.718281526\n");}#include<stdlib.h>#include<string.h>#include<stdio.h>int main(){char s[1000];while(scanf("%s",s)!=EOF){if(strcmp(s,"0")==0) break;int i,t=0;for(i=0;i<strlen(s);i++)t=t+s[i]-'0';printf("%d\n",(t+8)%9+1);}}Hdu 1016#include<stdio.h>#include<string.h>inta[25]={2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61, 67,71,73};int num[25],flag[25],pri[100],n;void dsf(int x,int y){int i;if(y==n){if(pri[x+1]==1){for(i=1;i<n;i++)printf("%d ",num[i]);printf("%d\n",num[i]);}return;}for(i=2;i<=n;i++)if(flag[i]==0&&pri[x+i]==1){flag[i]=1;num[y+1]=i;dsf(i,y+1);flag[i]=0;}int main(){int ct=0,i;memset(pri,0,sizeof(pri));for(i=0;i<15;i++)pri[a[i]]=1;while(scanf("%d",&n)!=EOF){memset(flag,0,sizeof(flag)); printf("Case %d:\n",++ct);flag[1]=1;num[1]=1;dsf(1,1);printf("\n");}}。

杭电ACM博弈题合集

杭电ACM博弈题合集

hdu博弈,这些题都不难。

属于博弈简单题。

hdu1846巴什博弈,n%(m+1)==0先手必败。

#include <iostream>#include<cstdio>#include<cstring>#include<cstdlib>#include<cmath>using namespace std;int main(){int n,a,b;scanf("%d",&n);while(n--){scanf("%d%d",&a,&b);if(a%(b+1)==0)printf("second\n");else printf("first\n");}return 0;}hdu1847只要留下两类都是2的指数幂,就是必输状态,然后找规律,发现这两类的和为3的倍数。

即有下面的结论。

#include <iostream>#include<cstdio>#include<cmath>using namespace std;int main(){int n;while(scanf("%d",&n)!=EOF){if(n%3==0)printf("Cici\n");else printf("Kiki\n");}return 0;}hdu1848#include <iostream>#include<cstdio>#include<cmath>#include<cstring>using namespace std;#define N 1005int f[N];int sg[N];void fun(){int i;f[0]=1;f[1]=1;f[2]=2;for(i=3;;i++){f[i]=f[i-1]+f[i-2];if(f[i]>1000)break;}}int dfs(int v){int i;if(sg[v]!=-1)return sg[v];bool visit[N]={0};for(i=1;i<16;i++){if(v>=f[i]){int temp=dfs(v-f[i]);visit[temp]=1;}}for(i=0;visit[i];i++);return sg[v]=i;}int main(){fun();int m,n,p;while(scanf("%d%d%d",&m,&n,&p),m||n||p) {memset(sg,-1,sizeof(sg));int ans;ans=dfs(m)^dfs(n)^dfs(p);if(ans)printf("Fibo\n");else printf("Nacci\n");}return 0;}hdu1849裸的NIM博弈,直接异或即可。

杭电ACM博弈题合集

杭电ACM博弈题合集

杭电ACM博弈题合集hdu博弈,这些题都不难。

属于博弈简单题。

hdu1846巴什博弈,n%(m+1)==0先手必败。

#include#include#include#include#includeusing namespace std;int main(){int n,a,b;scanf("%d",&n);while(n--){scanf("%d%d",&a,&b);if(a%(b+1)==0)printf("second\n");else printf("first\n");}return 0;}hdu1847只要留下两类都是2的指数幂,就是必输状态,然后找规律,发现这两类的和为3的倍数。

即有下面的结论。

#include#include#includeusing namespace std;int main(){int n;while(scanf("%d",&n)!=EOF) {if(n%3==0)printf("Cici\n");else printf("Kiki\n");}return 0;}hdu1848#include#include#include#includeusing namespace std;#define N 1005int f[N];int sg[N];void fun(){int i;f[0]=1;f[1]=1;f[2]=2;for(i=3;;i++){f[i]=f[i-1]+f[i-2];if(f[i]>1000)break;}}int dfs(int v){int i;if(sg[v]!=-1)return sg[v];bool visit[N]={0};for(i=1;i<16;i++){if(v>=f[i]){int temp=dfs(v-f[i]);visit[temp]=1;}}for(i=0;visit[i];i++);return sg[v]=i;}int main(){fun();int m,n,p;while(scanf("%d%d%d",&m,&n,&p),m||n||p) { memset(sg,-1,sizeof(sg));int ans;ans=dfs(m)^dfs(n)^dfs(p);if(ans)printf("Fibo\n");else printf("Nacci\n");}return 0;}hdu1849裸的NIM博弈,直接异或即可。

杭电ACM丨与名校相抗衡,在国际上频频斩获大奖,有何秘诀?

杭电ACM丨与名校相抗衡,在国际上频频斩获大奖,有何秘诀?

杭电ACM丨与名校相抗衡,在国际上频频斩获大奖,有何秘诀?崔倍宁是黑龙江佳木斯人,身高1米84,标准的帅小伙。

这个一脸稚气的东北小鲜肉,现在是杭电自动化学院大一学生。

不久前,他应国内自动驾驶明星企业Momenta之邀,与一群来自清华、北大、浙大的精英学生,一起被挑中成为这家估值上百亿的独角兽公司的“火箭计划20人小组”。

“很难想象,一名省属重点大学的学生,在人工智能高科技公司眼中,可以与北清学生一起探讨最前沿的技术。

但我也不意外,ACM 让我坐上了直升机,在某些领域,可以与国内最优秀的学生同台竞技。

”崔贝宁告诉记者。

“打ACM,进杭电是首选之一”(崔倍宁:杭电大一学生,ACM亚洲区域赛金牌获得者,Momenta火箭计划实习生)崔倍宁高中是在佳木斯一中读的。

现在回想起来,他感到“整个高中基本是在做信奥(OI)题,很苦,但也很酷,当然成就感也是一般人难以体会到的”。

崔倍宁所在的佳木斯一中是黑龙江三所信奥强校之一。

高一时零基础的崔倍宁就因“难得的天赋”被教练看中,连续刷了两年信奥题,取得了信奥国决铜牌。

当时只要高考正常发挥,凭借自主招生上985名校十拿九稳。

但是高考发挥失常的小崔,没有圆成名校梦。

天性乐观的崔倍宁,很快调整心态,决定选择一所“打ACM氛围好”的大学。

众所周知,信奥(OI)是中国计算机协会主办的,主要考的是编程、算法,在高中阶段叫信奥,采取的是“一个人5个小时做3道难题”的考法。

基本上是同样的题目,到了大学阶段则叫ACM—ICPC,是由美国计算机协会主办的全球性程序设计竞赛,被誉为“大学里难度最高的学科竞赛之一”,采取的是“三个人组队5小时做10—13道题目”的考法,一般前十道题相对容易一些,后三道题超难,比信奥题都难。

高中阶段被推至神坛的信奥,到了大学阶段以ACM的面目,被更多的勇于挑战的学生所熟知拥抱。

“高中时信奥拿的是国决铜牌,其实有点不甘心,暗暗下了决心,上大学一定要至少拿个ACM亚洲区域赛金牌,如果能打入全球总决赛,就会很圆满了。

杭电OJ:1089----1096(c++)(ACM入门第一步:所有的输入输出格式)

杭电OJ:1089----1096(c++)(ACM入门第一步:所有的输入输出格式)

杭电OJ:1089----1096(c++)(ACM⼊门第⼀步:所有的输⼊输出格式)1089:输⼊输出练习的A + B(I)问题描述您的任务是计算a + b。

太容易了?!当然!我专门为ACM初学者设计了这个问题。

您⼀定已经发现某些问题与此标题具有相同的名称,是的,所有这些问题都是出于相同的⽬的⽽设计的。

输⼊项输⼊将由⼀系列由空格隔开的整数对a和b组成,每⾏⼀对整数。

输出量对于每对输⼊整数a和b,应该在⼀⾏中输出a和b的总和,并且在输⼊中每⾏输出⼀⾏。

样本输⼊1 5 10 20样本输出6 30题解:#include<cstdio>#include<iostream>using namespace std;int main(){int a, b,sum;while(cin >> a >> b){sum = a+b;cout << sum << endl;}return 0;}1090:投⼊产出练习的A + B(II)问题描述您的任务是计算a + b。

输⼊项输⼊的第⼀⾏包含⼀个整数N,然后是N⾏。

每⾏由⼀对整数a和b组成,每对之间⽤空格隔开,每⾏⼀对整数。

输出量对于每对输⼊整数a和b,应该在⼀⾏中输出a和b的总和,并且在输⼊中每⾏输出⼀⾏。

样本输⼊2 1 5 10 20样本输出6 30题解:#include<cstdio>#include<iostream>using namespace std;int a,b,n,sum;cin >> n;while (n){cin >> a >> b;sum = a + b;cout << sum << endl;n--;}return 0;}1091:投⼊产出练习的A + B(III)问题描述您的任务是计算a + b。

杭电acm题目水题英文题目、翻译及ac源代码

杭电acm题目水题英文题目、翻译及ac源代码

1040 As Easy As A+BTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 26015 Accepted Submission(s): 11054Problem DescriptionThese days, I am thinking about a question, how can I get a problem as easy as A+B? It is fairly difficulty to do such a thing. Of course, I got it after many waking nights.Give you some integers, your task is to sort these number ascending (升序).You should know how easy the problem is now!Good luck!InputInput contains multiple test cases. The first line of the input is a single integer T which is the number of test cases. T test cases follow. Each test case contains an integer N (1<=N<=1000 the number of integers to be sorted) and then N integers follow in the same line.It is guarantied that all integers are in the range of 32-int.OutputFor each case, print the sorting result, and one line one case.问题描述这些天来,我在思考一个问题,我怎样才能得到一个简单的问题,因为A + B?这是相当困难做这样的事情。

(完整word版)杭电ACM试题答案

(完整word版)杭电ACM试题答案

【杭电ACM1000】A +B ProblemProblem DescriptionCalculate A + B.InputEach line will contain two integers A and B. Process to end of file.OutputFor each case, output A + B in one line.Sample Input1 1Sample Output2# include <stdio.h>int main(){int a, b;while(scanf("%d%d", &a, &b)!=EOF)printf("%d\n", a+b);return 0;}【杭电ACM1001】Sum ProblemProblem DescriptionHey, welcome to HDOJ(Hangzhou Dianzi University Online Judge). In this problem, your task is to calculate SUM(n) = 1 + 2 + 3 + ... + n.InputThe input will consist of a series of integers n, one integer per line.OutputFor each case, output SUM(n) in one line, followed by a blank line. You may assume the result will be in the range of 32-bit signed integer.Sample Input1 100Sample Output1 5050# include <stdio.h>int main(){int n, i, sum = 0;while(scanf("%d", &n)!=EOF){for(i=1; i<=n; ++i)sum = sum + i;printf("%d\n\n", sum);sum = 0;}return 0;}【杭电ACM1002】A +B Problem IIProblem DescriptionI have a very simple problem for you. Given two integers A and B, your job is to calculate the Sum of A + B.InputThe first line of the input contains an integer T(1<=T<=20) which means the number of test cases. Then T lines follow, each line consists of two positive integers, A and B. Notice that the integers are very large, that means you should not process them by using 32-bit integer. You may assume the length of each integer will not exceed 1000.OutputFor each test case, you should output two lines. The first line is "Case #:", # means the number of the test case. The second line is the an equation "A + B = Sum", Sum means the result of A + B. Note there are some spaces int the equation. Output a blank line between two test cases.Sample Input2 1 2 112233445566778899 998877665544332211Sample OutputCase 1: 1 + 2 = 3 Case 2: 112233445566778899 + 998877665544332211 = 1111111111111111110#include<stdio.h>#include<string.h>int shu(char a){return (a-'0');}int main(){char a[1000],b[1000];int num[1001];int n,i,j=1,al,bl,k,t;scanf("%d",&n);while(n--){getchar();if(j!=1)printf("\n");scanf("%s",a);al=strlen(a);scanf("%s",b);bl=strlen(b);k=(al>bl)?al:bl;for(i=0;i<=k;i++)num[i]=0;t=k;for(k;al>0&&bl>0;k--){num[k]+=shu(a[--al])+shu(b[--bl]);if(num[k]/10){num[k-1]++;num[k]%=10;}}while(al>0){num[k--]+=shu(a[--al]);if(num[k+1]/10){num[k]++;num[k+1]%=10;}}while(bl>0){num[k--]+=shu(b[--bl]);if(num[k+1]/10){num[k]++;num[k+1]%=10;}}printf("Case %d:\n",j++);printf("%s + %s = ",a,b);for(i=0;i<=t;i++){if(i==0&&num[i]==0)i++;printf("%d",num[i]);}printf("\n");}return 0;}。

杭州电子科技大学ACM集训队资料集

杭州电子科技大学ACM集训队资料集

1, 3, 4, 7, 11, 18, 29, 47, 76, 123 , ...
三. Catalan Number
1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012, 742900, 2674440, 9694845, …
计算公式: C(2n, n) / (n + 1) 应用: 1. 将 n + 2 边形沿弦切割成 n 个三角形的不同切割数 2. n +1个数相乘,给每两个元素加上括号的不同方法数 eg: n = 2: (1 (2 3)) , ((1 2) 3) n = 3: (1 (2 (3 4))), (1 ((2 3) 4)) , ((1 2) (3 4)), ((1 (2 3)) 4), 3. the number of rooted, trivalent trees with n + 1 nodes
1, 2, 5, 15, 52, 203, 877, 4140, 21147, 115975,…
定义: N 元集合的所有划分数称为 Bell 数, 记做 Bn,根据第二类 Stirling 数的意义,我们可以很容易的得到:
Bn=sigma(S(n,k)) (k=1,2…n) // sigma 求和 六. 杨式图表的个数
s(n,m)
s(0,0) = 0, s(n,k)=0 (n<k) s(n,0) = 0, s(n,1)=1 s(n,2) = 2 的 n - 1 次方-1 s(n,n-1) =C(n,2); s(n,n)=1; s(n+1,m) = m*s(n-1,m)+s(n-1,m-1) (n>1,m>=1) 五. bell number (和 striling number 相似)

杭州电子科技大学acm习题集锦

杭州电子科技大学acm习题集锦

目录1、数塔问题 (2)2、并查集类问题 (4)3、递推类问题 (9)4、动态规划系列 (10)5、概率类题型 (13)6、组合数学类题型 (15)7、贪心策略 (16)8、几何问题 (19)数塔类问题数塔Problem Description在讲述DP算法的时候,一个经典的例子就是数塔问题,它是这样描述的:有如下所示的数塔,要求从顶层走到底层,若每一步只能走到相邻的结点,则经过的结点的数字之和最大是多少?已经告诉你了,这是个DP的题目,你能AC吗?Input输入数据首先包括一个整数C,表示测试实例的个数,每个测试实例的第一行是一个整数N(1 <= N <= 100),表示数塔的高度,接下来用N行数字表示数塔,其中第i行有个i个整数,且所有的整数均在区间[0,99]内。

Output对于每个测试实例,输出可能得到的最大和,每个实例的输出占一行。

Sample Input1573 88 1 02 7 4 44 5 2 6 5Sample Output 30#include<stdio.h>#include<string.h>#define MAX 101int arr[MAX][MAX][2];void res(){int n; int i,j;memset(arr,0,MAX*MAX*sizeof(int));scanf("%d",&n);for(i=0;i<n;i++) //输入数塔for(j=0;j<=i;j++) { scanf("%d",&arr[i][j][0]); arr[i][j][1]=arr[i][j][0]; }for(i=n-2;i>=0;i--){for(j=0;j<=i;j++){if(arr[i+1][j][1]>arr[i+1][j+1][1]) arr[i][j][1]+=arr[i+1][j][1];else arr[i][j][1]+=arr[i+1][j+1][1];}}printf("%d\n",arr[0][0][1]);}int main(){int num;scanf("%d",&num);while(num--) { res(); }return 0;}免费馅饼Problem Description都说天上不会掉馅饼,但有一天gameboy正走在回家的小径上,忽然天上掉下大把大把的馅饼。

杭州电子科技大学acm题目分类

杭州电子科技大学acm题目分类

杭州电子科技大学acm题目分类1002 简单的大数1003 DP经典问题,最大连续子段和1004 简单题1005 找规律(循环点)1006 感觉有点BT的题,我到现在还没过1007 经典问题,最近点对问题,用分治1008 简单题1009 贪心1010 搜索题,剪枝很关键10111012 简单题1013 简单题(有个小陷阱)1014 简单题1015 可以看作搜索题吧1016 经典的搜索1017 简单数学题1018 简单数学题1019 简单数学题1020 简单的字符串处理1021 找规律的数学题1022 数据结构的题(栈的应用)1023 特殊的数(Catalan Number)1024 经典DP,最大M子段和1025 经典DP,最长递增子序列(要用NLogN的方法过)1026 搜索1027 数学题(或用STL)1028 经典问题,整数拆分,用母函数做1029 简单题(一般方法容易超时)1030 简单题,可用模拟过1031 简单题1032 简单题1033 模拟题1034 Candy Sharing Game1035 模拟题1036 简单题1037 简单题,不是一般的简单1038 简单题1039 字符串处理1040 简单题,排序1041 简单题,用大数1042 大数1043 经典搜索题,八数码问题1044 稍微有点麻烦的搜索题1045 搜索题,可用匹配做1046 简单题1047 简单的大数1048 简单字符串处理1049 简单题1050 贪心1051 经典贪心,也可以用DP1052 贪心1053 贪心,关于Huffman编码1054 二分匹配1055 二分匹配1056 简单题1057 模拟题1058 经典问题,丑数,DP1059 经典问题,可以用母函数或DP(不针对题目优化都会超时)1060 数学题1061 数学题1062 简单字符串处理1063 模拟大数1064 简单题1065 简单题1066 数学题,找规律10671068 经典二分匹配1069 经典DP1070 简单题1071 简单数学题1072 搜索1073 字符串处理1074 DP1075 字典树1076 简单题10771078 DP1079 博弈(DP)1080 DP1081 经典DP1082 简单题1083 二分匹配1084 简单题1085 母函数1086 简单几何题1087 简单DP1088 字符串处理1089~1096 (练习输入输出的8个题目)1097 简单数学题1098 数学题,注意找规律1099 数学题模拟题, 枚举1002 1004 1013 1015 1017 1020 1022 1029 1031 1033 1034 1035 1036 1037 1039 1042 1047 1048 1049 1050 1057 1062 1063 1064 1070 1073 1075 1082 1083 1084 1088 1106 1107 1113 1117 1119 1128 1129 1144 1148 1157 1161 1170 1172 1177 1197 1200 1201 1202 1205 1209 1212(大数取模) 1216(链表)1218 1219 1225 1228 1229 1230 1234 1235 1236 1237 1239 12501256 1259 1262 1263 1265 1266 1276 1279 1282 1283 1287 1296 13021303 1304 1305 1306 1309 1311 1314复杂模拟搜索,递归求解1010 1016 1026 1043(双广) 1044 (BFS+DFS) 1045 1067 1072 1104 1175 1180 1195 1208 1226 1238 1240 1241 1242 1258 1271 1312 1317 博奕1079动态规划1003 1024 1025 1028 1051 1058 1059 1069 1074 1078 1080 1081 1085 1087 1114 1158 1159 1160 1171 1176 1181 1203 1224 1227 1231 1244 1248 1253 1254 1283 1300数学,递推,规律1005 1006 1012 1014 1018 1019 1021 1023 1027 1030 1032 1038 1041 1046 1059 1060 1061 1065 1066 1071(微积分) 1097 1098 1099 1100 1108 1110 1112 1124 1130 1131 1132 1134 1141 1143 1152 1155(物理题) 1163 1165 1178 1194 1196(lowbit) 1210 1214 1200 1221 1223 1249 1261 1267 1273 1290 1291 1292 1294 1297 1313 1316数论1164 1211 1215 1222 1286 1299计算几何1086 1115 1147贪心1009 1052 1055 1257并查集1198 1213 1232 1272线段树,离散化1199 1255图论最短路相关的问题1142 1162 1217 1301二分图问题1054 1068 1150 1151 1281其他1053 (huffman) 1102(MST) 1116(欧拉回路)1233(MST) 1269(强连通)数据结构1103(堆+模拟)1166(数状树组)1247 1251 1285(Topol)1298汉诺塔系列1207最近顶点对10071500 DP1501 DP1502 DP or 记忆化1503 DP1504 模拟1505 DP1506 DP1507 2分匹配1508 记忆化容易点1509 模拟1510 DP1511 搜索可以过1512 左偏树1513 DP1514 DP1515 DFS1516 DP1517 博奕1518 搜索1519 DP(不确定)1520 树状DP1521 数学题,母函数什么的。

杭州电子科技大学acm2篇

杭州电子科技大学acm2篇

杭州电子科技大学acm杭州电子科技大学ACM简介杭州电子科技大学ACM (Association for Computing Machinery) 团队是该校计算机科学与技术学院的一个重要学术组织。

ACM是全球最大的科技计算机组织之一,旨在促进计算机科学和信息技术的发展和应用,并为学生提供一个展示和发展他们在计算机科学方面技能的平台。

作为杭州电子科技大学ACM团队的成员,我们致力于在计算机科学领域中的学习和研究。

我们的团队成员都是对计算机科学充满热爱和追求卓越的学生。

我们定期组织各种学术活动,如讲座、研讨会和技术培训等,以提高团队成员的学术水平和技术能力。

同时,我们积极参与ACM国际大学生程序设计竞赛 (ACM International Collegiate Programming Contest),这是全球范围内最有影响力和最具挑战性的学生程序设计竞赛之一。

我们的团队成员经过长期的准备和培训,参加比赛并在各个赛区中取得了优异的成绩。

除了学术上的努力,杭州电子科技大学ACM团队也注重团队建设和社区服务。

我们定期组织团队活动,如户外拓展训练、团队旅行和志愿者活动等,以提高团队成员之间的合作精神和凝聚力。

我们也参与校内外的各种社区服务项目,为推动计算机科学的应用和发展做出贡献。

杭州电子科技大学ACM团队的目标是培养学生的计算机科学素养,提高他们在计算机科学领域的创新能力和解决问题的能力。

通过参与各种学术和竞赛活动,我们努力为团队成员提供一个广阔的平台,展示他们的才华和激情。

总之,杭州电子科技大学ACM团队是一个积极向上、充满活力的学术组织,致力于促进学生在计算机科学领域的学习和发展。

我们相信通过团队的努力和追求,我们能够在计算机科学领域取得更多的成就,并为社会发展做出贡献。

第二篇:杭州电子科技大学ACM竞赛成绩杭州电子科技大学ACM团队作为该校最具竞争实力的学术组织之一,一直在国内外的ACM竞赛中取得优异的成绩。

39.杭电ACM_1713_相遇周期(最大公约数处理)

39.杭电ACM_1713_相遇周期(最大公约数处理)

/*Problem Description2007年3月26日,在中俄两国元首的见证下,中国国家航天局局长孙来燕与俄罗斯联邦航天局局长别尔米诺夫共同签署了《中国国家航天局和俄罗斯联邦航天局关于联合探测火星-火卫一合作的协议》,确定中俄双方将于2009年联合对火星及其卫星“火卫一”进行探测。

而卫星是进行这些探测的重要工具,我们的问题是已知两颗卫星的运行周期,求它们的相遇周期。

Input输入数据的第一行为一个正整数T, 表示测试数据的组数. 然后是T组测试数据. 每组测试数据包含两组正整数,用空格隔开。

每组包含两个正整数,表示转n圈需要的天数(26501/6335,表示转26501圈要6335天),用'/'隔开。

Output对于每组测试数据, 输出它们的相遇周期,如果相遇周期是整数则用整数表示,否则用最简分数表示。

Sample Input226501/6335 18468/4229359/11479 15725/19170Sample Output81570078/75431415*/#include<iostream>using namespace std;int fun(int a1,int b1){int r;while(b1!=0){r=a1%b1;a1=b1;b1=r;}return a1;}int main(){int n;cin>>n;while(n--){char ch1,ch2;int a1,b1,a2,b2;cin>>a1>>ch1>>b1>>a2>>ch2>>b2;int a11=fun(a1,b1);a1=a1/a11;b1=b1/a11;int a22=fun(a2,b2);a2=a2/a22;b2=b2/a22;int reult1=a1*a2/fun(a1,a2);int reult2=fun(b1,b2);int reult=fun(reult1,reult2);reult1=reult1/reult;reult2=reult2/reult;if(reult2!=1)cout<<reult1<<"/"<<reult2<<endl;elsecout<<reult1<<endl;}return 0;}。

杭电ACM博弈题合集

杭电ACM博弈题合集

hdu博弈,这些题都不难。

属于博弈简单题。

hdu1846巴什博弈,n%(m+1)==0先手必败。

#include <iostream>#include<cstdio>#include<cstring>#include<cstdlib>#include<cmath>using namespace std;int main(){int n,a,b;scanf("%d",&n);while(n--){scanf("%d%d",&a,&b);if(a%(b+1)==0)printf("second\n");else printf("first\n");}return 0;}hdu1847只要留下两类都是2的指数幂,就是必输状态,然后找规律,发现这两类的和为3的倍数。

即有下面的结论。

#include <iostream>#include<cstdio>#include<cmath>using namespace std;int main(){int n;while(scanf("%d",&n)!=EOF){if(n%3==0)printf("Cici\n");else printf("Kiki\n");}return 0;}hdu1848#include <iostream>#include<cstdio>#include<cmath>#include<cstring>using namespace std;#define N 1005int f[N];int sg[N];void fun(){int i;f[0]=1;f[1]=1;f[2]=2;for(i=3;;i++){f[i]=f[i-1]+f[i-2];if(f[i]>1000)break;}}int dfs(int v){int i;if(sg[v]!=-1)return sg[v];bool visit[N]={0};for(i=1;i<16;i++){if(v>=f[i]){int temp=dfs(v-f[i]);visit[temp]=1;}}for(i=0;visit[i];i++);return sg[v]=i;}int main(){fun();int m,n,p;while(scanf("%d%d%d",&m,&n,&p),m||n||p) {memset(sg,-1,sizeof(sg));int ans;ans=dfs(m)^dfs(n)^dfs(p);if(ans)printf("Fibo\n");else printf("Nacci\n");}return 0;}hdu1849裸的NIM博弈,直接异或即可。

我的ACM入门指南

我的ACM入门指南

ACM/ICPC入门指南ACM简介:ACM:即国际大学生程序设计竞赛。

ACM国际大学生程序设计竞赛由国际计算机学界著名的ACM学会主办,是世界上规模最大、水平最高的国际大学生程序竞赛,每年举办一次。

可以说,ACM国际大学生程序设计竞赛已成为世界各国大学生最具影响力的国际级计算机类的赛事。

入门篇每个ACMer平时都是靠做题来训练的,现在就以杭州电子科技大学的OJ为例简单介绍一下如何使用OJ系统,在浏览器上输入杭电的网址首先,我们需要注册一个ID,点击Register new ID填写好自己的个人信息之后,点击submit,就可以完成注册了,然后在主页右上角的登陆框输入ID,密码便可以登陆,这个时候点击主页上的 Problem Archive 打开OJ的题库点击题号为 1000 的题目 A + B ProblemProblem Description 一栏写的就是题目的描述,很多初学者一开始对全英文的题目会很不习惯,这是很正常的,多查查字典,很快就可以习惯了,而且也可以提高自己的英语阅读水平、、、、、、、、Input 一栏写的是题目的输入要求,这里提示:每行将会有两个整数 A 和 B,输入进程一直延续到文件读完而结束(也就是要循环输入)Output 一栏写的是题目的输出要求,这里提示:对于每组数据,在一行中输入A+B的值接下来的 Sample Input 就是示例输入数据,而 Sample Output 就是相应的输出结果在读完题目之后,我们就可以在自己电脑上的编译器上编写代码,等编写好代码之后,点击页面中的Submit,接着把代码复制上去,再选择相应的语言完成之后点击Submit,就可以看到OJ系统对我们的程序的判题结果了这里返回了一个 Accepted,也就是说通过了OJ的判断,题目答对了!1000A +B Problem Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 158161 Accepted Submission(s): 50186 Problem Description Calculate A + B.Input Each line will contain two integers A and B. Process to end of file. Output For each case, output A + B in one line.Sample Input 1 1Sample Output 2Author HDOJStatistic | Submit | Discuss | Note#include<stdio.h>int main() {int a,b;while(scanf("%d %d",&a,&b)!=EOF)printf("%d\n",a+b);}而OJ可能会返回的结果总共有:Accepted 通过 Wrong Answer 错误 Compilation Error 编译错误Runtime Error 运行错误 Time Limit Exceeded 时间超出限制Presentation Error 输出格式错误 Memory Limit Exceeded 内存超出限制Output Limit Exceeded 输出了多余的东西OJ的使用基本上就是这样,十分的简单,想要成为一个强大的ACMer的话,赶紧多做题吧 ^_^,在这里同时推荐一些OJ给大家: 杭州电子科技大学的OJ,里面有很多简单的入门题,非常适合初学者/JudgeOnline 北京大学的OJ,是目前国内最具权威的OJ 官方的OJ,里面收录了历届亚洲地区赛和世界总决赛的题目/usacogate2美国信息学奥林匹克竞赛提高篇ACM比赛是涉及到很多算法的,大概包括图论、动态规划、计算几何、数论、搜索等等,如何提高自己相关的知识是十分关键的,当然前提是你首先必须得精通一门编程语言,一般ACM正规的比赛上可以选用的语言有C、C++和Java,但由于ACM比赛很看重时间空间等效率,所以大部分情况下Java是不占优势的,而80%以上的参赛选手使用的语言都是C++,因此在这里向大家推荐一本C++的经典书籍《C++ Primer》(第4版),里面详细地介绍了C++的各种语法和STL等知识,什么时候整本书看完了,理解了,你的C++才算达到基本的水平掌握好一门语言之后,就要开始系统地学习算法知识了,这里推荐《算法设计与分析基础》这本算法书设计的算法知识十分的全面,而且讲的知识比较基础,很容易就可以看懂,适合初学者,By the way,如果你是计算机学院的学生的话,学校会在大三(大四)教授算法课的时候发这本书下来。

杭电acm初学者课件

杭电acm初学者课件
单击此处添加小标题
1
上面的程序有什么问题?
单击此处添加小标题
2
*
*
本类输入解决方案:
C语法:
while(scanf("%d",&n) && n!=0 ) { .. }
01
C++语法:
while( cin >> n && n != 0 ) { .. }
02
*
*
输入_第四类:
以上几种情况的组合
1095源代码
#2022
*
*
解决办法:
{ . ut << ans << endl << endl; }
C++语法:
02
{ .. printf("%d\n\n",ans); }
C语法:
01
*
*
输出_第三类:
一个Input Block对应一个Output Block,Output Block之间有空行。 参见:HDOJ_1096
*
*
单击此处添加副标题
计算机学院 刘春英
ACM 程序设计
*
*
单击此处添加副标题
ACM入门
第一讲
*
*
单击此处添加副标题
202X
初识ACM
*
*
What is ACM ?
ACM (Association for Computing Machinery) 成立于计算机诞生次年,是目前计算机学界中历史最悠久、最具权威性的组织…
*
*
输入_第五类:
202X
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2012/5/9 LEEREVWARE HDUACM[键入文档副标题] | AdministratorMax Sum Plus Plus(1024)Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 9131 Accepted Submission(s): 2993Problem DescriptionNow I think you have got an AC in Ignatius.L's "Max Sum" problem. To be a brave ACMer, we always challenge ourselves to more difficult problems. Now you are faced with a more difficult problem.Given a consecutive number sequence S1, S2, S3, S4 ... S x, ... S n(1 ≤ x ≤ n ≤ 1,000,000, -32768 ≤ S x≤ 32767). We define a function sum(i, j) = S i + ... + S j(1 ≤ i ≤ j ≤ n).Now given an integer m (m > 0), your task is to find m pairs of i and j which make sum(i1, j1) + sum(i2, j2) + sum(i3, j3) + ... + sum(i m, j m) maximal (i x≤ i y≤ j x or i x≤ j y≤ j x is not allowed).But I`m lazy, I don't want to write a special-judge module, so you don't have to output m pairs of i and j, just output the maximal summation of sum(i x, j x)(1 ≤ x ≤ m) instead. ^_^InputEach test case will begin with two integers m and n, followed by n integers S1, S2, S3 ... S n. Process to the end of file.OutputOutput the maximal summation described above in one line.Sample Input1 3 12 32 6 -1 4 -23 -2 3N!(1042)Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 31255 Accepted Submission(s): 8631Problem DescriptionGiven an integer N(0 ≤ N ≤ 10000), your task is to calculate N!InputOne N in one line, process to the end of file.OutputFor each N, output N! in one line.Sample Input123Sample Output126#include <stdio.h>int main(){int i,j,n,u,arry;while(scanf("%d",&n)!=EOF){int a[10000]={1};u=0;for(i=1;i<=n;i++){arry=0;for(j=0;j<=u;j++){arry+=a[j]*i;a[j]=arry%10000;arry/=10000;}if(arry){u++;a[u]=arry;}}printf("%d",a[u]);for(i=u-1;i>=0;i--)printf("%04d",a[i]);printf("\n");}return 0;}Max Sum(1003)Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 75802 Accepted Submission(s): 17388Problem DescriptionGiven a sequence a[1],a[2],a[3]......a[n], your job is to calculate the max sum of a sub-sequence. For example, given (6,-1,5,4,-7), the max sum in this sequence is 6 + (-1) + 5 + 4 = 14.InputThe first line of the input contains an integer T(1<=T<=20) which means the number of test cases. Then T lines follow, each line starts with a number N(1<=N<=100000), then N integers followed(all the integers are between -1000 and 1000).OutputFor each test case, you should output two lines. The first line is "Case #:", # means the number of the test case. The second line contains three integers, the Max Sum in the sequence, the start position of the sub-sequence, the end position of the sub-sequence. If there are more than one result, output the first one. Output a blank line between two cases.Sample Input25 6 -1 5 4 -77 0 6 -1 1 -6 7 -5Sample OutputCase 1:14 1 4Case 2:7 1 6#include <stdio.h>int main(){//freopen("input.txt","r",stdin);//freopen("output.txt","w",stdout);int i,j,t,n,m,x1,x,y,max,a;scanf("%d",&t);for(i=1;i<=t;i++){scanf("%d",&n);m=0;x1=0;x=0;y=0;max=-1000;for(j=0;j<n;j++){scanf("%d",&a);if(m<0){m=a;x1=j;}elsem+=a;if(max<m){max=m;x=x1;y=j;}}printf("Case %d:\n%d %d %d\n",i,max,x+1,y+1);}return 0;}Let the Balloon Rise(1004)Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 40420 Accepted Submission(s): 14044Problem DescriptionContest time again! How excited it is to see balloons floating around. But to tell you a secret, the judges' favorite time is guessing the most popular problem. When the contest is over, they will count the balloons of each color and find the result.This year, they decide to leave this lovely job to you.InputInput contains multiple test cases. Each test case starts with a number N (0 < N <= 1000) -- the total number of balloons distributed. The next N lines contain one color each. The color of a balloon is a string of up to 15 lower-case letters.A test case with N = 0 terminates the input and this test case is not to be processed.OutputFor each case, print the color of balloon for the most popular problem on a single line. It is guaranteed that there is a unique solution for each test case.Sample Input5greenredblueredred3pinkorangepinkSample Outputredpink#include <stdio.h>#include<string.h>int main(){//freopen("input.txt","r",stdin);//freopen("output.txt","w",stdout);int i,j,k,n,l,max;char str[1000][15];while(scanf("%d",&n)!=EOF&&n){getchar();int a[1000]={0};char ch[1000][15]={""};for(i=0;i<n;i++)scanf("%s",str[i]);strcpy(ch[0],str[0]);j=0;a[0]=1;for(i=1;i<n;i++){l=0;for(k=0;k<=j;k++)if(strcmp(str[i],ch[k])==0){l=1;a[k]++;break;}if(l==0){j++;strcpy(ch[j],str[i]);a[j]++;}}max=0;for(i=0;i<=j;i++)if(max<a[i]){max=a[i];k=i;}printf("%s\n",ch[k]);}return 0; }Tick and Tick(1006)Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 4797 Accepted Submission(s): 1284Problem DescriptionThe three hands of the clock are rotating every second and meeting each other many times everyday. Finally, they get bored of this and each of them would like to stay away from the other two. A hand is happy if it is at least D degrees from any of the rest. You are to calculate how much time in a day that all the hands are happy.InputThe input contains many test cases. Each of them has a single line with a real number D between 0 and 120, inclusively. The input is terminated with a D of -1.OutputFor each D, print in a single line the percentage of time in a day that all of the hands are happy, accurate up to 3 decimal places.Sample Input12090-1Sample Output100.0000.0006.251严重超时(需改进算法)#include <stdio.h>double g(double a,double b){while(a>360)a-=360;while(b>360)b-=360;double min;if(a<b)min=(b-a<a-b+360?b-a:a-b+360);elsemin=(a-b<b-a+360?a-b:b-a+360);return min;}double f(double a,double b,double c){double min=g(a,b);min=(min<g(b,c)?min:g(b,c));min=(min<g(a,c)?min:g(a,c));return min;}int main(){//freopen("input.txt","r",stdin);//freopen("output.txt","w",stdout);double t,s,m,h,a,num;double p;while(scanf("%lf",&a)!=EOF&&a!=-1){num=0;for(t=0;t<43200;t+=0.01){s=t*6;m=t/10.0;h=t/120.0;if(f(s,m,h)>=a)num+=0.01;}p=num/432.0;printf("%.3lf\n",p);}return 0; }改进后#include <stdio.h>double g(double a,double b){double min;if(a<b)min=(b-a<a-b+360?b-a:a-b+360);elsemin=(a-b<b-a+360?a-b:b-a+360);return min;}double f(double a,double b,double c){double min=g(a,b);min=(min<g(b,c)?min:g(b,c));min=(min<g(a,c)?min:g(a,c));return min;}int main(){//freopen("input.txt","r",stdin);//freopen("output.txt","w",stdout);double t,s,m,h,a,num;double p;while(scanf("%lf",&a)!=EOF&&a!=-1){num=0;s=0;m=0;h=0;for(t=0;t<43200;t+=0.1,s+=0.6,m+=0.01,h+=0.000833333) {if(s>360)s-=360;if(m>360)m-=360;if(f(s,m,h)>=a)num+=0.1;}p=num/432.0;printf("%.3lf\n",p);}return 0;}钥匙计数之二(1480)Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 692 Accepted Submission(s): 419Problem Description一把钥匙有N个槽,2<N<26槽深为1,2,3,4,5,6。

相关文档
最新文档