博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Codeforce500C New Year Book Reading
阅读量:5223 次
发布时间:2019-06-14

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

题意:给你n本书的重量,m天读书的顺序,书是一堆在一起的,每次拿一本书要把去其他书搬下来,拿出这本书, 然后把这些书搬上去,读完这本书要把书放在最上面,问按照读书顺序最少要搬多重的书

题解:直接贪心就可以了,尽量靠前的书要放在上面,模拟一遍就可以,。。写错了一个地方,调了好久。

#include 
#define ll long long#define maxn 100100using namespace std;stack
s;map
mp;int w[maxn], d[maxn], temp[maxn];int main(){ int n, m, ans = 0, to, num = 0; cin>>n>>m; for(int i=1;i<=n;i++) cin>>w[i]; for(int i=1;i<=m;i++) cin>>d[i]; for(int i=1;i<=m;i++) if(mp[d[i]] == 0) temp[num++] = d[i],mp[d[i]]=1; for(int i=num-1;i>=0;i--) s.push(temp[i]); n = s.size(); num = 0; for(int i=1;i<=m;i++){ while(1){ to = s.top();s.pop(); if(to == d[i]) break; temp[num++] = to; ans += w[to]; } for(int j=num-1;j>=0;j--) s.push(temp[j]); num = 0; s.push(d[i]); } cout<
<

 

转载于:https://www.cnblogs.com/Noevon/p/7277224.html

你可能感兴趣的文章
「Unity」委托 将方法作为参数传递
查看>>
Unity学习疑问记录之隐藏与显示物体
查看>>
设计模式-学习
查看>>
button标签点击实现数量加减
查看>>
重置GNOME-TERMINAL
查看>>
quartz 实现调度任务 SchedulerManager
查看>>
new jordans 9 Nets
查看>>
CSS3伪类:target
查看>>
hadoop SecondaryNameNode和NameNode
查看>>
VS2015安装开发ios android
查看>>
网站构建
查看>>
[翻译] FastReport "Text" 对象中使用表达式
查看>>
redis哨兵集群、docker入门
查看>>
laravel学习笔记(三)视图渲染
查看>>
rmdir
查看>>
SGU 219 Synchrograph tarjian找环,理解题意,图论 难度:3
查看>>
[翻译][架构设计]The Clean Architecture
查看>>
状态压缩DP
查看>>
Shell从入门到精通进阶之四:流程控制
查看>>
腾讯QQ、新浪微博等知名社交网络图标素材
查看>>