测试 3
来源:互联网 发布:java闰年判断 编辑:程序博客网 时间:2024/05/17 10:07
t1
del
去一个重,在特判一下
#include<cstdio>#include<algorithm>#include<cstdlib>using namespace std;int n,k,a[110000];int main(){ freopen("del.in","r",stdin); freopen("del.out","w",stdout); scanf("%d%d",&n,&k); for(int i=1;i<=n;i++)scanf("%d",&a[i]); sort(a+1,a+n+1); int ans=unique(a+1,a+n+1)-(a+1); if(n-ans>=k) printf("%d",ans); else printf("%d",n-k);}
t2
chess
简单的搜索题,递归模拟,没啥优化剪枝。。。
不知怎么搞的’,’忘加了。。
然后走一步的特判在程序里错了,弄出去就对了。。。
#include<cstdio>#include<iostream>using namespace std;struct st{ int maxn,cnt; };int a[11][11],b[11][11];int xx[]={1,1,-1,-1};int yy[]={1,-1,-1,1};int ans,ans2[11][11];char s[19];st dfs(int x,int y,int opt,int s){ int tot=0,num=1; if(!s) { for(int i=0;i<4;i++) if(i!=opt) { if(x+xx[i]>10&&y+yy[i]>10&&y+yy[i]<=0&&x+xx[i]<=0)continue; if(a[x+xx[i]][y+yy[i]]==0) continue; if(a[x+xx[i]][y+yy[i]]==2&&x+xx[i]+xx[i]<=10&&y+yy[i]+yy[i]<=10&&y+2*yy[i]>0&&x+2*xx[i]>0&&a[x+xx[i]+xx[i]][y+yy[i]+yy[i]]==0){ a[x+xx[i]][y+yy[i]]=0; st w=dfs(x+xx[i]+xx[i],y+yy[i]+yy[i],(i+2)%4,s); a[x+xx[i]][y+yy[i]]=2; if(w.maxn+1>tot){ num=w.cnt; tot=w.maxn+1; } else if(w.maxn+1==tot) num+=w.cnt; } } } else for(int i=0;i<4;i++) if(i!=opt) { int t=1; while(x+t*xx[i]<=10&&y+t*yy[i]<=10&&y+t*yy[i]>0&&x+t*xx[i]>0&&!a[x+t*xx[i]][y+t*yy[i]]) t++; if(x+t*xx[i]>10&&y+t*yy[i]>10&&y+t*yy[i]<=0&&x+t*xx[i]<=0)continue; if(a[x+t*xx[i]][y+t*yy[i]]==1) continue; a[x+t*xx[i]][y+t*yy[i]]=0; int ww=t; t++; while(x+t*xx[i]<=10&&y+t*yy[i]<=10&&y+t*yy[i]>0&&x+t*xx[i]>0&&!a[x+t*xx[i]][y+t*yy[i]]){ st w=dfs(x+t*xx[i],y+t*yy[i],(i+2)%4,s); if(w.maxn+1>tot){ num=w.cnt; tot=w.maxn+1; } else if(w.maxn+1==tot) num+=w.cnt; t++; } a[x+ww*xx[i]][y+ww*yy[i]]=2; } st tmp; tmp.maxn=tot; tmp.cnt=num; return tmp;}int num[11][11],num3,num4[11][11];int main(){ freopen("chess.in","r",stdin); freopen("chess.out","w",stdout); for(int i=1;i<=10;i++) { cin>>s+1; for(int j=1;j<=10;j++) a[i][j]=s[j]-'0'; } for(int i=1;i<=10;i++) { cin>>s+1; for(int j=1;j<=10;j++) b[i][j]=s[j]-'0'; } //dfs(6,7,4,0); for(int i=1;i<=10;i++) for(int j=1;j<=10;j++) if(a[i][j]==1) { if(!b[i][j]) { for(int k=2;k<4;k++) if(i+xx[k]<=10&&j+yy[k]<=10&&j+yy[k]>0&&i+xx[k]>0&&!a[i+xx[k]][j+yy[k]]) num3++,num4[i][j]++; } else if(b[i][j]){ for(int k=0;k<4;k++) { int t=1; while(i+t*xx[k]<=10&&j+t*yy[k]<=10&&j+t*yy[k]>0&&i+t*xx[k]>0&&!a[i+t*xx[k]][j+t*yy[k]]) t++,num3++,num4[i][j]++; } } st w=dfs(i,j,4,b[i][j]); //printf("%d %d %d %d\n",i,j,w.maxn,w.cnt); if(w.maxn>ans){ num[i][j]=w.cnt; ans2[i][j]=w.maxn; ans=w.maxn; } else if(w.maxn==ans) ans2[i][j]=w.maxn,num[i][j]+=w.cnt; } if(!ans){ printf("%d\n",num3); for(int i=1;i<=10;i++) for(int j=1;j<=10;j++) if(num4[i][j]) for(int k=1;k<=num4[i][j];k++) printf("(%d %d)\n",i,j); } else { int num2=0; for(int i=1;i<=10;i++) for(int j=1;j<=10;j++) if(ans==ans2[i][j]) num2=num2+num[i][j]; printf("%d\n",num2); for(int i=1;i<=10;i++) for(int j=1;j<=10;j++) if(ans==ans2[i][j]) for(int k=1;k<=num[i][j];k++) printf("(%d %d)\n",i,j); }}
t3
bonus
状压dp+期望。
dp[i][s]表示吃i个馅饼,s用二进制表示之前吃过哪些馅饼
倒着推,最后是零个馅饼
#include<cstdio>#include<iostream>using namespace std;int k,n,need[1<<16],f;double dp[109][1<<16],a[11999]; int main(){ freopen("bonus.in", "r", stdin); freopen("bonus.out", "w", stdout); scanf("%d%d",&k,&n); for(int i=1;i<=n;i++) { scanf("%lf",&a[i]); int x; scanf("%d",&x); while(x!=0){ need[i]+=1<<(x-1); scanf("%d",&x); } } for(int i=k;i>=1;i--) for(int s=0;s<=(1<<n)-1;s++) { for(int j=1;j<=n;j++) { if((s&need[j])==need[j]) dp[i][s]+=max(dp[i+1][s|(1<<j-1)]+a[j],dp[i+1][s]); else dp[i][s]+=dp[i+1][s]; } dp[i][s]/=(double)n; } printf("%.6lf",dp[1][0]);}
阅读全文
1 1
- 测试3
- 测试3
- 测试3
- 测试3
- 测试3
- 测试3
- 测试3
- 测试3
- 测试3
- 测试3
- 测试3
- 测试3
- 测试3
- 测试 3
- LSI测试(3)LSI测试系统专用PCB测试
- 测试3及测试结果公布
- Android测试教程(3):测试项目
- Android测试教程(3):测试项目
- NDP与ARP的区别
- loadrunner Vuser发生器 recording Options
- TX1制作镜像用于备份和恢复
- tf.reshape()
- iOS程序崩溃[Thread 1: signal SIGABRT] / [Image Not Found]错误
- 测试 3
- 版本控制工具:集中式与分布式
- ISIS报文格式——LAN IIH
- C++操作dbf文件 提供对浮点数 特别是日期函数的支持
- IntelliJ IDEA启动Tomcat后,却无法访问Tomcat主页
- (CCF 201409-4)最优配餐 [简单多源点BFS]
- clipboard.js 实现动态获取内容并复制到剪切板
- listview+GridView+侧滑菜单+RadioButton+TabLayout
- tf.placeholder()