Codeforces Round #493 (Div. 2) C. Convert to Ones 乱搞_构造_好题

题意:
给你一个长度为 nnn010101串 ,你有两种操作:

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

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

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

首先,我们可以将串按照0,10,10,1这划分,例如:
«00011001110»−>«000»+«11»+«00»+«111»+«0»«00011001110» -> «000» + «11» + «00» + «111» + «0»«00011001110»>«000»+«11»+«00»+«111»+«0»,可以看出只有相邻的010101串间进行操作才是有意义的。
将左面的 000 串与右面的 111 进行 “交换” 有两种办法:
1.将000 同一修改为 111.
2.将该串与靠右的一个111串交换(即翻转).
由于题中X,YX,YX,Y 是一个确定的值,这就使得我们每次的交换方法一定是相同的。然而,如果一直用第 222 种方法进行变换,最终必定还要使用一次 111 操作来将已经连城的一排 000, 统一修改为 111。即最小花费为:(p−1)∗min(x,y)+y(p-1)*min(x,y)+y(p1)min(x,y)+yppp 为原序列中 000 串的数量。

Code:

#include<cstdio>
#include<algorithm>
#include<cstring>
#include<iostream>
using namespace std;
const int maxn = 300000 + 4;
int nex[maxn];
char str[maxn];
int main()
{int n, x, y, cnt = 0;scanf("%d%d%d",&n,&x,&y);scanf("%s",str + 1);str[0] = str[1] == '1' ? '0' : '1'; for(int i = 1;i <= n; ++i) if(str[i] == '0' && str[i] != str[i - 1]) ++cnt;if(cnt == 0) printf("0");else cout << (long long)(cnt - 1) * min(x, y) + y;return 0;
}

转载于:https://www.cnblogs.com/guangheli/p/9845121.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/250544.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[T-ARA][그녀를 보면][看着那个女人的话]

歌词来源&#xff1a;http://music.163.com/#/song?id29343995 作曲 : 코난 [作曲 : Ko-nan] 作词 : 코난/로코 [作词 : Ko-nan-/lo-Ko] baby i hate you [baby i hate you] but i love you [but i love you] cant live without you [cant live without you] baby i hate you …

node --- 连接mysql(docker环境) Sequelize库

mysql 数据库 [1] 首先配置 docker 环境 采用 docker-compose 方法 源码: /test-mysql/docker-compose.yml version: 3.1 services:mysql:image: mysqlcommand: --default-authentication-pluginmysql_native_passwordrestart: alwaysenvironment:MYSQL_ROOT_PASSWORD: examp…

Java-接口练习

Java-接口练习 编写2个接口&#xff1a;InterfaceA和InterfaceB&#xff1b;在接口InterfaceA中有个方法voidprintCapitalLetter()&#xff1b;在接口InterfaceB中有个方法void printLowercaseLetter()&#xff1b;然 后写一个类Print实现接口InterfaceA和InterfaceB&#xff0…

类模板与运算符重载(一个简单的例子)

类模板与运算符重载&#xff08;一个简单的例子&#xff09; 标签&#xff08;空格分隔&#xff09;&#xff1a; C 算法竞赛 下面是一段简单的代码&#xff0c;表示我们建立了一个类模板Vector&#xff0c;可以看做是对STL中vector的简单实现。 为了让这个Vector支持通过下标…

Java 试题一

Java 试题一 1、GC是什么? 为什么要有GC 答&#xff1a;GC是垃圾收集的意思&#xff08;Gabage Collection&#xff09;,内存处理是编程人员容易出现问题的地方&#xff0c; 忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃&#xff0c;Java提供的GC功能可以自动 …

操作系统 --- [笔记]功能、组成

操作系统的作用 管理计算机硬件充当计算机用户和计算机硬件的中介(操作系统控制硬件,协调各个用户应用程序的硬件) 计算机系统的资源 CPU时间、内存空间、文件存储空间、I/O设备等 操作系统的定义 如何定义一个操作系统: 计算机系统的根本目的是,执行用户程序并且更容易解…

Java 试题二

Java 试题二 1、哪个选项和show函数重载 class Demo{ void show(int a,int b,float c){} } A.void show(int a,float c,int b){}//yes B,void show(int a,int b,float c){}//一模一样。不可以出现在同一个类中。 C.int show(int a,float c,int b){return a;}//yes。 D.in…

Python之简单验证码实现

def v_code(): ret for i in range(5): num random.randint(0,9) alf chr(random.randint(65,122)) s str(random.choice([num,alf])) ret s return retprint(v_code())转载于:https://www.cnblogs.com/geeker-xjl/p/8809915.html

测绘软件使用体会

进入石家庄铁道大学已经两年了&#xff0c;学习测绘工程专业也已经两年了&#xff0c;大一的时候大多是对测绘不了解&#xff0c;到了大二的时候上半学期我就开始了解和使用一些测绘专业相关的软件&#xff0c;在大二下半学期实习的时候更是深入的学习和使用测绘软件&#xff0…

javascript --- event loop

栗子1 求下面函数的输出 console.log(script start);setTimeout(() > {console.log(setTimeoout); }, 0);Promise.resolve().then(function(){console.log(promise1); }).then(function(){console.log(promise2); }) console.log(script end);说明: 在"promise2"…

sublime 设置自动换行

1.打开sublime,点击preferences -> settings 2.将word_wrap的值由auto修改为true&#xff08;若没有word_wrap&#xff0c;手动添加&#xff09; 转载于:https://www.cnblogs.com/hitwgs/p/8821316.html

Java 试题三

Java 试题三 1、java类是否可以多继承&#xff0c;怎么实现多继承&#xff1f; 答&#xff1a;java没有多继承&#xff0c;但可以通过接口的形式来达到多继承的目地。 2、我比较两个String总是false&#xff0c;但是它们明明都是”abc” &#xff01; 答&#xff1a;比较Str…

Cent os常见操作命令

1.查看防火墙状态&#xff1a;firewall-cmd –-state 2.关闭防火墙&#xff1a;systemctl stop firewalld.service 3.禁止防火墙开机启动&#xff1a;systemctl disable firewalld.service 4.关闭selinux&#xff1a;vi /etc/selinux/config&#xff0c;然SELINUXdisabled 5.查…

koa --- 使用中间件多层级抛出错误

说明 能够熟练的掌握错误的抛出,可以在一定程度上提高代码的开发效率和可读性 构造错误 本栗采用调用一个不存在的函数来抛出错误 const Koa require(koa); const app new Koa();// 响应时间输出中间件 app.use(async (ctx, next) > {await next();// 获取响应头,印证…

电脑的真正价值

1.不是应用程序&#xff0c;而是开发程序 2.高级语言就像是人类的语言&#xff0c;低级语言就像是一个全心全意帮我的社交专家&#xff0c;他帮我说服电脑实现我的指令 3.高级语言就是字节码&#xff0c;低级语言帮我转换成机器码 4.有时候&#xff0c;高级语言的一个眼神&…

Java 试题四

Java 试题四 1、abstract class 和interface 有什么区别? 【基础】 答&#xff1a;声明方法的存在而不去实现它的类被叫做抽象类&#xff08;abstract class&#xff09;&#xff0c;它用于要创建一个体现某些基本行为的类&#xff0c; 并为该类声明方法&#xff0c;但不能…

PyInstaller用法

pyinstaller定义&#xff1a;PyInstaller是一个压缩python文件成为可执行程序的一个软件。 pyinstaller工作原理&#xff1a;① 它会扫描你所有的Python文档&#xff0c;并分析所有代码从而找出所有你的代码运行所需的模块。② PyInstaller会将所有这些模块和你的code放在一个文…

koa --- 监听路由,并使用模板引擎渲染显示

使用路由 /Koa实战/routes/index.js const Router require(koa-router); const router new Router();router.get(/, ctx > {ctx.body index; });module.exports router/Koa实战/routes/users.js const Router require(koa-router); const router new Router({prefi…

公共平台服务治理与鉴权

问题 解决问题 鉴权 注册 管理 总结聊一聊最近了解的公司服务治理平台&#xff0c;主要是思想&#xff0c;理念&#xff0c;而不是一种技术或框架。整个平台设计&#xff0c;融入了OAUTH2认证&#xff0c;融入了微服务思想&#xff0c;帮助公司各系统在复杂的IT架构下&#xff…

Java 试题五

Java 试题五 1、运行时异常与一般异常有何异同 答&#xff1a;异常表示程序运行过程中可能出现的非正常状态&#xff0c;运行时异常表示虚拟机的通常操作中可能遇到的异常&#xff0c;是一种常见运行错误。java编译器要求方法必须声明抛出可能发生的非运行时异常&#xff0c;…