CF997A Convert to Ones

题目大意:

给你一个长度为 nn 的01串( n $\leq 3*10^5$ ),你有两种操作:

1.将一个子串翻转,花费 XX

2.将一个子串中的0变成1,1变成0,花费 YY

求你将这个01串变成全是1的串的最少花费。

首先,你要操作的次数一定是这个串中0的段数,操作2覆盖消去一段0,操作1翻转将两段合并成一段

如果单纯考虑操作2,需要进行cnt次(这个串中0的段数),

如果单纯考虑操作1,需要进行cnt-1次(这个串中0的段数)+1(必须进行操作2)。

既然操作1,2的效果是一样的,那么cnt-1次就可以取最小的x,y去操作,最后再加上最后一次覆盖即可。

#include<bits/stdc++.h>

using namespace std;
string s;
int x,y,n;
int main() {
cin>>n>>x>>y;
cin>>s;
int cnt=;
s[s.length()]='';
for(int i=;i<s.length();i++){
if(s[i]==''&&s[i+]=='') ++cnt;
}
if(!cnt) printf("");
else printf("%lld",1ll*min(x,y)*(cnt-)+y);
return ;
}

CF997A Convert to Ones的更多相关文章

  1. 洛谷 CF997A Convert to Ones

    洛谷 CF997A Convert to Ones 洛谷传送门 题意翻译 给你一个长度为 nn 的01串( n \leq 310^5n*≤3∗105 ),你有两种操作: 1.将一个子串翻转,花费 XX ...

  2. 洛谷CF997A:Convert to Ones

    温馨提示: 本题适合先思考再看题解,相信各位神犇都能轻轻松松过掉它. 题目链接: https://www.luogu.com.cn/problem/CF997A 分析: 首先要读懂题,to ones, ...

  3. Convert BSpline Curve to Arc Spline in OpenCASCADE

    Convert BSpline Curve to Arc Spline in OpenCASCADE eryar@163.com Abstract. The paper based on OpenCA ...

  4. Convert.ToInt32()、int.Parse()和(int)三者的区别

    Convert.ToInt32将object类类型转换成int类型,如Convert.ToInt32(session["shuzi"]); (int)适合简单数据类型之间的转换: ...

  5. Leetcode: Convert sorted list to binary search tree (No. 109)

    Sept. 22, 2015 学一道算法题, 经常回顾一下. 第二次重温, 决定增加一些图片, 帮助自己记忆. 在网上找他人的资料, 不如自己动手. 把从底向上树的算法搞通俗一些. 先做一个例子: 9 ...

  6. [LeetCode] Convert a Number to Hexadecimal 数字转为十六进制

    Given an integer, write an algorithm to convert it to hexadecimal. For negative integer, two’s compl ...

  7. [LeetCode] Convert Sorted List to Binary Search Tree 将有序链表转为二叉搜索树

    Given a singly linked list where elements are sorted in ascending order, convert it to a height bala ...

  8. [LeetCode] Convert Sorted Array to Binary Search Tree 将有序数组转为二叉搜索树

    Given an array where elements are sorted in ascending order, convert it to a height balanced BST. 这道 ...

  9. 5 Convert Sorted List to Binary Search Tree_Leetcode

    Given a singly linked list where elements are sorted in ascending order, convert it to a height bala ...

随机推荐

  1. C#的内存管理知识 .

    本章介绍内存管理和内存访问的各个方面.尽管运行库负责为程序员处理大部分内存管理工作,但程序员仍必须理解内存管理的工作原理,了解如何处理未托管的资源. 如果很好地理解了内存管理和C#提供的指针功能,也就 ...

  2. hdu 1512 Monkey King —— 左偏树

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=1512 很简单的左偏树: 但突然对 rt 的关系感到混乱,改了半天才弄对: 注意是多组数据! #includ ...

  3. openstack instance resize Resize error: Unable to resize disk down

  4. PCB 第一个node.js应用

    一.Node安装地址: https://nodejs.org/zh-cn/ 二.Node第一个应用实例 启动webnode.js应用: node webnode.js webnode.js代码: va ...

  5. C. Unusual Product(cf)

    http://codeforces.com/problemset/problem/405/C 题意: 给出一个n*n的矩阵,有q个操作,输入3时,输出A ,A等于第i行乘以第i列的对应元素的和(mod ...

  6. 面试说熟练掌握各种MQ?那你先看看这道题,面试官必问!

    写在前面 我们知道,目前市面上的MQ包括Kafka.RabbitMQ.ZeroMQ.RocketMQ等等. 那么他们之间究竟有什么本质区别,分别适用于什么场景呢? 上述抛出的问题,同样在不少公司的Ja ...

  7. Tempter of the Bone------剪枝

    看了好多别人的  代码,最终还是 感觉 这种代码的风格适合我  下面附上代码 /* 首先 应该充满信心! 先写出来 自己的程序 然后慢慢改 , 如果是 答题思路错误的话 借鉴别人的 代码 再写 */ ...

  8. 【转】DOS与linux的断行字符

    转自:http://www.2cto.com/os/201109/104833.html 今天配置linux的dns服务器,在配置的时候,在linux下修改配置文件感觉很麻烦,于是想到把配置文件拿到w ...

  9. vb.net实现textbox控件输入指定位数小数方法实现。

    Private Sub textbox1_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPres ...

  10. 6.10---springboot的配置