google code jam 2014 RC_C
来源:互联网 发布:数据恢复中心 赵力 编辑:程序博客网 时间:2024/05/16 18:33
一道很灵活的贪心小题木,我也是看了官方题解才想到的- -!!一般都用最大流做的。
枚举+贪心构造法
#include <cstdio>#include <cstring>using namespace std;int T,N;char com[1001][2];int id[1001];bool in[5001];bool oc[5001];int sot[5001];int ID=2001;bool simulate(int n){for(int i=0; i<n; ++i){bool sta=0;memset(oc,0,sizeof(oc));for(int j=0; j<N; ++j){if(com[j][0]=='L'&&oc[id[j]]==0&&id[j]&&in[id[j]]==0){in[id[j]]=1;sta=1;break;}oc[id[j]]=1;}if(sta==0){in[ID++]=1;}}for(int i=0; i<N; ++i){if(com[i][0]=='E'){if(id[i]==0){bool sta=0;memset(oc,0,sizeof(oc));for(int j=i+1; j<N; ++j){if(com[j][0]=='L'&&oc[id[j]]==0&&id[j]&&in[id[j]]==0){in[id[j]]=1;sta=1;break;}oc[id[j]]=1;}if(sta==0){in[ID++]=1;}}else{if(in[id[i]]){return false;}else{in[id[i]]=1;}}}else{if(id[i]==0){bool sta=0;memset(oc,0,sizeof(oc));for(int j=i+1; j<N; ++j){if(com[j][0]=='E'&&oc[id[j]]==0&&id[j]&&in[id[j]]){in[id[j]]=0;sta=1;break;}oc[id[j]]=1;}if(sta==0){memset(oc,0,sizeof(oc));for(int j=i+1; j<N; ++j){if(id[j]){oc[id[j]]=1;}}for(int j=1; j<=5000; ++j){if(in[j]&&oc[j]==0){in[j]=0;sta=1;break;}}}if(sta==0){memset(sot,0,sizeof(sot));for(int j=N-1; j>i; --j){if(com[j][0]=='L'&&in[id[j]]){sot[id[j]]=j;}}int tmp=0,iid=-1;for(int j=1; j<=5000; ++j){if(sot[j]>tmp){iid=j; tmp=sot[j];}}if(iid!=-1){in[iid]=0; sta=1;}}if(sta==0) return false;}else{if(in[id[i]]==0){return false;}else{in[id[i]]=0;}}}}return true;}int main(){freopen("C-large-practice.in","r",stdin);freopen("c2.out","w",stdout);scanf("%d",&T);for(int cas=1; cas<=T; ++cas){scanf("%d",&N);int icnt=0,ocnt=0;for(int i=0; i<N; ++i){scanf("%s %d",com+i,id+i);if(com[i][0]=='E') ++icnt;else ++ocnt;}printf("Case #%d: ",cas);bool end=0;for(int i=0; i<=N; ++i){ID=2001;memset(in,0,sizeof(in));if(simulate(i)){printf("%d\n",icnt+i-ocnt);end=1;break;}//puts("CRIME TIME");}if(end==0){puts("CRIME TIME");}}}
0 0
- google code jam 2014 RC_C
- Google Code Jam 2014 -- C
- google code jam 2014 RC_A
- google code jam 2014 RC_B
- google code jam 2014 RC_D
- google code jam 2014 RB_A
- google code jam 2014 RB_B
- google code jam 2014 RB_C
- Google Code Jam 2014 A. Magic Trick
- Google Code Jam 2014 A,B,D
- Google Code Jam 2006
- Google China Code Jam
- Google Code Jam
- Google Code Jam 130914
- Google Code Jam 2015
- Google Code Jam 2015
- 2016 google code jam
- Google code jam
- 面试题:判断一个圆和一个矩形是否相交
- net连接oracle数据库
- 简单介绍SharePoint 2010 14 Hive目录
- 后方可恢复卡手放开手放开速度和福克斯都很疯狂的划分地块
- mysql创建触发器
- google code jam 2014 RC_C
- 什么是用户故事
- 2013-06-30-VPN内网对接
- SHELL排序
- 多媒体之mp3
- 创建定性用户画像
- 题目1522:包含min函数的栈
- MRVC数据可视化应用、交互平台
- obj-c编程08:分类和协议