P7083 [NWRRC2013] Energy Tycoon

Vasya 正在玩一款新的电脑游戏 Energy Tycoon

游戏的规则非常简单:

有一行 n 个空位。

有一些能源装置,每个能源装置会占用 11 或 22 个相邻的空位,并且每回合产生一个单位的能量。

在游戏里,每个回合可以建造一个新的能源装置(也可以不建造)。如果没有地方建新的能源装置,可以拆除一些旧的能源装置。

每一回合过后,电脑会统计这一回合内所有已经建造的能源装置产生的能量,并将其加到总分中。

Vasya 已经知道了每个回合他可以建造的能源装置的类型。现在他想知道,他能得到的最大分数是多少。你能帮他吗?

0|1输入输出样例

输入 #1
3 21121
输出 #1
10
输入 #2
2 12
输出 #2
2
输入 #3
2 211
输出 #3
4
复制代码
#include<bits/stdc++.h> using namespace std; string s; long long n,res,now,f;//切记要开long long ,不开过不了 int main() { cin>>n; cin>>s; for(int i=0;i<s.size();i++) { if(s[i]=='2'&&n>=2)//如果是2并且空位足够 { f++; n-=2; now+=1; res+=now; // cout<<i<<"----"<<res<<endl; } else if(s[i]=='2'&&n<2) res+=now;//如果空位不够 if(s[i]=='1')//分情况 { if(n>=1) n-=1,now+=1,res+=now;//如果空位够,直接放 else if(f==0&&n<1) res+=now; //不够的话,如果没有2,那就不放 else if(f>0&&n<1) n+=1,f--,res+=now;//如果有2,那就把2拆了,反正价值是一样的,多个空位 //cout<<i<<"----"<<res<<"----"<<f<<endl; } } cout<<res; return 0; }
复制代码

 

1|0 


__EOF__

本文作者Sakurajimamai
本文链接https://www.cnblogs.com/o-Sakurajimamai-o/p/17453769.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   o-Sakurajimamai-o  阅读(6)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
-- --
点击右上角即可分享
微信分享提示