湖南工业大学个人选拔赛第三场 解题报告(自己的)
2013-04-15 22:02
246 查看
水题不水,有很多做过的题目,但是还是出了很多错误,其中里面有几道题目,需要长整型,没有注意,然后里面有一两道题目需要判断素数,但是也没有注意,需要用素数打表的没有打表,不需要的却用了(水题不水的其中一道题目),总结:需要注意积累水题,但是绝对不是什么A+B,而是一些比较好的水题,要多训练
A -Probability
B -An easy problem
C -What day is it
D -Cuts the cake
E -Rolling table
F -Largest prime factor
G -circumgyrate the string
H -How many prime numbers
I -Calculate the formula
A -Probability
#include<stdio.h> #include<string.h> #include<ctype.h> int main() { int i,s,sum; double c; char a[2],b[201]; while(scanf("%s %s",a,b)!=EOF) { if(a[0]>='A'&&a[0]<='Z') a[0]=tolower(a[0]); s=strlen(b); sum=0; for(i=0;i<s;i++) { if(b[i]>='A'&&b[i]<='Z') b[i]=tolower(b[i]); if(b[i]==a[0]) sum++; } c=(double)sum/s; printf("%.5f\n",c); } }
B -An easy problem
// File Name: hut3b.cpp // Author: rudolf // Created Time: 2013年04月15日 星期一 18时59分35秒 #include<vector> #include<list> #include<map> #include<set> #include<deque> #include<stack> #include<bitset> #include<algorithm> #include<functional> #include<numeric> #include<utility> #include<sstream> #include<iostream> #include<iomanip> #include<cstdio> #include<cmath> #include<cstdlib> #include<cstring> #include<ctime> using namespace std; //const int maxn=100010; //int sum[maxn]; int main() { __int64 sum[100001]; __int64 n,i; sum[0]=0; for(i=1;i<=100000;i++) { if(i%3==0) sum[i]=sum[i-1]+i*i*i; else sum[i]=sum[i-1]+i; } while(scanf("%I64d",&n)!=EOF&&n>=0) { printf("%I64d\n",sum ); } return 0; }
C -What day is it
#include <stdio.h> int b[20] = {0,31,28,31,30,31,30,31,31,30,31,30,31,0}; int Y = 1, M = 1, D = 1; int leap(int y) { if(y%400 == 0 || (y%4 == 0 && y%100!=0)) return 1; return 0; } int main() { int y,m,d,i; while(~scanf("%d%d%d",&y,&m,&d)) { if(leap(y)) b[2] = 29; else b[2] = 28; if(d > b[m] || d < 1 || m < 1 || m > 12 || y <1 || y>10000) { printf("illegal\n"); continue; } int sum = 0; sum+=d; for(i = 0; i<m; i++) sum+=b[i]; sum%=7; for(i = 1; i<y; i++) { sum+=365; if(leap(i)) sum++; sum%=7; } int dx = sum%7; if(dx==0) printf("Sunday\n"); else if(dx == 1) printf("Monday\n"); else if(dx == 2) printf("Tuesday\n"); else if(dx == 3) printf("Wednesday\n"); else if(dx == 4) printf("Thursday\n"); else if(dx == 5) printf("Friday\n"); else if(dx == 6) printf("Saturday\n"); } return 0; }
D -Cuts the cake
// File Name: hut3d.cpp // Author: rudolf // Created Time: 2013年04月15日 星期一 20时53分55秒 #include<vector> #include<list> #include<map> #include<set> #include<deque> #include<stack> #include<bitset> #include<algorithm> #include<functional> #include<numeric> #include<utility> #include<sstream> #include<iostream> #include<iomanip> #include<cstdio> #include<cmath> #include<cstdlib> #include<cstring> #include<ctime> using namespace std; int main() { double r,r1,r2; while(~scanf("%lf",&r)) { if(r<=0.0) break; printf("%.3lf %.3lf\n",sqrt(r*r/3),sqrt(r*r*2/3)); } return 0; }
E -Rolling table
// File Name: hut3e.cpp // Author: rudolf // Created Time: 2013年04月15日 星期一 21时24分15秒 #include<iostream> #include<stdio.h> using namespace std; char a[12][12]; int main() { int n,m,i,j,N=0; while(scanf("%d%d",&n,&m)!=EOF) { getchar(); N=m%4; for(i=0;i<n;i++) { for(j=0;j<n;j++) scanf("%c",&a[i][j]); getchar(); } if(N==0) { for(i=0;i<n;i++) { for(j=0;j<n;j++) printf("%c",a[i][j]); printf("\n"); } } else if((N==1)||(N==-3)) { for(i=0;i<n;i++) { for(j=n-1;j>=0;j--) printf("%c",a[j][i]); printf("\n"); } } else if((N==2)||(N==-2)) { for(i=n-1;i>=0;i--) { for(j=n-1;j>=0;j--) printf("%c",a[i][j]); printf("\n"); } } else if((N==-1)||(N==3)) { for(i=n-1;i>=0;i--) { for(j=0;j<n;j++) printf("%c",a[j][i]); printf("\n"); } } } return 0; }
F -Largest prime factor
// File Name: hut3f.cpp // Author: rudolf // Created Time: 2013年04月15日 星期一 20时25分15秒 #include <stdio.h> #include <string.h> #include <algorithm> #include <utility> #include <queue> #define MAX 1000000 using namespace std; int lpf[MAX]; int main(){ int n,cnt,i,j; memset(lpf,0,sizeof(lpf)); lpf[2]=1; for(i=4;i<MAX;i+=2) lpf[i]=lpf[2]; cnt=2; for(i=3;i<MAX;i+=2){ if(lpf[i]) continue; lpf[i]=cnt++; for(j=(i<<1);j<MAX;j+=i) lpf[j]=lpf[i]; } while(~scanf("%d",&n)) printf("%d\n",lpf ); return 0; }
G -circumgyrate the string
// File Name: hut3g.cpp // Author: rudolf // Created Time: 2013年04月15日 星期一 20时04分08秒 #include <stdio.h> #include <string.h> int main() { char str[100]; int len,i,n,j; while(~scanf("%s%d",str,&n)) { if(n>=8) { n = n%8; } else if(n<0) { n = n%8; n = n+8; n = n%8; } len = strlen(str); if(n == 0) puts(str); else if(n == 1) { for(i = len-1; i>=0; i--) { for(j = 0; j<len; j++) { if(j == i) { printf("%c\n",str[j]); break; } else printf(" "); } } } else if(n == 2) { for(i = len-1; i>=0; i--) { for(j = 0; j<=len/2; j++) { if(j == len/2) { printf("%c\n",str[i]); break; } else printf(" "); } } } else if(n == 3) { for(i = 0; i<len; i++) { for(j = 0; j<len; j++) { if(j == i) { printf("%c\n",str[len-1-i]); break; } else printf(" "); } } } else if(n == 4) { for(i = len-1; i>=0; i--) { putchar(str[i]); } printf("\n"); } else if(n == 5) { for(i = 0; i<len; i++) { for(j = len-1; j>=0; j--) { if(j == i) { printf("%c\n",str[i]); break; } else printf(" "); } } } else if(n == 6) { for(i = 0; i<len; i++) { for(j = 0; j<=len/2; j++) { if(j == len/2) { printf("%c\n",str[i]); break; } else printf(" "); } } } else if(n == 7) { for(i = 0; i<len; i++) { for(j = 0; j<len; j++) { if(j == i) { printf("%c\n",str[i]); break; } else printf(" "); } } } } return 0; }
H -How many prime numbers
// File Name: hut3h.cpp // Author: rudolf // Created Time: 2013年04月15日 星期一 19时35分36秒 #include<iostream> #include<math.h> #include<stdio.h> using namespace std; #define N 100000000 int main() { int n,b,sum,flag,i; while(scanf("%d",&n)!=EOF) { sum=0; while(n--) { scanf("%d",&b); flag=0; for(i=2;i<=sqrt(b*1.0);i++) if(b%i==0) {flag=1;break;} if(!flag) sum++; } printf("%d\n",sum); } return 0; }
I -Calculate the formula
// File Name: hut3i.cpp // Author: rudolf // Created Time: 2013年04月15日 星期一 19时13分59秒 #include<vector> #include<list> #include<map> #include<set> #include<deque> #include<stack> #include<bitset> #include<algorithm> #include<functional> #include<numeric> #include<utility> #include<sstream> #include<iostream> #include<iomanip> #include<cstdio> #include<cmath> #include<cstdlib> #include<cstring> #include<ctime> using namespace std; const int maxn=100010; __int64 sum[maxn]; int main() { int n; sum[1]=0; for(int i=1;i<=maxn;i+=2) { sum[i]+=sum[i-2]+i*i; // cout<<sum[i]<<endl; } while(scanf("%d",&n)!=EOF) { printf("%I64d\n",sum ); } return 0; }
相关文章推荐
- 湖南工业大学个人选拔赛第三场 解题报告(自己的)
- 湖南工业大学个人选拔赛第三场 解题报告
- 湖南工业大学个人选拔赛第三场 解题报告
- 湖南工业大学个人选拔赛第一场 解题报告
- 湖南工业大学个人选拔赛第二场 解题报告
- 湖南工业大学个人选拔赛第一场 解题报告
- 湖南工业大学个人选拔赛第一场 解题报告
- (非本校)湖南工业大学个人选拔赛第一场 解题报告
- (非本校)湖南工业大学个人选拔赛第一场 解题报告
- 湖南工业大学个人选拔赛第二场 解题报告
- 湖南工业大学个人选拔赛第二场 解题报告
- 湖南工业大学个人选拔赛第二场 解题报告
- 湖南工业大学个人选拔赛第一场 解题报告
- 个人选拔赛第三场 解题代码
- HDU/杭电2013多校第三场解题报告
- 130730第三场多校解题报告
- 暑假集训第四场选拔赛 解题报告
- 【HDU1686】Oulipo 思路+解题报告+代码+KMP算法个人理解 【0.5%达成】
- FJ三校联盟个人赛(师农工商)#1解题报告
- 【九度】2014年王道论坛研究生机试练习赛第三场解题报告