Codeforces Gym 100269E Energy Tycoon 贪心
2016-02-18 22:47
453 查看
Energy Tycoon
题目连接:
http://codeforces.com/gym/100269/attachmentsDescription
Little Vasya is playing a new computer game — turn-based strategy “Energy Tycoon”.The rules of the game are quite simple:
• The board contains n slots arranged in a line.
• There are power plants, one power plant occupies one or two consecutive slots, and produces one
unit of energy.
• Each turn the game allows you to build one new power plant, you can put it on the board if you
wish. If there is no place for the new power plant, you can remove some older power plants.
• After each turn, the computer counts the amount of energy produced by the power plants on the
board and adds it to the total score.
2
2
1
2 1
1
1 1
2
1 1
1
1 1 1
Vasya already knows the types of power plant he will be able to build each turn. Now he wants to know,
what the maximum possible score he can get is. Can you help him?
Input
The first line of the input contains one integer n (1 ≤ n ≤ 100 000) — the number of slots on the board.The second line contains the string s. The i-th character of the string is 1 if you can build one-slot power
plant at the i-th turn and the character is 2 if you can build two-slot power plant at the i-th turn. The
number of turns does not exceed 100 000.
Output
The output should contain a single integer — the maximal score that can be achievedSample Input
321121
Sample Output
10Hint
题意
有长度为n个格子,你有两种操作,1是放一个长度为1的东西上去,2是放一个长度为2的东西上去每个东西在每秒钟都会产生1的能力。
然后问你怎么放才能使得最后能力最大,输出出来
题解:
贪心,最后肯定1越多越好所以我们放1的时候,注意一下,如果放不下的话,就把其中一个2扔掉,然后放1就好了
代码
#include<bits/stdc++.h> using namespace std; string s; int main() { freopen("energy.in","r",stdin); freopen("energy.out","w",stdout); int n; cin>>n; cin>>s; long long ans = 0,a1 = 0,a2 = 0; for(int i=0;i<s.size();i++) { if(s[i]=='1') { if(a1+a2*2+1<=n) a1++; else if(a2) { a2--; a1++; } } if(s[i]=='2') { if(a1+a2*2+2<=n) a2++; } ans+=(a1+a2); } cout<<ans<<endl; }
相关文章推荐
- 随便感慨一哈吧
- 通过文件保存和更新信息
- 用find_if查找vector内对象的成员 http://blog.csdn.net/zhongguoren666/article/details/7629610
- 使用 VisualVM 进行性能分析及调优(转)
- “我跟你赌,不是看你要什么,而是看我有什么!!!“”
- 使用Qt制作记事本软件程序
- Java [Leetcode 125]Valid Palindrome
- LeetCode96. Unique Binary Search Trees简单,简洁
- PAT1024科学计数法
- 内心的不安全感
- iOS 沙盒目录结构解析
- 测试
- 测试
- 1093. Count PAT's (25)
- 1092. To Buy or Not to Buy (20)
- poj 1321 棋盘问题
- Qt处理HTML格式文本的方法
- [Unity]场景精灵之激光炮
- Zeroc Ice开发环境搭建
- android studio启动慢解决办法