2008浙大上机复试解题报告
2011-03-06 19:56
453 查看
更详细的解题报告请下载:http://download.csdn.net/source/3153210
包括2005-2011,有些题目有多种解法!
http://acm.hdu.edu.cn/showproblem.php?pid=1877
http://acm.hdu.edu.cn/showproblem.php?pid=1878
http://acm.hdu.edu.cn/showproblem.php?pid=1879
http://acm.hdu.edu.cn/showproblem.php?pid=1880
http://acm.hdu.edu.cn/showproblem.php?pid=1881
以上代码并不是最优,贴出来只为与广大研友交流!有需要提供个别题目具体思路的请留言!
包括2005-2011,有些题目有多种解法!
http://acm.hdu.edu.cn/showproblem.php?pid=1877
#include<stdio.h> int main() { unsigned int A,B; unsigned int M; unsigned int ans[50]; while(1) { scanf("%d",&M); if(M==0)break; scanf("%d %d",&A,&B); A=A+B; int ans_i=0; while(1) { if(A<M) { ans[++ans_i]=A; break; } else { ans[++ans_i]=A%M; A=A/M; } } int i; for(i=ans_i;i>=1;i--) printf("%d",ans[i]); printf("/n"); } return 0; }
http://acm.hdu.edu.cn/showproblem.php?pid=1878
#include<stdio.h> int Node[1005]; int r[1005][1005]; int p[1005]; int N,M; void init() { int i; for(i=1;i<=N;i++) p[i]=i; } int find(int a) { if(a==p[a])return a; else return find(p[a]); } void Union(int x,int y) { int a=find(x); int b=find(y); if(a!=b)p[a]=b; } int main() { int x,y; int i,j; while(1) { scanf("%d",&N); if(N==0)break; scanf("%d",&M); for(i=1;i<=N;i++) Node[i]=0; for(i=1;i<=N;i++) for(j=1;j<=N;j++) r[i][j]=0; init(); int T=N-1; for(i=1;i<=M;i++) { scanf("%d %d",&x,&y); if(find(x)!=find(y)) { Union(x,y); T--; } r[x][y]=1; Node[x]++; Node[y]++; } for(i=1;i<=N;i++) if(Node[i]%2!=0)break; if(i==N+1&&T==0)printf("1/n"); else printf("0/n"); } return 0; }
http://acm.hdu.edu.cn/showproblem.php?pid=1879
#include<stdio.h> #include<stdlib.h> int r[100][100]; struct E { int a,b; int dis; }e[10000]; int p[100]; int N; void init() { int i; for(i=1;i<=N;i++) { p[i]=i; } } int find(int a) { if(p[a]==a)return a; else return find(p[a]); } void Union(int x,int y) { int a=find(x); int b=find(y); if(a!=b)p[a]=b; } int cmp(const void *a,const void *b) { return (*(E *)a).dis-(*(E *)b).dis; } int main() { while(1) { scanf("%d",&N); if(N==0)break; int i; int flag; for(i=1;i<=N*(N-1)/2;i++) { scanf("%d %d %d %d",&e[i].a,&e[i].b,&e[i].dis,&flag); if(flag==1)e[i].dis=0; } qsort(e+1,N*(N-1)/2,sizeof(e[1]),cmp); int T=N-1; int e_i=1; int sum=0; init(); while(1) { if(find(e[e_i].a)!=find(e[e_i].b)) { sum+=e[e_i].dis; Union(e[e_i].a,e[e_i].b); T--; if(T==0)break; } ++e_i; } printf("%d/n",sum); } return 0; }
http://acm.hdu.edu.cn/showproblem.php?pid=1880
#include<stdio.h> #include<string.h> struct Ans { char A[30]; char B[90]; }ans[100005]; int main() { int K; char TA[30]; int ans_i=0; int i; while(1) { scanf("%s",TA); if(TA[0]=='@')break; strcpy(ans[++ans_i].A,TA); getchar(); gets(ans[ans_i].B); } scanf("%d",&K); getchar(); char T[100]; while(K--) { gets(T); if(T[0]=='[') { for(i=1;i<=ans_i;i++) { if(strcmp(ans[i].A,T)==0) { printf("%s/n",ans[i].B); break; } } if(i==ans_i+1)printf("what?/n"); } else { for(i=1;i<=ans_i;i++) { if(strcmp(ans[i].B,T)==0) { int len=strlen(ans[i].A); int j; for(j=1;j<len-1;j++) putchar(ans[i].A[j]); printf("/n"); break; } } if(i==ans_i+1)printf("what?/n"); } } return 0; }
http://acm.hdu.edu.cn/showproblem.php?pid=1881
#include<iostream> #include<algorithm> using namespace std; int N; int dp[40][10005]; struct Node { int hp,use,left; }node[40]; int mmax(int a,int b) { return a>b?a:b; } int cmp(const void *a,const void *b) { return (*(Node *)a).left-(*(Node *)b).left; } int main() { while(scanf("%d",&N)!=EOF&&N>0) { int i,j,k; for(i=0;i<N;i++) scanf("%d %d %d",&node[i].hp,&node[i].use,&node[i].left); qsort(node,N,sizeof(node[0]),cmp); memset(dp,0,sizeof(dp)); dp[0][node[0].use]=node[0].hp; int ans=0; for(i=1;i<N;i++) { for(j=0;j+node[i].use<=node[i].left;j++) { for(k=0;k<i;k++) { dp[i][j+node[i].use]=mmax(dp[k][j]+node[i].hp,dp[i][j+node[i].use]); ans=mmax(ans,dp[i][j+node[i].use]); } } } printf("%d/n",ans); } return 0; }
以上代码并不是最优,贴出来只为与广大研友交流!有需要提供个别题目具体思路的请留言!
相关文章推荐
- 2005浙大上机复试解题报告
- 2006浙大上机复试解题报告
- 2007浙大上机复试解题报告
- 2009浙大上机复试解题报告
- 2010浙大上机复试解题报告
- 北京邮电大学2011年网院方向复试上机题 解题报告
- 清华大学2002年复试上机题 第二套 解题报告
- 清华大学2009年复试上机题 解题报告
- 北京邮电大学2010年网院方向复试上机题 解题报告
- 清华大学2003年复试上机题 解题报告
- 清华大学2010年复试上机题 解题报告
- 清华大学 2000年研究生复试上机题 解题报告
- 清华大学2011年复试上机题 解题报告
- 北京航空航天大学 2012年复试上机题 解题报告
- 哈尔滨工业大学2009年复试上机题 解题报告
- 清华大学 2011年研究生复试上机题 解题报告
- 哈尔滨工业大学2010年复试上机题 解题报告
- 哈尔滨工业大学2011年复试上机题 解题报告
- 浙江大学2007年复试上机题 解题报告
- 清华大学2000年复试上机题 解题报告