第二天 POJ3125
2016-03-21 21:26
169 查看
Source Code
Source Code
Problem: 3125 | User: newer2015 | |
Memory: 740K | Time: 16MS | |
Language: G++ | Result: Accepted |
#include<iostream> #include<stdio.h> #include<math.h> #include<algorithm> #include<queue> #define MAX 1000 using namespace std; class point { public: int key; int priority; point(){key=0;priority=0;} }; point* p=new point[MAX]; int num; int imkey; int test() { int temp=-1; int k=0; int i=0,count=1; int maxp=0; int max_priority[MAX]; point temppoint; queue<point> q; cin>>num>>imkey; for(i=0;i<num;i++) { p[i].key=i; cin>>p[i].priority; max_priority[i]=p[i].priority; // printf("%d\n",max_priority[i]); q.push(p[i]); } //printf("%d\n",max_priority); sort(max_priority,max_priority+num); k=num-1; maxp=max_priority[k]; // printf("%d\n",maxp); for(;;) { if(q.front().priority<maxp) { temppoint=q.front(); //printf("%d",temppoint.key); q.pop(); q.push(temppoint); } else { if(q.front().key==imkey) { printf("%d\n",count); break; } else { q.pop(); k=k-1; maxp=max_priority[k]; count++; } } } } int main() { int i; cin>>i; while(i!=0) { test(); i--; } return 0; } 打印机这个题还比较简单,逐渐掌握了poj算法实现的基本思路方法,对于算法细节的分析直接决定了answer的正确与否,
此道题特殊注意一下优先级,最大优先级出队以后应该改变最大优先级的值,因此需要引入一个排序好的优先级数组。
相关文章推荐
- 连连看游戏辅助工具python版的实现
- svn cleanup 使用
- hdoj--1280--前m大的数(水)
- 选择排序
- 进程&线程&死锁
- iOS开发之根据状态栏获取网络的连接状态
- 用struts2拦截器的实现(拦截未登陆用户)
- js实现30秒内禁止重复点击发送验证邮件
- 1 + 11 + 1111+ 11111+ ..... + 11111(2016个) 结果是几位数
- 浅谈Service
- FZU 2110 Star
- Linux 下安装Python框架django建立与mysql的连接
- day12_函数
- day12_游标
- day12_序列——重置序列
- 呕心沥血之作:DNS and BIND配置指南
- Scala学习笔记--第7章 类(二)
- windows安装python和xgboost
- 第一次运维
- mysql 插入重复值 INSERT ... ON DUPLICATE KEY UPDATE