标签:银行 www. erro 输入 amp include 入队 3.3 out
输入 n , m //总人数和退圈数
if m>n
Error
结束程序
end
定义队列 Numoff , 将n个人入队
int i= 1 //报数
while Numoff.size()!=0 do
if( i%=m )
then 将队首放到队尾
else 输出退圈得人的编号 , Numoff.pop()
end
i++
end
定义栈S3储存3号轨道
定义队列S1和Aim
while S1.size() do
if 3号轨道最外面的车厢符合进道顺序
将其移向2号轨道
continue
end
if 1号轨道最外面的车厢符合进道顺序
then 将其移向2号轨道
else 将其移向3号轨道
end
end
while S3.size() do
if 3号轨道最外面的车厢符合进道顺序
then 将其移向2号轨道
else Error , 结束程序
end
end
定义结构体Bank存放客户信息
定义栈All存放所有客户 , VIP额外存放vip客户
输入n //客户总数
for i=1 to n do
输入客户i的信息,入队All
如果客户i是vip
VIP.push()
end
while !All.empty() do
先判断是否有vip可进入vip窗口
有则将该vip出队,改变vip窗口空闲时间
如果All.front()是vip && All的队首和VIP的队首不是同一个人
All.pop() //该客户之前已经出队
for win=0 to sum-1 do //遍历窗口
如果win号窗口是vip窗口,且此时也有vip在等窗口
continue //让位
如果win号窗口空闲
进入该窗口 , break
如果该窗口等待时间最短
标记该窗口
end
if win==sum //完全遍历,没有发现空闲窗口
进入标记的窗口
end
题目 :
Rocky山脉有n个山峰,,从西向东依次编号为1, 2, 3, ……, n。编号为i的山峰高度为hi。小修从西往东登山。
每到一座山峰,她就回头观望。在第i座山峰,她记录下自己回头能看到的山峰数si。
小修把所有的si加起来得到S作为她此次旅行快乐值。你能计算出小修的快乐值吗?
代码 :
#include<bits/stdc++.h>
using namespace std;
int main(){
stack <int> h;
int n , val = 0 ;
cin >> n;
while( n-- ){
int hi;
cin >> hi ;
val += h.size();
while( h.size() && h.top() < hi )
h.pop();
h.push( hi );
}
cout << val << endl;
return 0;
}
出处 : http://www.codevs.cn/problem/1531/
该代码利用栈求解.通过栈的后入先出删除前面的低于这座山(会被挡住)的山峰,并用队列的长度表示回头能看到的山峰数
标签:银行 www. erro 输入 amp include 入队 3.3 out
原文地址:https://www.cnblogs.com/wu98/p/8820672.html