ACM 盗梦空间
盗梦空间
- 描述
-
《盗梦空间》是一部精彩的影片,在这部电影里,Cobb等人可以进入梦境之中,梦境里的时间会比现实中的时间过得快得多,这里假设现实中的3分钟,在梦里就是1小时。
然而,Cobb他们利用强效镇静剂,可以从第一层梦境进入第二层梦境,甚至进入三层,四层梦境,每层梦境都会产生同样的时间加速效果。那么现在给你Cobb在各层梦境中经历的时间,你能算出现实世界过了多长时间吗?
比如,Cobb先在第一层梦境待了1个小时,又在第二层梦境里待了1天,之后,返回第一层梦境之后立刻返回了现实。
那么在现实世界里,其实过了396秒(6.6分钟)
- 输入
- 第一行输入一个整数T(0<=T<=100),表示测试数据的组数。
每组测试数据的第一行是一个数字M(3<=M<=100)
随后的M行每行的开头是一个字符串,该字符串如果是"IN" 则Cobb向更深层的梦境出发了,如果是字符串"OUT"则表示Cobb从深层的梦回到了上一层。如果是首字符串是"STAY"则表示Cobb在该层梦境中停留了一段时间,本行随后将是一个整数S表示在该层停留了S分钟(1<=S<=10000000)。数据保证在现实世界中,时间过了整数秒。 - 输出
- 对于每组测试数据,输出现实世界过的时间(以秒为单位)。
- 样例输入
-
1
6
IN
STAY 60
IN
STAY 1440
OUT
OUT - 样例输出
-
396
此题主要是用map进行存储,每次遇到IN就将层数加一,每次遇到OUT时就将层数减一,遇到STAY就将时间放入map中,注意map的键是层数,值是时间,
如果有相同的键不同的时间,则将时间累加
如果map中没有键则将新的键值插入map中
注意每层的时间转换是1/20,而且map具有自动按照键排序功能,故必须从map最后一个元素算起,不断向上退出梦境,累加时间
#include <string>
#include <vector>
#include <iostream>
#include <algorithm>
#include <map> using namespace std; int main(){
int T;
cin >> T;
for(int icase = ; icase < T; ++ icase ){
int m;
cin >> m;
string type;
int cnt = ;
long long time = ;
map<int,long long> dream;
for(int i = ; i < m ; ++ i){
cin >> type;
if(type == "IN") cnt ++;
else if(type == "OUT")cnt --;
else{
cin >> time;
time *=;
map<int,long long>::iterator iter = dream.find(cnt);
if(iter!=dream.end()) iter->second+=time;
else dream.insert(make_pair(cnt,time));
}
}
long long res;
int index ;
bool first = true;
for(map<int, long long>::reverse_iterator iter = dream.rbegin(); iter!=dream.rend(); ++ iter ){
if(first){
res = dream.rbegin()->second;
index = dream.rbegin() -> first;
first = false;
}else{
res = res//(index-iter->first)+iter->second;
index = iter->first;
} }
cout<<res//index<<endl;
} }此题遇到问题主要是c++中的map使用不熟悉,map进行反向迭代时要用reverse_iterator,进行查找时要用map自身的find函数,不能用algorithm的查找函数
ACM 盗梦空间的更多相关文章
- SCNU ACM 2016新生赛决赛 解题报告
新生初赛题目.解题思路.参考代码一览 A. 拒绝虐狗 Problem Description CZJ 去排队打饭的时候看到前面有几对情侣秀恩爱,作为单身狗的 CZJ 表示很难受. 现在给出一个字符串代 ...
- SCNU ACM 2016新生赛初赛 解题报告
新生初赛题目.解题思路.参考代码一览 1001. 无聊的日常 Problem Description 两位小朋友小A和小B无聊时玩了个游戏,在限定时间内说出一排数字,那边说出的数大就赢,你的工作是帮他 ...
- acm结束了
最后一场比赛打完了.之前为了记录一些题目,开了这个博客,现在结束了acm,这个博客之后也不再更新了. 大家继续加油!
- 关于ACM的总结
看了不少大神的退役帖,今天终于要本弱装一波逼祭奠一下我关于ACM的回忆. 从大二上开始接触到大三下结束,接近两年的时间,对于大神们来说两年的确算不上时间,然而对于本弱来说就是大学的一半时光.大一的懵懂 ...
- 第一届山东省ACM——Phone Number(java)
Description We know that if a phone number A is another phone number B’s prefix, B is not able to be ...
- 第一届山东省ACM——Balloons(java)
Description Both Saya and Kudo like balloons. One day, they heard that in the central park, there wi ...
- ACM之鸡血篇
一匹黑马的诞生 故事还要从南京现场赛讲起,话说这次现场赛,各路ACM英雄豪杰齐聚南京,为争取亚洲总舵南京分舵舵主之职位,都使出了看 家本领,其中有最有实力的有京城两大帮清华帮,北大帮,南郡三大派上交派 ...
- 【codeforces 415D】Mashmokh and ACM(普通dp)
[codeforces 415D]Mashmokh and ACM 题意:美丽数列定义:对于数列中的每一个i都满足:arr[i+1]%arr[i]==0 输入n,k(1<=n,k<=200 ...
- acm 1002 算法设计
最近突然想往算法方向走走,做了做航电acm的几道题 二话不说,开始 航电acm 1002 题主要是处理长数据的问题,算法原理比较简单,就是用字符数组代替int,因为int太短需要处理的数据较长 下面是 ...
随机推荐
- gitlab 用户头像不能显示的问题
[root@GitLab assets]# cat /etc/gitlab/gitlab.rb # Change the external_url to the address your users ...
- RabbitMQ驱动简单例子
using RabbitMQ.Client; using RabbitMQ.Client.Events; using System; using System.Collections.Generic; ...
- Pyqt QListWidget 展示系统环境变量
今天学习了下Pyqt的 QListWidget 控件 我们先看下这个图片 这张图片就是典型的listWidget效果,我们今天就仿这样布局新建个ListWidget 在网上找了个关于QListWidg ...
- 【翻译十四】java-并发之保护块儿
Guarded Blocks Threads often have to coordinate their actions. The most common coordination idiom is ...
- JAVA和PYTHON同时实现AES的加密解密操作---且生成的BASE62编码一致
终于有机会生产JAVA的东东了. 有点兴奋. 花了一天搞完.. java(关键key及算法有缩减): package com.security; import javax.crypto.Cipher; ...
- javascript 中this详解
this是每一个想要深入学习Javascript的人必过的一关,我为this看过很多书查过很多资料,虽然对this有了一定的了解并且也经常使用this,但是如果有人问我 this是什么呀? 我依旧不 ...
- sqlplus使用(一)
一,sqlplus 环境变量 sqlplus的环境变量(来自SQL*Plus® User's Guide and Reference Release 11.2) Parameter or Variab ...
- php开发(TP框架使用)
由于最近玩了PHP,我向来有个原则,学一门服务端语言至少得玩两个框架,前段时间用PHP写了些demo+小项目,看见身边有人在使用TP,于是乎鼓捣学习学习.如何学,无非也就是做个小demo:就目前看来现 ...
- C# 文件读取方法,自己写的例子,保存一下,备用
/// <summary> /// 将output.config内容传到app.config /// </summary> string ReadString; //两个地址 ...
- Mac系统修改Intellij Idea默认JDK版本
Intellij IDEA 默认情况下,使用的jdk的版本是1.6,当第一次启动IDEA的时候,如果系统中未安装jdk,则系统会自动到苹果官网下载jdk安装文件.如果你的系统已经安装了jdk1.7或是 ...