UVALive 5025 Arranging Your Team
来源:互联网 发布:大数据saas概念股龙头 编辑:程序博客网 时间:2024/05/29 03:18
/*参考了一下别人的代码,才写出来的,感觉他的代码很优美,简洁清爽的感觉。附上网址:http://alwa.name/blog/?p=47*/#include <iostream>#include <cstdio>#include <map>#include <cstring>#include <string>using namespace std;int ans=0;map<string,int>M;map<string,int>N;int vis[30];int add[25][25];struct node{ int d; int en;}z[25];void solve(int src,int de,int mi,int st,int go){ if(de==4&&mi==4&&st==2&&go==1) { int sum=0; for(int i=0;i<23;i++) if(vis[i]) { sum+=z[i].d; for(int j=0;j<23;j++) if(vis[j]) { sum+=add[i][j]; } } if(ans<sum) ans=sum; return; } for(int i=src;i<23;i++) if(!vis[i]) { if(z[i].en==1&&de==4) continue; if(z[i].en==2&&mi==4) continue; if(z[i].en==3&&st==2) continue; if(z[i].en==4&&go==1) continue; vis[i]=1; if(z[i].en==1) solve(i+1,de+1,mi,st,go); if(z[i].en==2) solve(i+1,de,mi+1,st,go); if(z[i].en==3) solve(i+1,de,mi,st+1,go); if(z[i].en==4) solve(i+1,de,mi,st,go+1); vis[i]=0; }}int main(){ string s="defender"; N[s]=1; s="midfielder"; N[s]=2; s="striker"; N[s]=3; s="goalkeeper"; N[s]=4; string l,r; int d,n; while(cin>>l>>d>>r) { M.clear(); M[l]=0; z[0].d=d; z[0].en=N[r]; for(int i=1;i<23;i++) { cin>>l>>d>>r; M[l]=i; z[i].d=d; z[i].en=N[r]; } int num_de=0,num_mi=0,num_st=0,num_go=0; for(int i=0;i<23;i++) { if(z[i].en==1) num_de++; if(z[i].en==2) num_mi++; if(z[i].en==3) num_st++; if(z[i].en==4) num_go++; } scanf("%d",&n); memset(add,0,sizeof(add)); memset(vis,0,sizeof(vis)); for(int i=0;i<n;i++) { cin>>l>>r>>d; add[M[l]][M[r]]=d; } if(num_de<4||num_mi<4||num_st<2||num_go<1) { printf("impossible\n"); continue; } ans=-100000;//初始化为负数,最后ans可能为负数,wa了一次 solve(0,0,0,0,0); printf("%d\n",ans); } return 0;}
0 0
- UVALive 5025 Arranging Your Team
- UVALive 5025 Arranging Your Team dfs
- UVAL 5025 Arranging Your Team 暴力
- G - Arranging Your Team
- HDU 3720 Arranging Your Team
- HDU 3720 Arranging Your Team
- hdu 3720 Arranging Your Team 枚举
- 搜索-hdu-3720-Arranging Your Team
- hdu 3720——Arranging Your Team
- hdu 3720 Arranging Your Team(暴力)
- HDU 3720 Arranging Your Team(2010天津现场赛A)
- Knowing Your Team
- How to impove moral of your team
- Add Talents, Not Skills, to Your Team
- UVALive - 5135 Mining Your Own Business
- UVALive - 5135 Mining Your Own Business
- 25 surefie ways to motivate your team members
- 10 Tips for Leading Your Team to Peak Performance(ZT)
- POJ 1177 Picture(扫描线求周长)
- 黑马程序员学习5
- C语言之二维数组
- 【水讨论】#53 A. Square Earth?
- C语言之一维数组
- UVALive 5025 Arranging Your Team
- Struts2 --如果想看源码 Struts源码
- UVA11205
- Count the digits of any input integers
- C语言之认识C
- 一些表达式的陷阱
- 设置tabhost位于底部的三种方法
- 插入排序_2.折半插入排序
- 【笔试面试——26】链表06——复杂链表的复制