北大acm 3710
2017年北大数学科学学院考研拟录取名单公示 -新祥旭5名学员考上
公示时间为 2017 年 3 月 30 日至 2017 年 4 月 13 日,如有异议请联系:邮箱 zixun@. 电话:010-62759855.
录
取序
考 生 编号 姓
号名
100017000010022 李星一 1
100017000017016 蔡少剛 38
100017000016001 菅乾道 39
40 100017000016002 李财进
应用统计硕士 应用统计硕士 应用统计硕士 应用统计硕士 应用统计硕士 应用统计硕士 基础数学 基础数学 金融硕士 金融硕士 金融硕士 应用统计硕士 应用统计硕士 应用统计硕士 应用统计硕士 应用统计硕士 应用统计硕士 应用数学
2.9
87.99
5
100017000010311 刘壮苏
6
100017000010028 马金灵
7
100017000010300 文习聪
8
100017000010407 朱兆鸿
9
100017000010274 赵贤承
100017000010455 郭彤斌 10
100017000010035 王志浩 11
86.50
留学 生
86.00
留学 生
85.50
留学 生
89.00
留学 生
80.00
留学 生
80.00
留学 生
78.00
留学 生
70.00
留学 生
94.00
留学 生
88.00
留学 生
100017000010281 王文成 24
100017000010275 李晴 25
2015北京大学数院信号与信息处理专业考研初试成绩录取名单
姓名 邓傲 杨恒龙 孙先冬 李纪黎 刘彧 洪佳鹏 梁诚鑫 周玉 靳红响 王垚韡 张琪 王振堂
外语
政治
专业课一 专业课二 总分
68
58
148
141
415
71
70
117
119
377
60
63
103
108
334
58
66
120
117
361
61
55
107
125
348
66
66
101
100
333
54
64
137
132
364
——始于 2005,中国考研专业课权威机构
复试考生报到程序:
1、请报考计算数学专业,信息专业的考生于 3 月 19 日,基础数学,金融学和应用统计专业的考生于 3 月 20 日(上午 8:30-11:30,下午 1:30-4:30)持“身 份证”和“准考证”到北京大学理科一号楼 1295E 室找袁老师报到,缴纳复试费(100 元/人),进行资格审查。 2、提交本人报名材料(材料如下)并领取复试通知书后准时参加复试。
金融学硕士
学术型硕士
政治 50 50 55
外语 50 50 55
专业课 1 专业课 2
90
90
90
90
100
100
总分 370 355 330
备注
金融数学 与精算学 方向
根据此复试分数线,复试名单如下:
考生编号 100015015010205 100015015010082 100015015010214 100015015010090 100015015010091 100015015010254 100015015010036 100015015010141 100015015010148 100015015010158 100015015010159 100015015010162
2014北京大学研究生通信学院录取名单
信息科学技术学院2014年全国硕士研究生入学考试初取名单公示发布时间:2014-3-31 13:14:00 作者:yjsjw 浏览量:2611 【字体:大中小】北京大学信息科学技术学院2014年全国硕士研究生入学考试初取名单现在开始公示,公示期为10个工作日,公示期内如有异议,请与eecsgrs@ 或62757487联系。
初取名单:序号准考证号姓名录取专业笔试总成绩面试成绩总成绩英语听力备注1 14480145 黄斌电磁场与微波技术374 85.0 80.80 0.92 14480147 钱程电路与系统378 88.0 83.60 1.83 14480180 李胜电子科学与技术(量子电子学)376 91.0 85.10 2.04 14040027 周叶电子科学与技术(量子电子学)372 90.0 84.80 2.65 14480316 周扬计算机科学与技术(智能科学与技术)376 92.0 86.00 2.46 14480326 黄智超计算机科学与技术(智能科学与技术)379 86.5 82.05 0.97 14480321 关清文计算机科学与技术(智能科学与技术)358 87.0 81.10 1.88 14480333 刘硕计算机科学与技术(智能科学与技术)326 92.0 80.00 1.49 14480119 王欣计算机科学与技术(智能科学与技术)340 87.5 79.45 1.710 14480112 刘丹萌计算机科学与技术(智能科学与技术)351 86.0 79.30 1.211 14480221 李紫烨计算机科学与技术(智能科学与技术)333 87.0 78.70 1.912 14480276 刘天林计算机科学与技术(智能科学与技术)337 87.0 78.50 1.313 14480352 李海腾计算机软件与理论90.0 90.00 留学生14 14480069 杨小东计算机软件与理论373 90.0 84.70 2.415 14480136 齐龙晨计算机软件与理论395 85.0 84.10 2.1 强军计划16 14480225 杜睿桓计算机软件与理论375 89.0 83.50 1.517 14480046 李杨珂计算机软件与理论360 90.0 83.40 2.418 14480033 代彬丁计算机软件与理论366 90.0 83.10 1.519 14480062 王虎计算机软件与理论354 90.0 82.80 2.420 14480268 杨祖洋计算机软件与理论370 88.0 82.80 1.821 14480040 何天健计算机软件与理论380 86.0 82.50 1.522 14480229 周鲁东计算机软件与理论368 85.0 81.70 2.423 14480256 林凤绿计算机软件与理论345 90.0 80.50 1.024 14480271 王小宁计算机软件与理论356 85.0 80.20 2.125 14480041 胡文翔计算机软件与理论350 85.0 79.80 2.326 14480244 杨恺计算机软件与理论338 85.0 78.10 1.827 14480137 陈宇辉计算机软件与理论309 76.2 69.90 0.9 强军计划28 14480053 孟佳计算机系统结构330 90.0 79.40 1.429 14480092 王轲计算机应用技术363 83.6 79.20 1.130 14480233 高晓旸计算机应用技术343 81.2 77.60 2.731 14480240 王钊计算机应用技术359 78.4 76.60 1.532 14480295 赵鑫计算机应用技术347 75.6 73.30 0.833 14480139 武聚凡计算机应用技术291 79.8 71.00 2.0 强军计划34 14480138 李晨计算机应用技术261 77.2 65.90 1.2 强军计划35 14480188 牛学军通信与信息系统391 95.0 88.20 1.636 14480201 彭啸锋通信与信息系统343 93.0 83.20 2.437 14480003 黄一鸣微电子学与固体电子学412 91.0 89.20 2.538 14480011 周正微电子学与固体电子学390 87.0 84.10 1.639 14480152 曲佳萌微电子学与固体电子学387 88.0 83.40 0.740 14480167 李睿微电子学与固体电子学377 82.0 80.90 2.241 14480129 田啸微电子学与固体电子学335 75.0 72.10 1.1 强军计划42 14480159 赵至真物理电子学360 95.0 85.30 1.843 14480189 朱天枢信号与信息处理343 93.0 83.50 2.744 14480205 史亚博信号与信息处理332 92.0 80.50 1.3北京大学信息科学技术学院2014年3月31日。
北京大学信息科学技术学院考研复试安排和复试名单
14480256
林凤 绿
14480299
张建 国
14480145 黄斌
14480276
刘天 林
14480295
赵鑫
14480147 钱程
14480053
孟佳
14480137
陈宇 辉
14480194 黄哲康 14480228 苏静 14480138 李晨
14480188 牛学军
14480277
唐浩
14480139
14480229
周鲁 东
14480351
許志 維
14480191 陈子豪
14480046
李杨 珂
14480136
齐龙 晨
14480316 周扬
14480156 张欢
14480221
李紫 烨
14480092
王轲
14480159 赵至真
14480249
栗亚 博
14480096
徐丽
14480348
WANPING
武聚 凡
14480201 彭啸锋 14480062 王虎 14480142 张雨
专注中国名校保(考)研考博辅导权威
专注中国名校保(考)研考博辅导权威
14480323
贾志 宾
专注中国名校保(考)研考博辅导权威
14480173 孟伟
14480225
杜睿 桓
14480069
杨小 东
14480112
刘丹 萌
14480152 曲佳萌
14480233
高晓 旸
14480268
杨祖 洋
14480333 刘硕
14480011 周正
2.考生应对提交全部报考材料的真实性和准确性负责。对于申报虚假或不准确的材料及 其它违反考试纪律的行为,我校将取消其复试资格;如已取得入学资格或学籍,我校将按教 育部《国家教育考试违规处理办法》取消其入学资格或学籍。
ACM入门题(北大oj)
1000#include<stdio.h>int main(){int a,b,c;while(scanf("%d%d",&a,&b)!=EOF){c=a+b;printf("%d\n",c);}}1067#include<stdio.h>#include<math.h>#include<stdlib.h>int main(){int a,b;while(scanf("%d%d",&a,&b)!=EOF){if(a>b){int t=a;a=b;b=t;}int k=b-a;int a0=(int)(k*(1+sqrt(5.0))/2);if(a0==a) printf("0\n");else printf("1\n");}}1080#include<stdio.h>#include<stdlib.h>int a[5][5]={5,-1,-2,-1,-3,-1,5,-3,-2,-4,-2,-3,5,-2,-2,-1,-2,-2,5,-1,-3,-4,-2,-1,0};int main(){int ca;scanf("%d",&ca);while(ca--){int n,m,i,j,max[105][105],b[105],d[105];char s[105],c[105];scanf("%d%s",&n,s);scanf("%d%s",&m,c);for(i=1;i<=n;i++){if(s[i-1]=='A') b[i]=0;if(s[i-1]=='C') b[i]=1;if(s[i-1]=='G') b[i]=2;if(s[i-1]=='T') b[i]=3;}for(i=1;i<=m;i++){if(c[i-1]=='A') d[i]=0;if(c[i-1]=='C') d[i]=1;if(c[i-1]=='G') d[i]=2;if(c[i-1]=='T') d[i]=3;}max[0][0]=0;for(i=1;i<=n;i++)max[i][0]=max[i-1][0]+a[b[i]][4];for(i=1;i<=m;i++)max[0][i]=max[0][i-1]+a[4][d[i]];for(i=1;i<=n;i++)for(j=1;j<=m;j++){max[i][j]=max[i-1][j-1]+a[b[i]][d[j]];if(max[i-1][j]+a[b[i]][4]>max[i][j])max[i][j]=max[i-1][j]+a[b[i]][4];if(max[i][j-1]+a[4][d[j]]>max[i][j])max[i][j]=max[i][j-1]+a[4][d[j]];}printf("%d\n",max[n][m]);}}1013#include<stdio.h>#include<algorithm>#include<math.h>#include<stdlib.h>#define PI 3.141592653using namespace std;struct point{double x;double y;}p[30005],res[30005];int cmp(point p1,point p2){return p1.y<p2.y||(p1.y==p2.y&&p1.x<p2.x);}bool ral(point p1,point p2,point p3){if((p2.x-p1.x)*(p3.y-p1.y)<=(p2.y-p1.y)*(p3.x-p1.x)) return true;return false;}double dis(point p1,point p2){return sqrt((p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y));}int main(){int n,m;while(scanf("%d%d",&n,&m)!=EOF){int i,j;for(i=0;i<n;i++)scanf("%lf%lf",&p[i].x,&p[i].y);sort(p,p+n,cmp);res[0]=p[0];res[1]=p[1];int top=1;for(i=2;i<n;i++){while(top&&ral(res[top-1],res[top],p[i]))top--;res[++top]=p[i];}int len=top;res[++top]=p[n-2];for(i=n-3;i>=0;i--){while(top!=len&&ral(res[top-1],res[top],p[i]))top--;res[++top]=p[i];}double t=0;for(i=0;i<top;i++)t=t+dis(res[i],res[i+1]);printf("%.lf\n",t+2*PI*m);}}1149#include<iostream>#include<cstring>using namespace std;#define inf 0x5fffffffint a[105][105],f[1005],ct[1005],pre[205],n,m,q[105]; int bfs(){int flow=inf,qh=0,qe=1,i;memset(pre,-1,sizeof(pre));q[1]=0;pre[0]=-1;while(qh<qe){int t=q[++qh];for(i=1;i<=n+1;i++)if(pre[i]==-1&&a[t][i]>0){pre[i]=t;if(a[t][i]<flow) flow=a[t][i];if(i==n+1) return flow;q[++qe]=i;}}return -1;}void maxflow(){int res=0,ans,t;while((ans=bfs())!=-1){res=res+ans;t=n+1;while(t)a[pre[t]][t]-=ans;a[t][pre[t]]+=ans;t=pre[t];}}printf("%d\n",res);}int main(){while(scanf("%d%d",&m,&n)!=EOF){memset(f,-1,sizeof(f));memset(a,0,sizeof(a));int i,j,k,t;for(i=1;i<=m;i++)scanf("%d",&ct[i]);for(i=1;i<=n;i++){scanf("%d",&k);for(j=1;j<=k;j++){scanf("%d",&t);if(f[t]!=-1) a[f[t]][i]=inf;else a[0][i]=a[0][i]+ct[t];f[t]=i;}scanf("%d",&k);a[i][n+1]=k;}maxflow();}}1157#include<stdio.h>#include<stdlib.h>int a[105][105],b[105][105];int main(){int max(int x,int y);int n,m;while(scanf("%d%d",&n,&m)!=EOF){for(i=1;i<=n;i++)for(j=1;j<=m;j++)scanf("%d",&a[i][j]);b[1][1]=a[1][1];for(i=2;i<=m-n+1;i++){if(a[1][i]<b[1][i-1]) b[1][i]=b[1][i-1];else b[1][i]=a[1][i];}for(i=2;i<=n;i++)for(j=i;j<=i+m-n;j++){a[i][j]=a[i][j]+b[i-1][j-1];if(i==j) b[i][j]=a[i][j];else{if(a[i][j]>b[i][j-1]) b[i][j]=a[i][j];else b[i][j]=b[i][j-1];}}printf("%d\n",b[n][m]);}}1200#include<stdio.h>#include<string.h>bool flag[20000000];int a[300];char s[20000000];int main(){int n,m;while(scanf("%d%d",&n,&m)!=EOF){memset(flag,0,sizeof(flag));scanf("%s",s);int i,j=0,len=strlen(s);memset(a,0,sizeof(a));for(i=0;i<len;i++)a[s[i]]=1;for(i=0;i<256;i++)if(a[i]==1) a[i]=j++;int mod=1,res=0;for(i=0;i<n-1;i++)mod=mod*m;for(i=0;i<n;i++)res=res*m+a[s[i]];flag[res]=1;for(i=n;i<len;i++){res=res%mod*m+a[s[i]];flag[res]=1;}int count=0;mod=mod*m;for(i=0;i<=mod;i++)if(flag[i]==1) count++;printf("%d\n",count);}}1207#include<stdio.h>#include<stdlib.h>int main(){int b,c,i,j,max=0,k,t,r;while(scanf("%d%d",&b,&c)!=EOF){if(b>c){t=b;r=c;}else{t=c;r=b;}max=0;for(i=r;i<=t;i++){j=1;k=i;while(k!=1){j++;if(k%2==0) k=k/2;else k=3*k+1;}if(j>max) max=j;}printf("%d %d %d\n",b,c,max);}//system("pause");}1273#include<iostream>#include<cstring>#include<queue>using namespace std;#define inf INT_MAXint n,m,a[205][205],pre[205],lev[205],num[205]; void bfs(){queue<int>Q;memset(lev,-1,sizeof(lev));memset(num,0,sizeof(num));Q.push(n);lev[n]=0;num[0]=1;while(!Q.empty()){int t=Q.front(),i;Q.pop();for(i=1;i<=n;i++)if(lev[i]==-1&&a[i][t]>0){lev[i]=lev[t]+1;num[lev[i]]++;Q.push(i);}}}int maxflow(){int flow=0,i,ans,cur=1;bfs();while(lev[cur]<n){if(cur==n){ans=inf;while(cur!=1){if(a[pre[cur]][cur]<ans) ans=a[pre[cur]][cur];cur=pre[cur];}cur=n;while(cur!=1){a[pre[cur]][cur]-=ans;a[cur][pre[cur]]+=ans;cur=pre[cur];}flow=flow+ans;}for(i=1;i<=n;i++)if(a[cur][i]>0&&lev[cur]==lev[i]+1){pre[i]=cur;cur=i;break;}if(i>n){lev[cur]=n+1;num[lev[cur]]--;if(num[lev[cur]]==0) break;for(i=1;i<=n;i++)if(a[cur][i]>0&&lev[i]+1<lev[cur]) lev[cur]=lev[i]+1;num[lev[cur]]++;if(cur!=1) cur=pre[cur];}}return flow;}int main(){while(scanf("%d%d",&m,&n)!=EOF){int i,j;memset(a,0,sizeof(a));for(i=0;i<m;i++){int b,c,d;scanf("%d%d%d",&b,&c,&d);a[b][c]+=d;}printf("%d\n",maxflow());}}1285#include<stdio.h>#include<string.h>int num[55];unsigned __int64 f[55][55];int main(){int n,m,ct=0;while(scanf("%d%d",&n,&m)!=EOF){if(n==0&&m==0) break;int i,j,a,k;memset(num,0,sizeof(num));for(i=0;i<n;i++){scanf("%d",&a);num[a]++;}memset(f,0,sizeof(f));f[0][0]=1;for(i=0;i<50;i++)for(j=0;j<=50;j++)for(k=0;k<=num[i+1];k++)f[i+1][j+k]=f[i+1][j+k]+f[i][j];printf("Case %d:\n",++ct);for(i=0;i<m;i++){scanf("%d",&a);printf("%I64d\n",f[50][a]);}}}1364#include <iostream>#include <queue>#include <cstring>using namespace std;int v[105],pre[105],w[105],h[105],flag[105],ct[105],d[105],n,m,num; void add(int a,int b,int c){v[num]=b;pre[num]=h[a];w[num]=c;h[a]=num++;}bool spfa(){int i;queue<int> Q;for(i=0;i<=n;i++){Q.push(i);flag[i]=1;d[i]=0;}while(!Q.empty()){int t=Q.front();Q.pop();flag[t]=0;for(i=h[t];i>=0;i=pre[i]){int p=v[i];if(d[t]+w[i]<d[p]){d[p]=d[t]+w[i];ct[p]++;if(flag[p]==0){Q.push(p);flag[p]=1;}}if(ct[p]>n) return false;}}return true;}int main(){while(cin>>n){if(n==0) break;cin>>m;int a,b,c;char s[3];num=0;memset(flag,0,sizeof(flag));memset(ct,0,sizeof(ct));memset(h,-1,sizeof(h));for(int i=1;i<=m;i++){cin>>a>>b>>s>>c;if(strcmp(s,"gt")==0) add(a-1,a+b,-1-c);else add(a+b,a-1,c-1);}if(spfa()) cout<<"lamentable kingdom"<<endl;else cout<<"successful conspiracy"<<endl;}return 0;}1384#include<stdio.h>#include<stdlib.h>int b[10005],a[600][2];int main(){int ca;scanf("%d",&ca);while(ca--){int M1,M2,M,n,i,j,value;scanf("%d%d",&M1,&M2);M=M2-M1;scanf("%d",&n);for(i=0;i<n;i++)scanf("%d%d",&a[i][0],&a[i][1]);for(i=0;i<=M;i++)b[i]=-1;b[0]=0;for(i=0;i<n;i++)for(j=0;j+a[i][1]<=M;j++)if(b[j]!=-1){value=b[j]+a[i][0];if(value<b[j+a[i][1]]||b[j+a[i][1]]==-1)b[a[i][1]+j]=value;}if(b[M]==-1) printf("This is impossible.\n");elseprintf("The minimum amount of money in the piggy-bank is %d.\n",b[M]);}}1473#include<stdio.h>#include<math.h>#include<stdlib.h>#include<string.h>int main(){char S[300],c[300][100];int count1=0;while(scanf("%s",S)!=EOF){if(strcmp(S,"END")==0) break;int len=strlen(S),i,count=0,j=0,d;for(i=0;i<len;i++){if(S[i]!=','&&S[i]!='.'){c[count][j]=S[i];j++;}else{c[count][j]='\0';j=0;count++;}}int nw=0,ne=0,sw=0,se=0,n=0,s=0,e=0,w=0;for(i=0;i<count;i++){char cc[10];sscanf(c[i],"%[0-9]",cc);sscanf(cc,"%d",&d);if(strlen(c[i])==strlen(cc)+1){if(c[i][strlen(cc)]=='N') n+=d;if(c[i][strlen(cc)]=='S') s+=d;if(c[i][strlen(cc)]=='E') e+=d;if(c[i][strlen(cc)]=='W') w+=d;}if(strlen(c[i])==strlen(cc)+2){if(c[i][strlen(cc)]=='N'&&c[i][strlen(cc)+1]=='W')nw+=d;if(c[i][strlen(cc)]=='N'&&c[i][strlen(cc)+1]=='E') ne+=d;if(c[i][strlen(cc)]=='S'&&c[i][strlen(cc)+1]=='W') sw+=d;if(c[i][strlen(cc)]=='S'&&c[i][strlen(cc)+1]=='E') se+=d;}}double x=e-w+((ne+se-nw-sw)*sqrt(2))/2;double y=n-s+((nw+ne-sw-se)*sqrt(2))/2;double ss=sqrt(x*x+y*y);count1++;printf("Map #%d\n",count1);printf("The treasure is located at (%.3lf,%.3lf).\n",x,y);printf("The distance to the treasure is %.3lf.\n",ss);printf("\n");}}1505#include<stdio.h>#include<string.h>#include<stdlib.h>int a[510],s[510],t[505][505],num[505],flag[505];int ma(int x,int y){if(x<y) return y;return x;}int main(){int ca;scanf("%d",&ca);while(ca--){int n,m,i,j,k,res;scanf("%d%d",&n,&m);for(i=1;i<=n;i++)scanf("%d",&a[i]);s[0]=0;for(i=1;i<=n;i++)s[i]=s[i-1]+a[i];for(i=1;i<n;i++)t[1][i]=s[i];memset(flag,0,sizeof(flag));for(i=2;i<m;i++)for(j=i;j<n;j++){res=1000000000;for(k=i-1;k<=j-1;k++)if(res>ma(t[i-1][k],s[j]-s[k])) res=ma(t[i-1][k],s[j]-s[k]);t[i][j]=res;}res=s[n];for(i=m-1;i<n;i++)if(ma(t[m-1][i],s[n]-s[i])<res) res=ma(t[m-1][i],s[n]-s[i]);num[0]=n;for(i=1;i<m;i++){int ti=0;for(j=num[i-1];j>m-i;j--){ti=ti+a[j];if(ti>res) break;}num[i]=j;flag[j]=1;}for(i=1;i<n;i++){if(flag[i]==0) printf("%d ",a[i]);else printf("%d / ",a[i]);}printf("%d\n",a[i]);}}1511#include<iostream>#include<cstring>#include<cstdio>#include<queue>#define inf 2000000000using namespace std;int ct,pre[1000005],len[1000005],v[1000005],h[1000005],n,m,vis[1000005],l[1000005]; int a[1000005],b[1000005],c[1000005];queue<int> Q;void add(int a,int b,int c){pre[ct]=h[a];len[ct]=c;v[ct]=b;h[a]=ct++;}void spfa(){int i;memset(vis,0,sizeof(vis));Q.push(1);vis[1]=1;for(i=1;i<=n;i++)l[i]=inf;l[1]=0;while(!Q.empty()){int t=Q.front();for(i=h[t];i!=-1;i=pre[i])if(l[t]+len[i]<l[v[i]]){l[v[i]]=l[t]+len[i];if(vis[v[i]]==0){vis[v[i]]=1;Q.push(v[i]);}}Q.pop();vis[t]=0;}}int main(){int ca;scanf("%d",&ca);while(ca--){scanf("%d%d",&n,&m);int i,j;__int64 res=0;ct=0;memset(h,-1,sizeof(h));for(i=0;i<m;i++){scanf("%d%d%d",&a[i],&b[i],&c[i]);add(a[i],b[i],c[i]);}spfa();for(i=2;i<=n;i++)res=res+l[i];ct=0;memset(h,-1,sizeof(h));for(i=0;i<m;i++)add(b[i],a[i],c[i]);spfa();for(i=2;i<=n;i++)res=res+l[i];printf("%I64d\n",res);}}1609#include<stdio.h>#include<stdlib.h>int a[105][105];int main(){int n;while(scanf("%d",&n)!=EOF){if(n==0){printf("*\n");break;}int i,j;for(i=0;i<101;i++)for(j=0;j<101;j++)a[i][j]=0;for(i=0;i<n;i++){int m,k;scanf("%d%d",&m,&k);a[m][k]=a[m][k]+1;}for(i=1;i<101;i++)for(j=1;j<101;j++)if(i*j!=1){if(a[i][j-1]>=a[i-1][j])a[i][j]=a[i][j]+a[i][j-1];elsea[i][j]=a[i][j]+a[i-1][j];}printf("%d\n",a[100][100]);}}1611#include<iostream>using namespace std;int f[30005],cont[30005];int findf(int a){if(f[a]!=a) f[a]=findf(f[a]);return f[a];}void com(int a,int b){int x=findf(a);int y=findf(b);if(x==y) return;if(cont[x]<=cont[y]){f[x]=y;cont[y]=cont[x]+cont[y];}else{f[y]=x;cont[x]=cont[x]+cont[y];}}int main(){int m,n;while(scanf("%d%d",&n,&m)!=EOF&&n){int num,st,i,j,ed;for(i=0;i<n;i++){f[i]=i;cont[i]=1;}for(i=0;i<m;i++){scanf("%d%d",&num,&st);for(j=1;j<num;j++){scanf("%d",&ed);com(st,ed);}}printf("%d\n",cont[findf(0)]);}}1651#include<stdio.h>#include<stdlib.h>long a[105],i,s[105][105],j,t,k;int main(){int n;while(scanf("%d",&n)!=EOF){for(i=0;i<n;i++)scanf("%ld",&a[i]);for(i=0;i<n-1;i++)s[i][i+1]=0;for(j=2;j<n;j++)for(i=0;i+j<n;i++){t=100000000;for(k=i+1;k<i+j;k++)if(s[i][k]+s[k][i+j]+a[i]*a[k]*a[i+j]<t)t=s[i][k]+s[k][i+j]+a[i]*a[k]*a[i+j];s[i][i+j]=t;}printf("%ld\n",s[0][n-1]);}}1753#include<iostream>using namespace std;int t[]={19,39,78,140,305,626,1252,2248,4880,10016,20032,35968,12544,29184,58368,51200}; #define SIZE 65535int BFS(int state){int visited[SIZE],d[SIZE],u,v,i;int Qu[SIZE],rear,front;memset(visited,0,sizeof(visited));visited[state]=1;d[state]=0;rear=front=0;Qu[++rear]=state;while(rear!=front){u=Qu[++front];for(i=0;i<16;++i) {v=u^t[i];if(v==0 || v==65535) return d[u]+1;if(visited[v]==0){visited[v]=1;d[v]=d[u]+1;Qu[++rear]=v;}visited[u]=-1;}return -1;}int main(){char ch[5][5];int i,j,start;start=0;for(i=0;i<4;++i)scanf("%s",ch[i]);for(i=0;i<4;++i)for(j=0;j<4;++j)if(ch[i][j]=='b') start^=(1<<((3-i)*4+(3-j)));if(start==0||start==65535) printf("0\n");else{int result=BFS(start);if(result==-1) printf("Impossible\n");else printf("%d\n",result);}}1797#include<stdio.h>#include<string.h>int a[1005][1005],vis[1005],len[1005];int mm(int a,int b){return a<b?a:b;}int main(){int ca,ct=0;scanf("%d",&ca);while(ca--){int n,m;scanf("%d%d",&n,&m);int i,j;memset(a,0,sizeof(a));for(i=1;i<=m;i++)int r,t,l;scanf("%d%d%d",&r,&t,&l);a[r][t]=l;a[t][r]=l;}memset(vis,0,sizeof(vis));for(i=2;i<=n;i++)len[i]=a[1][i];vis[1]=1;for(i=1;i<n;i++){int mmax=0,k;for(j=2;j<=n;j++)if(vis[j]==0&&len[j]>mmax){mmax=len[j];k=j;}vis[k]=1;if(k==n) break;for(j=2;j<=n;j++)if(vis[j]==0){int length=mm(len[k],a[k][j]);if(length>len[j]) len[j]=length;}}printf("Scenario #%d:\n%d\n\n",++ct,len[n]);}}1845#include<iostream>#include<cstring>using namespace std;#define mod 9901__int64 pri[7505],a[100],num[100];void prime(){memset(pri,0,sizeof(pri));int i,j;for(i=2;i<=90;i++)for(j=2;i*j<=7500;j++)j=0;for(i=2;i<=7500;i++)if(pri[i]==0) pri[j++]=i;}__int64 yu(__int64 a,__int64 b){__int64 res=1,c=mod;while(b){if(b%2==0){a=(a%c)*(a%c)%c;b=b/2;}else{res=res*a%c;b--;}}return res;}__int64 f(__int64 a,__int64 b){if(b==0) return 1;if(b==1) return (1+a)%mod;if(b%2==0) return (yu(a,b/2)+(1+yu(a,b/2+1))*f(a,b/2-1))%mod;return ((1+yu(a,b/2+1))*f(a,b/2))%mod;}int main(){prime();int n,m;while(scanf("%d%d",&n,&m)!=EOF){int i,j=0;if(n==0){printf("1\n");continue;}for(i=0;pri[i]*pri[i]<=n;i++)if(n%pri[i]==0){int t=0;while(n%pri[i]==0){t++;n=n/pri[i];}a[j]=pri[i];num[j++]=t;}if(n!=1){a[j]=n;num[j++]=1;}__int64 res=1;for(i=0;i<j;i++)res=res*f(a[i],num[i]*m)%mod;printf("%I64d\n",res);}}1941#include<stdio.h>#include<string.h>int h[22],s[22];char c[1025][2050],ss[1025][2050];void solve(int m){int i,j;if(m==1){h[m]=4;s[m]=2;c[1][1]=' ';c[1][4]=' ';c[1][2]='/';c[1][3]='\\';c[2][1]='/';c[2][2]='_';c[2][3]='_';c[2][4]='\\';memcpy(ss,c,sizeof(c));}if(m!=1){memset(c,' ',sizeof(c));solve(m-1);h[m]=h[m-1]*2;s[m]=s[m-1]*2;for(i=s[m-1]+1;i<=s[m];i++)for(j=1;j<=h[m-1];j++)c[i][j]=c[i][j+h[m-1]]=ss[i-s[m-1]][j];for(i=1;i<=s[m-1];i++)for(j=h[m-1]/2*3;j>h[m-1]/2;j--){c[i][j]=ss[i][j-h[m-1]/2];c[i][j-h[m-1]/2]=' ';}memcpy(ss,c,sizeof(c));}}int main(){int n,i,j,k;h[0]=2;solve(10);while(scanf("%d",&n)!=EOF&&n){for(i=1;i<=s[n];i++){for(j=h[9]-h[n]/2+1;j<=h[9]+i;j++)printf("%c",c[i][j]);printf("\n");}printf("\n");}}1947#include<iostream>#include<algorithm>using namespace std;#define big 10000000int num[155],flag[155],son[155][155],step[155][155],n,m,root; void dsf(int v)int i,j,k;if(v!=root) step[v][1]=num[v]+1;else step[v][1]=num[v];for(i=0;i<num[v];i++){dsf(son[v][i]);for(j=m-1;j>=1;j--)if(step[v][j]<big){for(k=1;k+j<=m;k++)step[v][k+j]=min(step[v][k+j],step[v][j]+step[son[v][i]][k]-2);}}}int main(){while(scanf("%d%d",&n,&m)!=EOF){memset(num,0,sizeof(num));memset(flag,0,sizeof(flag));int i,a,b,j;for(i=1;i<n;i++){scanf("%d%d",&a,&b);flag[b]=1;son[a][num[a]++]=b;}for(i=1;i<=150;i++)for(j=1;j<=150;j++)step[i][j]=big;for(i=1;i<=n;i++)if(flag[i]==0){root=i;dsf(i);break;}int res=big;for(i=1;i<=n;i++)if(step[i][m]<res) res=step[i][m];printf("%d\n",res);}}1964#include<stdio.h>#include<string.h>char s[1005][1005][2];int a[1005][1005],pre[1005],next[1005];int main(){int ca;scanf("%d",&ca);while(ca--){int n,m,i,j,k,res=0;scanf("%d%d",&n,&m);for(i=0;i<n;i++)for(j=0;j<m;j++)scanf("%s",s[i][j]);for(i=0;i<m;i++)if(strcmp(s[0][i],"F")==0) a[0][i]=1;else a[0][i]=0;for(i=1;i<n;i++)for(j=0;j<m;j++)if(strcmp(s[i][j],"F")==0) a[i][j]=a[i-1][j]+1;else a[i][j]=0;for(i=0;i<n;i++){memset(pre,-1,sizeof(pre));for(j=1;j<m;j++)for(k=j-1;k!=-1;k=pre[k])if(a[i][k]<a[i][j]){pre[j]=k;break;}for(j=0;j<m;j++)next[j]=m;for(j=m-2;j>=0;j--)for(k=j+1;k!=m;k=next[k])if(a[i][k]<a[i][j]){next[j]=k;break;}for(j=0;j<m;j++)if((next[j]-pre[j]-1)*a[i][j]>res) res=(next[j]-pre[j]-1)*a[i][j];}printf("%d\n",res*3);}}。
acm试题及答案python
acm试题及答案pythonACM试题及答案(Python)1. 问题描述:给定一个整数数组,请编写一个Python函数,找出数组中第二大的数。
2. 输入格式:一个包含整数的列表。
3. 输出格式:一个整数,表示数组中第二大的数。
4. 示例:- 输入:[10, 5, 8, 20, 15]- 输出:155. 答案:```pythondef find_second_max(nums):first_max = float('-inf')second_max = float('-inf')for num in nums:if num > first_max:second_max = first_maxfirst_max = numelif num > second_max and num != first_max:second_max = numreturn second_max if second_max != float('-inf') else None# 示例测试nums = [10, 5, 8, 20, 15]print(find_second_max(nums)) # 输出应为15```6. 分析:此题要求找出数组中第二大的数。
我们可以通过遍历数组,使用两个变量分别记录当前找到的最大值和第二大值。
在遍历过程中,如果当前元素比第一大的元素大,则更新第二大的元素为当前第一大的元素,并将当前元素设为第一大的元素。
如果当前元素小于第一大的元素但大于第二大的元素,则更新第二大的元素。
最后返回第二大的元素。
7. 注意:如果数组中只有一个元素或所有元素都相等,则返回`None`。
北大ACM题型
3.C[i,j]=w[i,j]+opt{C[i,k-1]+C[k,j]}.(最优二分检索树问题)
六.数学
(1)组合数学:
1.加法原理和乘法原理.
2.排列组合.
3.递推关系. (POJ3252,poj1850,poj1019,poj1942)
(2)数论.
1.素数与整除问题
(2)扫描线算法(例如求矩形的面积和周长并,常和线段树或堆一起使用). (poj1765,poj1177,poj1151,poj3277,poj2280,poj3004)
(3)多边形的内核(半平面交)(poj3130,poj3335)
(4)几何工具的综合应用.(poj1819,poj1066,poj2043,poj3227,poj2165,poj3429)
(2)记录状态的动态规划. (POJ3254,poj2411,poj1185)
(3)树型动态规划(poj2057,poj1947,poj2486,poj3140)
六.数学
(1)组合数学:
1.容斥原理.
2.抽屉原理.
3.置换群与Polya定理(poj1286,poj2409,poj3270,poj1026).
五.动态规划
(1)需要用数据结构优化的动态规划. (poj2754,poj3378,poj3017)
(2)四边形不等式理论.
(3)较难的状态DP(poj3133)
六.数学
(1)组合数学.
1.MoBius反演(poj2888,poj2154)
2.偏序关系理论.
(2)博奕论.
----------------------------------------------------------------------------------------------- -----------------------------------补充 Dp状态设计与方程总结
北京大学ACM国际大学生程序设计竞赛课件3
Problem
Conqueror's batalion
Table of Contents
The problem Solution
The problem
CENTRAL EUROPEAN OLYMPIAD IN INFORMATICS
30 June – 6 July 2002 Day 1: conquer Conqueror's battalion Time limit: 1 s Memory limit: 16 MB
The problem
If at least one of your soldiers reaches the uppermost stair, you will be the winner, in the other case, you will be the loser.
The problem
The problem
In case the game ends (either because you won or there are no more soldiers in the game), the library will terminate your program correctly. Your program may not terminate in any other way.
The problem
For each stair, you are given the number of soldiers standing on it, with number 1 being the uppermost stair and N the bottom one. None of your soldiers stands on stair 1 at the beginning.
北京大学ACM暑期课讲义-深搜之寻路问题
解题思路
从城市 1开始深度优先遍历整个图,找到所有能到达 N 的走法, 选一个最优的。 优化: 1) 如果当前已经找到的最优路径长度为L ,那么在继续搜索的过程中,总长度已经大 于L的走法,就可以直接放弃,不用走到底了 2) 用midL[k][m] 表示:走到城市k时总过路费为m的条件下,最优路径的长度。若在 后续的搜索中,再次走到k时,如果总路费恰好为m,且此时的路径长度已经超过 midL[k][m],则不必再走下去了。
8
totalLen += cityMap[s][i].L; totalCost += cityMap[s][i].t; minL[d][cost] = totalLen; visited[d] = 1; Dfs(d); visited[d] = 0; totalCost -= cityMap[s][i].t; totalLen -= cityMap[s][i].L; } } }
2
ROADS (POJ1724)
N个城市,编号1到N。城市间有R条单向道路。
每条道路连接两个城市,有长度和过路费两个属性。
Bob只有K块钱,他想从城市1走到城市N。问最短共需要走多长的路。如果到不了N,输
出-1
输入:
2<=N<=100 0<=K<=10000 1<=R<=10000 每条路的长度 L, 1 <= L <= 100 每条路的过路费T , 0 <= T <= 100
7
void Dfs(int s) //从 s开始向N行走 {
if( s == N ) { minLen = min(minLen,totalLen); return ;
} for( int i = 0 ;i < cityMap[s].size(); ++i ) {
POJ分类
POJ上一些题目在http://162.105.81.202/course/problemSolving/可以找到解题报告。
《算法艺术与信息学竞赛》的习题提示在网上可搜到一.动态规划参考资料:刘汝佳《算法艺术与信息学竞赛》《算法导论》推荐题目:/JudgeOnline/problem?id=1141简单/JudgeOnline/problem?id=2288中等,经典TSP问题/JudgeOnline/problem?id=2411中等,状态压缩DP/JudgeOnline/problem?id=1112中等/JudgeOnline/problem?id=1848中等,树形DP。
可参考《算法艺术与信息学竞赛》动态规划一节的树状模型/show_problem.php?pid=1234中等,《算法艺术与信息学竞赛》中的习题/JudgeOnline/problem?id=1947中等,《算法艺术与信息学竞赛》中的习题/JudgeOnline/problem?id=1946中等,《算法艺术与信息学竞赛》中的习题/JudgeOnline/problem?id=1737中等,递推/JudgeOnline/problem?id=1821中等,需要减少冗余计算/show_problem.php?pid=2561中等,四边形不等式的简单应用/JudgeOnline/problem?id=1038较难,状态压缩DP,《算法艺术与信息学竞赛》中有解答/JudgeOnline/problem?id=1390较难,《算法艺术与信息学竞赛》中有解答/JudgeOnline/problem?id=3017较难,需要配合数据结构优化(我的题目^_^)/JudgeOnline/problem?id=1682较难,写起来比较麻烦/JudgeOnline/problem?id=2047较难/JudgeOnline/problem?id=2152难,树形DP/JudgeOnline/problem?id=3028难,状态压缩DP,题目很有意思/JudgeOnline/problem?id=3124难/JudgeOnline/problem?id=2915非常难二.搜索参考资料:刘汝佳《算法艺术与信息学竞赛》推荐题目:/JudgeOnline/problem?id=1011简单,深搜入门题/JudgeOnline/problem?id=1324中等,广搜/JudgeOnline/problem?id=2044中等,广搜/JudgeOnline/problem?id=2286较难,广搜/JudgeOnline/problem?id=1945难,IDA*,迭代加深搜索,需要较好的启发函数/JudgeOnline/problem?id=2449难,可重复K最短路,A*。
ACM中的数学问题
Stein算法
另一种算法:Stein算法 渐近时间,空间复杂度均与欧几里德算法 相同 原理:gcd(ka,kb)=k*gcd(a,b) 最大特点:只有移位和加减法计算,避免了 大整数的取模运算
Stein算法
Stein算法(假设0<=b<a): r←0 while b>0 do if a偶,b偶 then a←a>>1 b←b>>1 r←r+1 else if a ,b then a a>>1 a偶,b奇 a←a>>1 else if a奇,b偶 then b←b>>1 else if a奇,b奇 then a←(a-b)>>1 if a<b then 交换a,b return a<<r
整除的性质
性质5 a=kb±c => a,b的公因数与b,c的 公因数完全相同 利用性质3(a|b,a|c => a|kb±lc)证明: 3(a|b,a|c a|kb lc) : 对于任意的a,b的公因数d a=kb±c => c=±(a-kb) => d|c
最大公约数 最小公倍数
求最大公约数:欧几里德算法(辗转相除 法,短除法) 原理:若a≡r(mod b),则 gcd(a,b)=gcd(b,r) 可利用性质5(a=kb±c => a,b的公因数与 b,c的公因数完全相同)证明 最小公倍数:lcm(a,b)=a*b/gcd(a,b)
欧拉定理
若a和m互质,则aφ(m)≡1(mod m) 证明:
设φ(m)个正整数r1,r2,...,rφ(m)满足:ri与m互质,对于 任意i≠j,ri≠rj(mod m) 由于a与m互质,可以证明ar1,ar2,...,arφ(m)依然满足 上述条件 这样就有(ar1)(ar2)...(arφ(m) ) ≡r1r2...rφ(m)(mod m) 而(ar1)(ar2)...(arφ(m) ) ≡aφ(m) r1r2...rφ(m)(mod m) 两边同时约去r1r2...rφ(m)即得到欧拉定理
acm-icpc暑期课_最短路
acm-icpc暑期课_最短路北京⼤学暑期课《ACM/ICPC 竞赛训练》最短路算法本讲义为四处抄袭后改编⽽成,来源已不可考。
仅⽤于内部授课北京⼤学信息学院郭炜 guo_wei@/doc/d83c4f84bb68a98270fefa4a.html/doc/d83c4f84bb68a98270fefa4a.html /guoweiofpkuDijkstra 算法●解决⽆负权边的带权有向图或⽆向图的单源最短路问题●贪⼼思想,若离源点s 前k-1近的点已经被确定,构成点集P ,那么从s 到离s 第k 近的点t 的最短路径,{s,p 1,p 2…p i ,t}满⾜s,p 1,p 2…p i ∈P 。
●否则假设pi ?P ,则因为边权⾮负,pi 到t 的路径≥0,则d[pi]≤d[t],pi 才是第k 近。
将pi 看作t ,重复上⾯过程,最终⼀定会有找不到pi 的情况●d[i]=min(d[p i ]+cost(p i ,i)),i ?P,p i ∈P d[t]=min(d[i]) ,i ?P基本思想●初始令d[s]=0,d[i]=+∞,P=?●找到点i?P,且d[i]最⼩●把i添⼊P,对于任意j?P,若d[i]+cost(i,j)d[j]=d[i]+cost(i,j)。
●⽤邻接表,不优化,时间复杂度O(V2+E)●Dijkstra+堆的时间复杂度 o(ElgV)●⽤斐波那契堆可以做到O(VlogV+E)●若要输出路径,则设置prev数组记录每个节点的前趋点,在d[i]更新时更新prev[i]4 23 150200200 100080005000v Dist[v]0 01234 50100001000300025025082505250源点0加⼊P后:Dijkstra's AlgorithmDijkstra 算法也适⽤于⽆向图。
但不适⽤于有负权边的图。
231-234d[1,2] = 2但⽤Dijkstra 算法求得 d[1,2] = 3有N个孩⼦(N<=3000)分糖果。
acm模拟试题及答案
acm模拟试题及答案ACM模拟试题及答案1. 问题描述:给定一个整数数组,请找出数组中第二大的数。
2. 输入格式:第一行包含一个整数N,表示数组的元素个数。
第二行包含N个整数,表示数组的元素。
3. 输出格式:输出数组中第二大的数。
4. 样例输入:53 14 1 55. 样例输出:46. 问题分析:要解决这个问题,我们首先需要对数组进行排序,然后找到第二大的数。
但是,为了提高效率,我们可以使用一次遍历的方法来找到最大的两个数。
7. 算法步骤:- 初始化两个变量,分别用来存储最大值和第二大的值。
- 遍历数组中的每个元素:- 如果当前元素大于最大值,则更新第二大的值等于当前最大值,然后更新最大值为当前元素。
- 如果当前元素小于最大值但大于第二大的值,则更新第二大的值为当前元素。
- 遍历结束后,第二大的值变量即为所求。
8. 代码实现:```pythonn = int(input())nums = list(map(int, input().split()))max_val = float('-inf')second_max_val = float('-inf')for num in nums:if num > max_val:second_max_val = max_valmax_val = numelif num > second_max_val and num != max_val:second_max_val = numprint(second_max_val)```9. 答案分析:- 在样例输入中,数组为[3, 1, 4, 1, 5],最大值为5,第二大的值为4。
- 算法正确地找到了第二大的数,并且避免了使用额外的空间。
10. 注意事项:- 确保数组中至少有两个不同的元素,否则无法找到第二大的数。
- 考虑数组中存在相同元素的情况,算法需要正确处理。
11. 扩展问题:- 如果数组中有多个相同的第二大的数,如何找到它们? - 如果需要找到数组中的第三大的数,算法应该如何修改?12. 附加说明:- 本题考查了数组的处理和排序算法的应用。
ACM题目分类(参考模板)
-----------------------------最优化问题-----------------------------------------------------------常规动态规划SOJ1162 I-KeyboardSOJ1685 ChopsticksSOJ1679 GangstersSOJ2096 Maximum SubmatrixSOJ2111 littleken bgSOJ2142 Cow ExhibitionSOJ2505 The County FairSOJ2818 QQ音速SOJ2469 Exploring PyramidsSOJ1833 Base NumbersSOJ2009 Zeros and OnesSOJ2032 The Lost HouseSOJ2113 数字游戏SOJ2289 A decorative fenceSOJ2494 ApplelandSOJ2440 The days in fzkSOJ2494 ApplelandSOJ2515 Ski LiftSOJ2718 BookshelfSOJ2722 Treats for the CowsSOJ2726 Deck of CardsSOJ2729 Space ElevatorSOJ2730 Lazy CowsSOJ2713 Cut the SequenceSOJ2768 BombSOJ2779 Find the max (I) (最大M子段和问题)SOJ2796 Letter DeletionSOJ2800 三角形SOJ2804 Longest Ordered Subsequence (II)SOJ2848 River Hopscotch(二分)SOJ2849 Cow Roller CoasterSOJ2886 Cow WalkSOJ2896 AlphacodeSOJ2939 bailey's troubleSOJ2994 RSISOJ3037 Painting the ballsSOJ3072 ComputersSOJ3078 windy's "K-Monotonic"SOJ3084 windy's cake IVSOJ3104 Game(注意大数运算,高精度)SOJ3110 k Cover of LineSOJ3111 k Median of LineSOJ3123 Telephone WireSOJ3142 Unfriendly Multi PermutationSOJ3213 PebblesSOJ3219 Cover UpSOJ3263 FunctionSOJ3264 Evil GameSOJ3339 graze2SOJ3341 SkiSOJ3352 The Baric BovineSOJ3503 Banana BoxesSOJ3633 Matches's GameSOJ3636 理想的正方形SOJ3711 Mountain RoadSOJ3723 Robotic Invasionnankai1134 Relation Orderingsrm150--div1--500----------------背包问题SOJ2222 Health PowerSOJ2749 The Fewest CoinsSOJ2785 Binary PartitionsSOJ2930 积木城堡SOJ3172 FishermanSOJ3300 Stockholm CoinsSOJ3360 Buying HaySOJ3531 Number Pyramids----------------状态DPSOJ2089 lykooSOJ2768 BombSOJ2819 AderSOJ2842 The TSP problemSOJ3025 Artillery(状态DP)SOJ3088 windy's cake VIIISOJ3183 Fgjlwj's boxesSOJ3259 Counting numbersSOJ3262 Square Fields(二分+状态DP) SOJ3371 Mixed Up CowsSOJ3631 Shopping Offers----------------树状DPSOJ 1870 Rebuilding RoadsSOJ 2136 Apple(树形依赖背包n*C算法) SOJ 2514 Milk Team SelectSOJ 2199 Apple TreeSOJ 3295 Treeland ExhibitionSOJ 3635 World Cup 2010hdoj1561 The more, The BetterPKU1655 Balancing ActPKU3107 GodfatherPKU3345 Bribing FIPAPKU2378 Tree CuttingPKU3140 Contestants DivisionPKU3659 Cell Phone Network---------------配合数据结构的优化DPSOJ 2702 AlannaSOJ 2978 TasksSOJ 3234 Finding SeatsSOJ 3540 股票交易-------------- 斜率优化SOJ 3710 特别行动队SOJ 3734 搬家SOJ 3736 Lawrence of Arabia---------------四边形不等式SOJ 1702 Cutting SticksSOJ 2775 Breaking Strings--------------- 最优化之排序(思考两个元素之间的先后关系,以此得出一个二元比较关系,并验证此关系可传递,反对称,进而排序)SOJ2509 The Milk QueueSOJ2547 cardsSOJ2850 Protecting the FlowersSOJ2957 Setting ProblemsSOJ3167 ComputerSOJ3331 Cards(2547加强版)SOJ3327 Dahema's Computer(通过此题学会排序)-----------------最优化之必要条件枚举(思考最优解所具有的性质,得出最优解的一个强必要条件,在此基础上枚举)SOJ3317 FGJ's PlaneSOJ3429 Food portion sizes--------------------------------贪心---------------------------------------SOJ1078 BlueEyes' ScheduleSOJ1203 Pass-MurailleSOJ1673 Gone FishingSOJ2574 pieSOJ2645 Buy One Get One FreeSOJ2701 In a CycleSOJ2876 Antimonotonicity(经典模型 O(n)算法)SOJ3343 Tower--------------------------------搜索---------------------------------------SOJ1106 DWeepSOJ1626 squareSOJ2061 8 puzzleSOJ2485 SudokuSOJ1045 SticksSOJ2736 FliptileSOJ2771 Collecting StonesSOJ2715 Maze BreakSOJ2518 Magic Cow ShoesSOJ2829 binary strings(双向BFS)SOJ3005 Dropping the stonesSOJ3136 scu07t01的迷宫(BFS预处理然后枚举交汇点)SOJ3330 Windy's Matrix(BFS)--------------------------------DFA-------------------------------------------------------状态矩阵SOJ1826 Number SequenceSOJ1936 FirepersonsSOJ2552 Number of TilingsSOJ2919 Matrix Power Series (学习矩阵的快速乘法从此开始)SOJ2920 Magic BeanSOJ3021 Quad TilingSOJ3046 Odd Loving BakersSOJ3176 E-stringSOJ3246 Tiling a Grid With DominoesSOJ3323 K-Satisfied NumbersSOJ3337 Wqb's Word----------------DFA+DPSOJ1112 Repeatless Numbers(DFA+二分)SOJ2913 Number SubstringSOJ2826 Apocalypse SomedaySOJ3128 windy和水星 -- 水星数学家 1SOJ3182 Windy numbers---------------------------------图论-----------------------------------------------------------最短路SOJ1697 Cashier EmploymentSOJ2325 Word TransformationSOJ2427 Daizi's path systemSOJ2468 CatcusSOJ2751 Wormholes(SPFA判断负圈回路的存在性)SOJ2932 道路SOJ3160 Clear And Present DangerSOJ3335 Windy's Route(最短路径的分层图思想)SOJ3346 Best Spot(N^3放心的写)SOJ3423 Revamping Trails---------------------查分约束SOJ1687 Intervals---------------------最小生成树SOJ1169 NetworkingSOJ2198 HighwaysSOJ3366 Watering HoleSOJ3427 Dark roads---------------------强连通分支SOJ2832 Mars city---------------------2-SATSOJ3535 Colorful DecorationHDU3062 Party---------------------拓扑排序SOJ1075 BlueEyes and Apples (II)---------------------无向连通图上的割点和割边问题SOJ1935 ElectricityWHU145 Railway---------------------二分图的匹配------------------最大匹配SOJ1183 Girls and BoysSOJ1186 CoursesSOJ2035 The Tiling ProblemSOJ2077 Machine ScheduleSOJ2160 Optimal MilkingSOJ2342 Rectangles(Beloved Sons 模型)SOJ2472 Guardian of DecencySOJ2681 平方数 2SOJ2737 AsteroidsSOJ2764 Link-up GameSOJ2806 LED DisplaySOJ2958 Weird FenceSOJ3043 Minimum CostSOJ3038 Beloved Sons(简单贪心一下)SOJ3453 Stock ChartsZOJ3265 Strange Game---------------最佳匹配SOJ1981 Going HomeWHU1451 Special Fish---------------------最近公共祖先问题SOJ1187 Closest Common AncestorsSOJ1677 How far awaySOJ3023 NetworkSOJ3098 Bond---------------------其他SOJ3013 treeSOJ3056 Average distance(树上的DFS)---------------------------------网络流----------------------------------------------------------最大流POJ 1273 Drainage DitchesPOJ 1274 The Perfect Stall (二分图匹配)POJ 1698 Alice's ChancePOJ 1459 Power NetworkPOJ 2112 Optimal Milking (二分)POJ 2455 Secret Milking Machine (二分)POJ 3189 Steady Cow Assignment (枚举)POJ 1637 Sightseeing tour (混合图欧拉回路)POJ 3498 March of the Penguins (枚举汇点)POJ 1087 A Plug for UNIXPOJ 1149 Pigs (构图题)ZOJ 2760 How Many Shortest Path (边不相交最短路的条数)POJ 2391 Ombrophobic Bovines (必须拆点,否则有BUG)WHU 1124 Football Coach (构图题)SGU 326 Perspective (构图题,类似于 WHU 1124)UVa 563 CrimewaveUVa 820 Internet BandwidthPOJ 3281 Dining (构图题)POJ 3436 ACM Computer FactoryPOJ 2289 Jamie's Contact Groups (二分)SGU 438 The Glorious Karlutka River =) (按时间拆点)SGU 242 Student's Morning (输出一组解)SGU 185 Two shortest (Dijkstra 预处理,两次增广,必须用邻接阵实现,否则 MLE) HOJ 2816 Power LinePOJ 2699 The Maximum Number of Strong Kings (枚举+构图)ZOJ 2332 GemsJOJ 2453 Candy (构图题)SOJ 2414 Leapin' LizardsSOJ 2835 Pick Up PointsSOJ 3312 Stockholm KnightsSOJ 3353 Total Flow--------------------最小割SOJ2662 PlaygroundSOJ3106 Dual Core CPUSOJ3109 Space flightSOJ3107 SelectSOJ3185 Black and whiteSOJ3254 Rain and FgjSOJ3134 windy和水星 -- 水星交通HOJ 2634 How to earn moreZOJ 2071 Technology Trader (找割边)HNU 10940 CoconutsZOJ 2532 Internship (找关键割边)POJ 1815 Friendship (字典序最小的点割集)POJ 3204 Ikki's Story I - Road Reconstruction (找关键割边)POJ 3308 ParatroopersPOJ 3084 Panic RoomPOJ 3469 Dual Core CPUZOJ 2587 Unique Attack (最小割的唯一性判定)POJ 2125 Destroying The Graph (找割边)ZOJ 2539 Energy MinimizationZOJ 2930 The Worst ScheduleTJU 2944 Mussy Paper (最大权闭合子图)POJ 1966 Cable TV Network (无向图点连通度)HDU 1565 方格取数(1) (最大点权独立集)HDU 1569 方格取数(2) (最大点权独立集)HDU 3046 Pleasant sheep and big big wolfPOJ 2987 Firing (最大权闭合子图)SPOJ 839 Optimal Marks (将异或操作转化为对每一位求最小割)HOJ 2811 Earthquake Damage (最小点割集)2008 Beijing Regional Contest Problem A Destroying the bus stations ( BFS 预处理 )(http://acmicpc-live-archive.uva.es/nuevoportal/data/problem.php?p=4322) ZOJ 2676 Network Wars (参数搜索)POJ 3155 Hard Life (参数搜索)ZOJ 3241 Being a Hero-----------------有上下界ZOJ 2314 Reactor Cooling (无源汇可行流)POJ 2396 Budget (有源汇可行流)SGU 176 Flow Construction (有源汇最小流)ZOJ 3229 Shoot the Bullet (有源汇最大流)HDU 3157 Crazy Circuits (有源汇最小流)-----------------最小费用流HOJ 2715 Matrix3HOJ 2739 The Chinese Postman ProblemPOJ 2175 Evacuation Plan (消一次负圈)POJ 3422 Kaka's Matrix Travels (与 Matrix3 类似)POJ 2516 Minimum Cost (按物品种类多次建图)POJ 2195 Going HomePOJ 3762 The Bonus Salary!BUAA 1032 Destroying a PaintingPOJ 2400 Supervisor, Supervisee (输出所有最小权匹配)POJ 3680 IntervalsHOJ 2543 Stone IVPOJ 2135 Farm TourSOJ 3186 SegmentsSOJ 2927 终极情报网SOJ 3634 星际竞速HDU 3376 Matrix Again-----------------------------------数据结构--------------------------------------------------------------------基础数据结构----------------------栈SOJ2511 MooooSOJ3085 windy's cake V(经典栈与单调性的结合)SOJ3279 hm 与 zx 的故事系列2SOJ3329 Maximum Submatrix II(转化为上面两题的模型)---------------------双端队列SOJ2978 TasksSOJ3139 Sliding Window(双端队列最经典的应用)SOJ3636 理想的正方形-------------------- --------------高级数据结构---------------------线段树SOJ1862 Choice PearsSOJ2057 The manager's worrySOJ2249 Mayor's postersSOJ2309 In the Army NowSOJ2436 Picture puzzle gameSOJ2556 Find the PermutationSOJ2562 The End of CorruptionSOJ2719 Corral the Cows(线段树+二分)SOJ2740 Balanced LineupSOJ2745 零序列SOJ2776 Matrix SearchingSOJ2808 Thermal Death of the UniverseSOJ2822 Buy TicketsSOJ2937 TetrisSOJ2938 Apple Tree(先DFS获得欧拉序列)SOJ2965 capitally playersSOJ2968 Matrix(二维线段树)SOJ3019 Count ColorSOJ3022 Difference Is Beautiful( RMQ+二分经典模型)SOJ3086 windy's cake VI(二维线段树)SOJ3099 A Simple Problem with IntegersSOJ3248 MousetrapSOJ3321 Windy's Sequence IISOJ3370 Light SwitchingSOJ3640 Special Subsequence---------------------树状数组SOJ2309 In the Army Now---------------------归并排序思想SOJ2906 Ultra-QuickSortSOJ2431 Cows distribute food(利用归并排序求逆序数:nlogn) SOJ2497 Number sequenceSOJ2559 What is the Rank?SOJ2728 MooFestSOJ3009 Stones for AmySOJ3010 K-th NumberSOJ3147 K-th number---------------------并查集SOJ1824 The SuspectsSOJ1953 keySOJ2245 Ubiquitous ReligionsSOJ2389 Journey to TibetSOJ2438 PetSOJ2490 Math teacher's testPOJ2832 How many pairs?POJ2821 Auto-Calculation MachineSOJ2979 食物链SOJ3282 Kingdom of HeavenSOJ3417 Skyscrapers------------------------块状链表SOJ3032 Big StringSOJ3035 反转序列----------------------------------- 字符串---------------------后缀数组SOJ1948 sekretarkaSOJ3045 Long Long MessageSOJ3075 回文子串SOJ3296 Windy's S---------------------KMPSOJ2652 OulipoSOJ2307 String MatchingSOJ3014 Seek the Name, Seek the FameSOJ3596 Article Decryption--------------------trie树SOJ3076 相同字符串SOJ3336 DiarySOJ3596 Article Decryption---------------------------------组合数学及数论-----------------------------SOJ1839 Relatives(Euler函数)SOJ1942 FotoSOJ2714 Mountains (II)SOJ2668 C(n,k)SOJ2666 分解 n!SOJ2106 GCD & LCM InverseSOJ2498 Count primeSOJ2238 Let it Bead(置换群-polya定理的应用)SOJ2924 完美交换(置换群)SOJ2638 Cow Sorting(置换群)-------------费马小定理SOJ 3578 H1N1's Problem--------------------------容斥原理SOJ3191 Free squareSOJ3082 windy's cake IISOJ3502 The Almost Lucky NumbersSOJ3547 Coprime----------------------------------博弈论------------------------------------SOJ1128 控制棋SOJ1866 Games(诡异的博弈)SOJ2197 A Funny GameSOJ2188 A multiplication gameSOJ2403 Black and white chessSOJ2477 Simple GameSOJ2687 草稿纸 2SOJ2688 草稿纸 3SOJ2836 Pick Up Points IISOJ2845 JangeSOJ2922 A New Tetris GameSOJ2993 NimSOJ3066 JohnSOJ3132 windy和水星 -- 水星游戏 1SOJ3133 windy和水星 -- 水星游戏 2SOJ3174 Good gameSOJ3307 Stockholm GameSOJ3446 Nim or not NimSOJ3461 Nim-kSOJ3463 Ordered NimSOJ3468 Flip CoinsSOJ3548 game如不慎侵犯了你的权益,请联系告知!SOJ3584 Baihacker and Oml-----------------------------------计算几何---------------------------------SOJ1138 WallSOJ1102 Picnic(本资料素材和资料部分来自网络,仅供参考。
北京大学 acm程序设计 图论讲义
for (w=G->first(v); w<G->n(); w = G>next(v,w))
if (G->getMark(w) == UNVISITED) { G->setMark(w, VISITED); Q->enqueue(w); }
PostVisit(G, v); // Take action }}
Q Q
31
() ((1,1)) ((1,1) (2,3)) ((1,1) (2,4)) ((1,1) (2,4) (3.2))
Q Q
Q
32
() ((1,1)) ((1,1) (2,3)) ((1,1) (2,4)) ((1,1) (2,4) (3.2))
Q Q
33
Q () ((1,1)) ((1,1) (2,3)) ((1,1) (2,4)) ((1,1) (2,4) (3.2))
求解算法
穷举法 贪心法 深度/广度优先搜索
图和树的搜索 回溯法(深度优先)
递归
分治
动态规划法
55
谢谢!
56
49
动态规划法的思想
自底向上构造 在原问题的小子集中计算 每一步列出局部最优解,并用一张
表保留这些局部最优解,以避免重 复计算 子集越来越大,最终在问题的全集 上计算,所得出的就是整体最优 解。
50
Fib(1)=Fib(2)=1
Fibonacci数列 Fib(n)=Fib(n-1) + Fib (n-2)
23
八数码 深度优先搜索
1
23 184 765
2
c
3
283 164 75
283 14 765
第(必填)期北京大学大型仪器开放测试基金课题总结
申请人
必填
导师
必填
单位
必填
联系电话
必填
仪器编号
仪器名称
课题总结
总结(包括分析测试方法、达到的目标及水平、主要成果、论文或成果(专利)列表、测试失败的原因等。文字不少于200字,但不得超过1000字。)
必数
待发表论文数
专著数
培养学生人数
国家级获奖数
省部级获奖数
其他获奖数
专利数
用户使用意见
满意 基本满意 不满意(必填)
院系意见
院(系)所科技业务管理部门对课题完成情况的评价、意见及建议
院(系)所负责人签章
年月日
实验室出成果:北京大学微处理器研究开发中心主任陈旭先进事迹
实验室出成果:北京大学微处理器研究开发中心主任陈旭先进
事迹
佚名
【期刊名称】《中国集成电路》
【年(卷),期】2004(000)001
【摘要】个人简历程旭:1994年于哈尔滨工业大学获得工学博士学位;1996年自北京大学计算机科学技术博士后流动站出站,并留校任教,同年晋升为副教授。
1999年晋升为教授、博士生导师。
现任北京大学微处理器研究开发中心主任、计算机科学技术系主任、计算机、系统结构研究所所长、北京大学信息与工程科学学部学术委员,兼任国家'十五'八六三计划超大规模集成电路设计专项总体组专家、中国计算机学会名词审定工作委员会副主任委员。
【总页数】2页(P24-25)
【正文语种】中文
【中图分类】F426.63
【相关文献】
1.北京大学"微处理器组织与设计"教育部-Sun精品课程建设体会 [J], 张兴
2.北京大学微处理器研究开发中心与美国Synopsys公司——共同向业界推荐面向超深亚微米SOC参考设计流程 [J],
3.Synopsys公司与北京大学微处理器研究开发中心合作 [J],
4.农民兄弟的贴心人——黑龙江省富锦市总农艺师、农技推广中心主任麻晶莉先进事迹 [J], 徐力国
5.科学管理精心调度优化中枢——广西电网调度通讯中心主任何朝阳先进事迹[J], 党毅
因版权原因,仅展示原文概要,查看原文内容请购买。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
void ring(int x,int r)//把偶环缩成点,奇环缩成点+边 { int j=1;
for(int i=x;i!=r;i=fa[i]) {c[i]=1; j++;}//缩点后的点标记为1
if (j&1) c[r]=2;//奇环顶点标记为2 } void dfs(int x) { for(int i=head[x];i;i=next[i]) {
fa[1]=1;//注意根节点的父亲标记为自己,否则对于根节点在环里的数据会WA dfs(1);
for(i=1;i<=n;i++)//奇环缩成一个点+一条边 if (c[i]==2) {add(i,++n); c[i]=0;} ans^=SG(1); } if (ans) cout<<"Sally\n";else cout<<"Harry\n"; } return 0; }
else ring(x,ver[i]);//x-fa[x]-fa[fa[x]]-……-ver[i]构成一个环 } } int SG(int x) { c[x]=1; int temp=0;
for(int i=head[x];i;i=next[i])//SG值为子节点SG值+1的异或 if (!c[ver[i]]) temp^=(SG(ver[i])+1); return temp; } int main() {er[i]==fa[x])||(c[ver[i]])) continue;//指向父亲,或者指向已
经缩点的点
else if (fa[ver[i]]==x) ring(ver[i],x);//用于特殊处理两个点构成的
环(重边)
else if (!fa[ver[i]]) {fa[ver[i]]=x; dfs(ver[i]);}//未访问过
北大acm
#include<iostream> #include<cstdio> #include<cstring> using namespace std; int ver[2000],head[200],next[2000],fa[200],c[200]; int t,n,m,i,j,x,y,tot,ans; void add(int x,int y) { ver[++tot]=y; next[tot]=head[x]; head[x]=tot; }
while(t--) { scanf("%d%d",&n,&m); memset(head,0,sizeof(head)); memset(c,0,sizeof(c)); memset(fa,0,sizeof(fa)); tot=0; for(i=0;i<m;i++) {
scanf("%d%d",&x,&y); add(x,y); add(y,x); }