BZOJ 1122 [POI2008]账本BBB 神题
题意:链接略
方法:神题
解析:
ORZORZ
主要的策略还是贪心,想到修改的符号是定值之后再枚举第二个操作就可以解决。
代码:
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#define N 1000100
using namespace std;
typedef long long ll;
ll n,p,q,x,y;
char s[N];
ll sum[N<<1];
int que[N<<1];
ll mi[N];
int calc[N];
ll allsum;
int main()
{scanf("%lld%lld%lld%lld%lld",&n,&p,&q,&x,&y);scanf("%s",s+1);for(int i=n<<1;i>n;i--)sum[i]=sum[i+1]+(s[i-n]=='+'?1:-1);allsum=sum[n+1];for(int i=n;i>=1;i--)sum[i]=sum[i+1]+(s[i]=='+'?1:-1);int head=1,tail=0;for(int i=n<<1;i>=1;i--){while(head<=tail&&sum[i]>sum[que[tail]])tail--;que[++tail]=i;while(head<=tail&&que[head]-i>=n)head++;if(i<=n)mi[i]=sum[i]-sum[que[head]];}ll ans=0x7f7f7f7f7f7f7f7fll;ll nowtmp;ll tmpcalc=(q-p-allsum)/2;calc[1]=1;for(int i=2;i<=n;i++)calc[i]=n-i+2;for(int i=0;i<n;i++){nowtmp=(ll)i*y+abs(tmpcalc)*x;mi[calc[i+1]]+=p+max(tmpcalc,0ll)*2ll;if(mi[calc[i+1]]<0)nowtmp+=2*x*((1-mi[calc[i+1]])/2ll);ans=min(ans,nowtmp);}printf("%lld\n",ans);
}
BZOJ 1122 [POI2008]账本BBB 神题相关推荐
- BZOJ 1122 [POI2008]账本BBB
Description 一个长度为n的记账单,+表示存¥1,-表示取¥1.现在发现记账单有问题.一开始本来已经存了¥p,并且知道最后账户上还有¥q.你要把记账单修改正确,使得 1:账户永远不会出现负数 ...
- Bzoj 4408: [Fjoi 2016]神秘数 可持久化线段树,神题
4408: [Fjoi 2016]神秘数 Time Limit: 10 Sec Memory Limit: 128 MB Submit: 177 Solved: 128 [Submit][Stat ...
- 洛谷 P2679 子串 【dp神题】【滚动数组】【2015 noip d2t2】
偷个懒,题解看这里:https://www.luogu.org/problemnew/solution/P2679 看作者 GuessYCB 写的 ===2018.9.6=== 这一次算理解深一点了 ...
- 【CF913F】Strongly Connected Tournament 概率神题
[CF913F]Strongly Connected Tournament 题意:有n个人进行如下锦标赛: 1.所有人都和所有其他的人进行一场比赛,其中标号为i的人打赢标号为j的人(i<j)的概 ...
- [Bzoj4817] [Sdoi2017]树点涂色 (LCT神题)
4817: [Sdoi2017]树点涂色 Time Limit: 10 Sec Memory Limit: 128 MB Submit: 629 Solved: 371 [Submit][Stat ...
- 博大考神 职称 计算机 看什么,word2003博大考神题库答案职称计算机2
word2003博大考神题库答案职称计算机2 2008年07月11日 星期五 08:54 四.段落排版: 1.要求:利用"显示格式"任务窗格比较第一自然段和第三自然段中的" ...
- Tyvj P3572 BZOJ 1122 账本BBB
描述 一个长度为n的记账单,+表示存¥1,-表示取¥1. 现在发现记账单有问题. 一开始本来已经存了¥p,并且知道最后账户上还有¥q. 你要把记账单修改正确,使得 1:账户永远不会出现负数: ...
- BZOJ 4180: 字符串计数 后缀自动机 + 矩阵乘法 + 二分(神题)
Description SD有一名神犇叫做Oxer,他觉得字符串的题目都太水了,于是便出了一道题来虐蒟蒻yts1999. 他给出了一个字符串T,字符串T中有且仅有4种字符 'A', 'B', 'C', ...
- Bzoj 1566: [NOI2009]管道取珠(动态规划-神题)
以下内容来自ShallWe's Blog 题目 题目链接 Description Input 第一行包含两个整数n, m,分别表示上下两个管道中球的数目. 第二行为一个AB字符串,长度为n,表示上管道 ...
- BZOJ 1124: [POI2008]枪战Maf(构造 + 贪心)
题意 有 \(n\) 个人,每个人手里有一把手枪.一开始所有人都选定一个人瞄准(有可能瞄准自己).然后他们按某个顺序开枪,且任意时刻只有一个人开枪. 因此,对于不同的开枪顺序,最后死的人也不同. 问最 ...
最新文章
- 智源研究院发布世界首个“机器学习通用数学符号集”
- 如何让热点图支持大数据
- python编程案例教程答案-Python程序开发案例教程
- SurfaceView 和 GLSurfaceView
- Machine Learning——octave矩阵操作(2)——DAY3
- 调用Android自带日历功能(日历列表单、添加一个日历事件)
- HarmonyOS 开发避坑指南
- sql能查到数据 dataset对象里面没有值_spark系列:RDD、DataSet、DataFrame的区别
- Python xlsx转xls xls文件修复
- NPOI Word 原有表格增加一行
- 英语十大词性之四 - 副词
- 做事的态度与工作态度
- 日语输入法的输入规则
- 微信公众号关键词自动回复大全
- sqlDBX 链接 mysql 提示ODBC驱动不正确
- Matlab中的正态分布概率函数
- 小米平板4 android版本,小米平板4-4plus
- mysql修改初始密码/ 重置默认密码 You must reset your password using ALTER USER statement
- 中南大学python程序设计实践_学院承办的第三届“全国高校Python语言与计算生态教学研讨会”圆满召开...
- 一个自学前端的4年工作总结【三十而立,拒绝躺平】