题意:链接略

方法:神题

解析:

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 神题相关推荐

  1. BZOJ 1122 [POI2008]账本BBB

    Description 一个长度为n的记账单,+表示存¥1,-表示取¥1.现在发现记账单有问题.一开始本来已经存了¥p,并且知道最后账户上还有¥q.你要把记账单修改正确,使得 1:账户永远不会出现负数 ...

  2. Bzoj 4408: [Fjoi 2016]神秘数 可持久化线段树,神题

    4408: [Fjoi 2016]神秘数 Time Limit: 10 Sec  Memory Limit: 128 MB Submit: 177  Solved: 128 [Submit][Stat ...

  3. 洛谷 P2679 子串 【dp神题】【滚动数组】【2015 noip d2t2】

    偷个懒,题解看这里:https://www.luogu.org/problemnew/solution/P2679 看作者 GuessYCB  写的 ===2018.9.6=== 这一次算理解深一点了 ...

  4. 【CF913F】Strongly Connected Tournament 概率神题

    [CF913F]Strongly Connected Tournament 题意:有n个人进行如下锦标赛: 1.所有人都和所有其他的人进行一场比赛,其中标号为i的人打赢标号为j的人(i<j)的概 ...

  5. [Bzoj4817] [Sdoi2017]树点涂色 (LCT神题)

    4817: [Sdoi2017]树点涂色 Time Limit: 10 Sec  Memory Limit: 128 MB Submit: 629  Solved: 371 [Submit][Stat ...

  6. 博大考神 职称 计算机 看什么,word2003博大考神题库答案职称计算机2

    word2003博大考神题库答案职称计算机2 2008年07月11日 星期五 08:54 四.段落排版: 1.要求:利用"显示格式"任务窗格比较第一自然段和第三自然段中的" ...

  7. Tyvj P3572 BZOJ 1122 账本BBB

    描述 一个长度为n的记账单,+表示存¥1,-表示取¥1.  现在发现记账单有问题.  一开始本来已经存了¥p,并且知道最后账户上还有¥q.  你要把记账单修改正确,使得  1:账户永远不会出现负数:  ...

  8. BZOJ 4180: 字符串计数 后缀自动机 + 矩阵乘法 + 二分(神题)

    Description SD有一名神犇叫做Oxer,他觉得字符串的题目都太水了,于是便出了一道题来虐蒟蒻yts1999. 他给出了一个字符串T,字符串T中有且仅有4种字符 'A', 'B', 'C', ...

  9. Bzoj 1566: [NOI2009]管道取珠(动态规划-神题)

    以下内容来自ShallWe's Blog 题目 题目链接 Description Input 第一行包含两个整数n, m,分别表示上下两个管道中球的数目. 第二行为一个AB字符串,长度为n,表示上管道 ...

  10. BZOJ 1124: [POI2008]枪战Maf(构造 + 贪心)

    题意 有 \(n\) 个人,每个人手里有一把手枪.一开始所有人都选定一个人瞄准(有可能瞄准自己).然后他们按某个顺序开枪,且任意时刻只有一个人开枪. 因此,对于不同的开枪顺序,最后死的人也不同. 问最 ...

最新文章

  1. 智源研究院发布世界首个“机器学习通用数学符号集”
  2. 如何让热点图支持大数据
  3. python编程案例教程答案-Python程序开发案例教程
  4. SurfaceView 和 GLSurfaceView
  5. Machine Learning——octave矩阵操作(2)——DAY3
  6. 调用Android自带日历功能(日历列表单、添加一个日历事件)
  7. HarmonyOS 开发避坑指南
  8. sql能查到数据 dataset对象里面没有值_spark系列:RDD、DataSet、DataFrame的区别
  9. Python xlsx转xls xls文件修复
  10. NPOI Word 原有表格增加一行
  11. 英语十大词性之四 - 副词
  12. 做事的态度与工作态度
  13. 日语输入法的输入规则
  14. 微信公众号关键词自动回复大全
  15. sqlDBX 链接 mysql 提示ODBC驱动不正确
  16. Matlab中的正态分布概率函数
  17. 小米平板4 android版本,小米平板4-4plus
  18. mysql修改初始密码/ 重置默认密码 You must reset your password using ALTER USER statement
  19. 中南大学python程序设计实践_学院承办的第三届“全国高校Python语言与计算生态教学研讨会”圆满召开...
  20. 一个自学前端的4年工作总结【三十而立,拒绝躺平】

热门文章

  1. java scanner close_Java Scanner close()方法
  2. SQL常用基础参考语句
  3. php saas,saas系统是什么
  4. ES stored fields作用
  5. java代码-zip解压不可预料的压缩文件末端一级压缩包中的文件为0kb以及目录创建流会报错
  6. class uesrfun.php,帝国cms教程:列表页面批量添加Tags -电脑资料
  7. 一个小型VC项目的开发
  8. xlsm文件格式和xlsm文件打开方法介绍
  9. 7 21 第一次团队赛——————写给队友
  10. Craft CMS简介