hdu 5071 chat
来源:互联网 发布:pc架子鼓软件下载 编辑:程序博客网 时间:2024/05/29 21:34
一个模拟QQ的题。
共有八种操作,都比较好实现。
关键的核心是:
最后一句话。
CLJ will say goodbye to every active window he has ever spoken to at last, “active” here means the window has not been closed so far. The logging format is “Bye u: c” where u is the priority and c is the number of words he has ever spoken to this window.He will always say good bye to the current top girl if he has spoken to her before he closes it.
共有八种操作,都比较好实现。
关键的核心是:
最后一句话。
CLJ will say goodbye to every active window he has ever spoken to at last, “active” here means the window has not been closed so far. The logging format is “Bye u: c” where u is the priority and c is the number of words he has ever spoken to this window.He will always say good bye to the current top girl if he has spoken to her before he closes it.
自己读得是 当执行关闭操作的时候如果是top并且说过话要 say goodbye!原来正确的题意是在最后按顺序输出说过话的girl ,并且top状态的为第一个。囧~~~~
因为这个wa了好多次。。。。
代码:
#include<stdio.h>#include<string.h>#include<queue>#include<algorithm>#include<iostream>#include<string>using namespace std;string s;string ss[10]= {"Add","Close","Chat","Rotate","Prior","Choose","Top","Untop"};int flag,top,u;struct node{ int num; int res;} p[5002];queue<node> q1,q2;void clear2(){ while(!q2.empty()) { q2.pop(); }}void jiaohuan(){ node a; while(!q2.empty()) { a=q2.front(); q2.pop(); q1.push(a); }}void o1(){ clear2(); node a; while(!q1.empty()) { a=q1.front(); q1.pop(); if(a.num==u) flag=1; q2.push(a); } a.num=u,a.res=0; if(!flag) { q2.push(a); printf("success.\n"); } else printf("same priority.\n"); jiaohuan();}void o2(){ clear2(); node a; int ans; int sum=0; while(!q1.empty()) { a=q1.front(); q1.pop(); if(!flag) sum++; if(a.num==u) { flag=1; ans=a.res; continue; } q2.push(a); } if(flag) printf("close %d with %d.\n",u,ans); else printf("invalid priority.\n"); jiaohuan();}void o3(){ clear2(); node a; int sum=0; if(q1.empty()) { printf("empty.\n"); return ; } while(!q1.empty()) { a=q1.front(); q1.pop(); sum++; if(sum==1&&top==-1) { a.res+=u; printf("success.\n"); } if(top==a.num) { a.res+=u; printf("success.\n"); } q2.push(a); } jiaohuan();}void o4(){ clear2(); node a,b; int ans=0; while(!q1.empty()) { a=q1.front(); q1.pop(); ans++; if(ans==u) { b=a; flag=1; continue; } q2.push(a); } if(flag) { q1.push(b); printf("success.\n"); } else printf("out of range.\n"); jiaohuan();}void o5(){ if(q1.empty()) { printf("empty.\n"); return ; } clear2(); node a,b; b.num=0; while(!q1.empty()) { a=q1.front(); q1.pop(); if(a.num>b.num) b=a; q2.push(a); } q1.push(b); while(!q2.empty()) { a=q2.front(); q2.pop(); if(a.num!=b.num) q1.push(a); } printf("success.\n");}void o6(){ clear2(); node a,b; while(!q1.empty()) { a=q1.front(); q1.pop(); if(a.num==u) { b=a; flag=1; continue; } q2.push(a); } if(flag) { q1.push(b); printf("success.\n"); } else printf("invalid priority.\n"); jiaohuan();}void o7(){ clear2(); node a; while(!q1.empty()) { a=q1.front(); q1.pop(); if(a.num==u) { flag=1; top=a.num; } q2.push(a); } if(flag) printf("success.\n"); else printf("invalid priority.\n"); jiaohuan();}void o8(){ if(top!=-1) { printf("success.\n"); top=-1; } else printf("no such person.\n");}void o9(){ clear2(); while(!q1.empty()) { node a=q1.front(); q1.pop(); //printf("--->Bye %d: %d\n",a.num,a.res); if(top==a.num) { if(a.res) printf("Bye %d: %d\n",a.num,a.res); continue; } q2.push(a); } while(!q2.empty()) { node a=q2.front(); q2.pop(); if(a.res!=0) printf("Bye %d: %d\n",a.num,a.res); }}void sove(){ int i; for(i=0; i<8; i++) { if(s==ss[i]) break; } i++; if(i!=5&&i!=8) scanf("%d",&u); //printf("--->%d\n",i); switch(i) { case 1: o1(); break; case 2: o2(); break; case 3: o3(); break; case 4: o4(); break; case 5: o5(); break; case 6: o6(); break; case 7: o7(); break; default : o8(); break; }}int main(){ //freopen("a.txt","r",stdin); int t; scanf("%d",&t); while(t--) { top=-1; clear2(); int n; scanf("%d",&n); for(int i=1; i<=n; i++) { flag=0; printf("Operation #%d: ",i); cin>>s; //cout<<s<<endl; sove(); } o9(); }}
0 0
- HDU 5071 Chat
- hdu 5071 Chat
- hdu 5071 Chat
- HDU 5071 Chat
- hdu 5071 chat
- hdu 5071 Chat(模拟)
- HDU 5071 Chat
- HDU 5071 Chat (模拟)
- hdu 5071 Chat
- HDU 5071 Chat
- HDU 5071 Chat!
- hdu 5071 Chat(模拟|Splay)
- hdu 5071 Chat(模拟)
- HDU 5071 Chat 暴力模拟
- HDU 5071 Chat (模拟)
- HDU 5071 Chat(大模拟)
- HDU 5071 Chat(模拟)
- HDU -- 5071 Chat 超强模拟
- c代码规范(参考)
- 英语美文10_23
- Oracle GoldenGate Oracle—Oracle 双向复制
- 关于C++输出流cout的执行顺序问题
- WSGI接口 def application(environ, start_response):
- hdu 5071 chat
- window与linux文件传输工具
- chmod函数的使用
- HTTP请求报头 .
- 使用Bmob后台的两个错误
- Phalcon学习笔记 - 安装
- 主机固定IP,虚拟Windows server2008无法联网解决办法
- 9种基本算法_回溯
- bootbox.js弹出框时设置为中文