题解 P6013 【压岁钱】
月赛\(\text{Div2T1}\),窝唯一一道\(\text{AC}\)的题(我太菜啦!)
\(\text{solution:}\)
根据题面,显然三个操作对应三种情况,我们发现每次这三种操作均不涉及前面的数,所以考虑边读边做(暂时不用考虑操作三,它是此题中唯一一个难点,待会再说)
该数据范围在\(\text{int}\)范围内。使用变量\(\text{money}\)记录当前的压岁钱的多少,\(\text{ans}\)记录钱不够花的事件数。至此,我们已经可以完美解决前两个操作。核心代码如下。
for(int i=1;i<=m;i++){
money+=f[i];
cin>>t;
if(t==1){
cin>>a;
money+=a;
}
else if(t==2){
cin>>a;
if(money<a)ans++;
else money-=a;
}
}
接下来单独考虑操作三。一种显而易见的思路:用一个数组,每当进行操作三时,该数组下标为 \(b\) 的地方值加上 \(a\) ,注意!是加上 \(a\) 而不是赋值为 \(a\) ,因为注意到数据有可能出现多个 \(a\) 封印在同一事件的情况。同时,在每次循环时最前面让\(\text{ans}\)加上此数组下标为 \(i\) 的值。当没有压岁钱封印在事件 \(i\) 时加上的是0,反之,加上的则是那个数组下标为 \(i\) ,即,在 \(i\) 事件解封的压岁钱数。
至此,思路整理完毕。完整(\(\text{AC}\))代码:
#include <iostream>
#include <cstdio>
using namespace std;
unsigned long long m,t,a,b,money,ans,f[10000001];
int main(){
cin>>m;
for(int i=1;i<=m;i++){
money+=f[i];
cin>>t;
if(t==1){
cin>>a;
money+=a;
}
else if(t==2){
cin>>a;
if(money<a)ans++;
else money-=a;
}
else if(t==3){
cin>>a>>b;
money-=a;
f[b]+=a; //有可能多个压岁钱封印在同一时刻
}
}
cout<<ans<<endl;
return 0;
}
题解 P6013 【压岁钱】的更多相关文章
- 2016 华南师大ACM校赛 SCNUCPC 非官方题解
我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...
- noip2016十连测题解
以下代码为了阅读方便,省去以下头文件: #include <iostream> #include <stdio.h> #include <math.h> #incl ...
- BZOJ-2561-最小生成树 题解(最小割)
2561: 最小生成树(题解) Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1628 Solved: 786 传送门:http://www.lyd ...
- Codeforces Round #353 (Div. 2) ABCDE 题解 python
Problems # Name A Infinite Sequence standard input/output 1 s, 256 MB x3509 B Restoring P ...
- 哈尔滨理工大学ACM全国邀请赛(网络同步赛)题解
题目链接 提交连接:http://acm-software.hrbust.edu.cn/problemset.php?page=5 1470-1482 只做出来四道比较水的题目,还需要加强中等题的训练 ...
- 2016ACM青岛区域赛题解
A.Relic Discovery_hdu5982 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Jav ...
- poj1399 hoj1037 Direct Visibility 题解 (宽搜)
http://poj.org/problem?id=1399 http://acm.hit.edu.cn/hoj/problem/view?id=1037 题意: 在一个最多200*200的minec ...
- 网络流n题 题解
学会了网络流,就经常闲的没事儿刷网络流--于是乎来一发题解. 1. COGS2093 花园的守护之神 题意:给定一个带权无向图,问至少删除多少条边才能使得s-t最短路的长度变长. 用Dijkstra或 ...
- CF100965C题解..
求方程 \[ \begin{array}\\ \sum_{i=1}^n x_i & \equiv & a_1 \pmod{p} \\ \sum_{i=1}^n x_i^2 & ...
随机推荐
- 138.更改session的存储机制
修改session的存储机制: 默认情况下,session数据时存储到数据库中,当然也可以将session数据存储到其他地方.可以通过设置SESSION_ENGINE来更改session的存储位置,这 ...
- Nginx proxy_cache 缓存静态文件
原文链接:https://blog.csdn.net/bjgaocp/article/details/87867521 创建缓存目录mkdir /tmp/ngx_cache 添加下面语句在http{ ...
- 最大流算法之Ford-Fulkerson算法与Edmonds–Karp算法
引子 曾经很多次看过最大流的模板,基础概念什么的也看了很多遍.也曾经用过强者同学的板子,然而却一直不会网络流.虽然曾经尝试过写,然而即使最简单的一种算法也没有写成功过,然后对着强者大神的代码一点一点的 ...
- 更改pip为豆瓣源加速下载
需求 Python默认pip下载太慢,更改pip为豆瓣源 文件位置 Git Bash Windows $ vi ~/pip/pip.ini Linux $ vi ~/.pip/pip.conf 内容 ...
- Vue中axios有关请求头的几点小结
在Vue前端中向后端发起http请求会有着两种写法:一种是在vue文件中直接导入axios模板,另外一种是使用Vue的属性$http. 1.在第一种方式中,在同一个工程中所添加的vue文件直接使用ax ...
- Ubuntu中chrome浏览器安装、卸载
一.卸载 sudo apt-get autoremove google-chrome-stable 删除下载源:sudo rm /etc/apt/sources.list.d/google-chrom ...
- (转)classload和class.forname()区别
转自:http://carl-java.iteye.com/blog/978680 java中class.forName和classLoader都可用来对类进行加载.前者除了将类的.class文件加载 ...
- django学习 session保持登录,且登出
学一点记一点 刚刚进来的时候突然发现,博客园的主页在缩小的时候会发生一些挤压,有点意思 今天刚看了session,感觉之前太迷茫,把问题想得过于复杂了. 我这个是建立在有登录和注册的功能上的演示. 首 ...
- 04-Java基础语法【IDEA、方法】
重要内容记录: 01.IDE介绍 IDE(Integarted Development Environment)是Java集成开发环境,是一种专门用来提高Java开发效率的软件. 免费的IDE:Ecl ...
- wpf 程序启动显示图片
一.设置图片的生成操作 程序启动时会出现0.5秒的图片显示,再显示程序界面. 二.写代码实现相同效果 /// <summary> /// App.xaml 的交互逻辑 /// </s ...