博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU 5071 Chat
阅读量:5132 次
发布时间:2019-06-13

本文共 1754 字,大约阅读时间需要 5 分钟。

  这题没什么好说的:只要维护几个值就好了,因为属性是唯一而且不会改变的所以用Map 来映射下就好了,留下代码备用

1 #include 
2 #include
3 #include
4 #include
5 #include
6 #include
7 #include
8 #include
9 using namespace std; 10 typedef long long LL; 11 map
Hash; 12 set
SET; 13 map
::iterator it; 14 set
::iterator it_set; 15 struct info 16 { 17 int w; 18 LL t; 19 info(int w,LL t):w(w),t(t){} 20 info(){t=0;} 21 }; 22 info que[50050]; 23 int pos,top; 24 void inint() 25 { 26 Hash.clear(); 27 SET.clear(); 28 top=-1; 29 pos=0; 30 } 31 void Rotate(int p,bool flag) 32 { 33 if(p<1||p>pos){ printf("out of range");return;} 34 if(flag)printf("success"); 35 info t=que[p]; 36 for(int i=p;i>=2;i--) 37 { 38 que[i]=que[i-1]; 39 it=Hash.find(que[i].w); 40 Hash.erase(it); 41 Hash[que[i].w]=i; 42 } 43 que[1]=t; 44 it=Hash.find(que[1].w); 45 Hash.erase(it); 46 Hash[que[1].w]=1; 47 } 48 void Choose(int p) 49 { 50 int t=Hash[p]; 51 if(t==0){printf("invalid priority");return;} 52 printf("success"); 53 Rotate(Hash[p],false); 54 } 55 56 void Prior() 57 { 58 if(pos==0){printf("empty");return;} 59 printf("success"); 60 it_set=SET.end(); 61 it_set--; 62 int num=*it_set; 63 Rotate(Hash[num],false); 64 } 65 void Add(int p) 66 { 67 if(Hash[p]!=0){printf("same priority");return;} 68 printf("success"); 69 que[++pos]=info(p,0); 70 Hash[p]=pos; 71 SET.insert(p); 72 } 73 void Close(int p) 74 { 75 if(Hash[p]==0){printf("invalid priority");return;} 76 int t=Hash[p]; 77 if(que[t].w!=p) while(1){} 78 printf("close %d with %d",p,que[t].t); 79 if(top==p){ while(1){} top=-1;} 80 it=Hash.find(p); 81 Hash.erase(it); 82 SET.erase(p); 83 for(int i=t;i

 

转载于:https://www.cnblogs.com/shuly/p/4043936.html

你可能感兴趣的文章
了解node.js
查看>>
想做移动开发,先看看别人怎么做
查看>>
Eclipse相关集锦
查看>>
虚拟化架构中小型机构通用虚拟化架构
查看>>
继承条款effecitve c++ 条款41-45
查看>>
Java泛型的基本使用
查看>>
1076 Wifi密码 (15 分)
查看>>
noip模拟赛 党
查看>>
bzoj2038 [2009国家集训队]小Z的袜子(hose)
查看>>
Java反射机制及其Class类浅析
查看>>
Postman-----如何导入和导出
查看>>
移动设备显示尺寸大全 CSS3媒体查询
查看>>
图片等比例缩放及图片上下剧中
查看>>
【转载】Linux screen 命令详解
查看>>
background-clip,background-origin
查看>>
Android 高级UI设计笔记12:ImageSwitcher图片切换器
查看>>
【Linux】ping命令详解
查看>>
对团队成员公开感谢博客
查看>>
java学习第三天
查看>>
python目录
查看>>