Codeforces Round 953 (Div. 2) A - C 题解

news2024/12/29 9:56:20

因为有事只做了A-C,都比较简单,全是很简单的思维,明天有空还会添加上D,如果有人需要可以明天常来看看!

进入正题:

A. Alice and Books

题意:给你n个数字,将这些数字分到两堆里,每个堆取一个编号最上面的数字,问能取到的最大和是多少?
题解:其实很容易看出来,最后一个数字是必须取的,那么直接用前n-1个数字的最大值加上最后一个值求和即可。
代码:
#include<bits/stdc++.h>
using namespace std ;
typedef long long ll ;
const int maxn = 1e6 + 7 ;
inline ll read(){
	ll x = 0 , f = 1 ;
	char c = getchar() ;
	while(c > '9' || c < '0'){
		if(c == '-')
			f = -1 ;
		c = getchar() ;
	}
	while(c >= '0' && c <= '9'){
		x = x * 10 + c - '0' ;
		c = getchar() ;
	}
	return x * f ;
}
ll t , n , m , k , a[maxn] ;
void solve(){
	n = read() ;
	for(int i = 1 ; i <= n ; i ++){
		a[i] = read() ;
	} 
	ll Max = -1 ;
	for(int i = 1 ; i <= n - 1 ; i ++){
		Max = max(Max , a[i]) ;
	}
	cout << Max + a[n] << endl ;
}
int main(){
	t = read() ;
	while(t --){
		solve() ;
	}
	return 0 ;
}

B. New Bakery

题意:给你三个数字n,a,b,可以选择一个k,在1 <=i<=k内,每次可以增加(b - i + 1)个硬币,剩下的(n-k)个数字,每个加上a,问能取到的最大值是多少?
题解:很明显,当b-i+1 <=a,就用a即可,直接列式子,出答案即可。
代码:
#include<bits/stdc++.h>
using namespace std ;
typedef long long ll ;
const int maxn = 1e6 + 7 ;
inline ll read(){
	ll x = 0 , f = 1 ;
	char c = getchar() ;
	while(c > '9' || c < '0'){
		if(c == '-')
			f = -1 ;
		c = getchar() ;
	}
	while(c >= '0' && c <= '9'){
		x = x * 10 + c - '0' ;
		c = getchar() ;
	}
	return x * f ;
}
ll t , n , m , k , a[maxn] ;
void solve(){
	n = read() ;
	m = read() ;
	k = read() ;
	if(m >= k){
		cout << m * n << endl ;
		return ;
	}
	else{
		ll res = k - m + 1 ;
		if(res > n){
			res = n ;	
		}
//		cout << min(n , k - m + 1) << endl ;
		cout << (((k - res + 1ll + k) * res) / 2ll) + max(0ll , (n - res)) * m << endl ;
 	}
}
int main(){
	t = read() ;
	while(t --){
		solve() ;
	}
	return 0 ;
}

C. Manhattan Permutations

题意:给你一个定义曼哈顿价值,表示为|a_1 -1|+|a_2- 2|+....+|a_n- n|,问找到一个最大的排列,能满足曼哈顿价值等于k,如果没法满足,输出NO。
题解:首先,交换两个数字,很明显不会出现奇数的情况,再看,如果交换三个数字,例如135,其实和交换15的价值是一样的,那么很明显,每次交换两个数字即可。交换总会有数据范围,因为是排列,肯定是倒序和正序碰到一起的时候是最大值,这样NO的情况就排除完了。再来看可以的情况,我们手模数据,会发现,交换(1,2)和交换(1,3)价值差2,每次都差2,那么第一次交换的最大值就是(1,n),第二次就是(2,n-1)....,所以我们就用贪心,看看减到什么时候会小于0,最后再交换(l,(m/2)+l)即可,完美撒花!复杂度O(n/2)
代码:
#include<bits/stdc++.h>
using namespace std ;
typedef long long ll ;
const int maxn = 1e6 + 7 ;
inline ll read(){
	ll x = 0 , f = 1 ;
	char c = getchar() ;
	while(c > '9' || c < '0'){
		if(c == '-')
			f = -1 ;
		c = getchar() ;
	}
	while(c >= '0' && c <= '9'){
		x = x * 10 + c - '0' ;
		c = getchar() ;
	}
	return x * f ;
}
ll t , n , m , k , a[maxn] ;
void solve(){
	n = read() ;
	m = read() ;
	ll ans = 0 ;
	if(n % 2 == 1){
		ans += ((2ll + 2 * (n / 2)) * (n / 2)) ;
	}
	else{
		ans += ((1ll + (2 * (n / 2) - 1))) * (n / 2) ; 
	}
	if(m > ans || m % 2 == 1){
		cout << "NO\n" ;
		return ;
 	}
	else{
		for(int i = 1 ; i <= n ; i ++){
			a[i] = i ;
		}
		ll rt = (n - 1) * 2 ;
		ll l = 1 , r = n ;
		while(m > 0){
			if(m - rt >= 0){
				swap(a[l] , a[r]) ;
				m -= rt ;
				l ++ ;
				r -- ;
				rt -= 4 ;
			}
			else{
				ll Rt = (m / 2) + l ;
				swap(a[l] , a[Rt]) ;
				m = 0 ;
			}
		}
	}
	cout << "YES\n" ;
	for(int i = 1 ; i <= n ; i ++){
		cout << a[i] << " " ;
	}
	cout << endl ;
}
int main(){
	t = read() ;
	while(t --){
		solve() ;
	}
	return 0 ;
}

喜欢作者的记得点上你们宝贵的关注哦~

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

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

相关文章

PD19 Parallels Desktop 虚拟机 安装Windows10系统 操作步骤(保姆级教程,轻松上手)

Mac分享吧 文章目录 效果一、准备工作二、开始安装1、打开pd 19 虚拟机&#xff0c;点击右上角文件&#xff0c;新建2、通过下载好的镜像安装Windows10系统。找到镜像文件位置&#xff0c;安装&#xff0c;配置2、显示安装完成&#xff0c;打开Windows10系统 三、运行测试1、打…

60.WEB渗透测试-信息收集- 端口、目录扫描、源码泄露(8)

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 内容参考于&#xff1a; 易锦网校会员专享课 上一个内容&#xff1a;59.WEB渗透测试-信息收集- 端口、目录扫描、源码泄露&#xff08;7&#xff09; 御剑是用…

中小企业使用CRM系统的优势有哪些

中小企业如何在竞争激烈的市场中脱颖而出&#xff1f;除了优秀的产品和服务&#xff0c;一个高效的管理工具也是必不可少的。而客户关系管理&#xff08;CRM&#xff09;系统正是这样一个能帮助企业提升客户体验、优化内部管理流程的重要工具。接下来&#xff0c;让我们一起探讨…

【Python网络爬虫分步走】使用LXML解析网页数据

Python网络爬虫分步走 – 使用LXML解析网页数据 Web Scraping in Python - Using LXML to Parse Web Data By Jackson@ML Lxml作为Python的第三方库,提供易用的且功能强大的API,用来解析XML和HTML文档。事件驱动的API被用于分步骤解析。 本文简要介绍使用lxml库解析网页的基…

TF-IDF在现代搜索引擎优化策略中的作用

TF-IDF&#xff08;Term Frequency-Inverse Document Frequency&#xff09;是一种用于文本挖掘和信息检索的统计方法&#xff0c;用来评估一个词语对于一个文档或一个语料库的重要程度。TF-IDF算法结合了词频&#xff08;TF&#xff09;和逆文档频率&#xff08;IDF&#xff0…

2-7 基于matlab实现声纹识别

基于matlab实现声纹识别&#xff0c;通过提取声音信号的MFCC特征&#xff0c;然后形成特征向量&#xff0c;通过训练语音&#xff0c;对测试语音进行识别&#xff0c;可以识别训练库内的声音&#xff0c;也可以识别出训练库外的声音。程序已调通&#xff0c;可直接运行。 2-7 m…

力扣每日一题 6/16 字符串 + 随机一题 动态规划/数学

博客主页&#xff1a;誓则盟约系列专栏&#xff1a;IT竞赛 专栏关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ 521.最长特殊序列 I【简单】 题目&#xff1a; 给你两个字符串 a 和 b&am…

人工智能模型组合学习的理论和实验实践

组合学习&#xff0c;即掌握将基本概念结合起来构建更复杂概念的能力&#xff0c;对人类认知至关重要&#xff0c;特别是在人类语言理解和视觉感知方面。这一概念与在未观察到的情况下推广的能力紧密相关。尽管它在智能中扮演着核心角色&#xff0c;但缺乏系统化的理论及实验研…

CodeQL从入门到入土

为什么在现在写这文章 CodeQL传闻找到了Log4j的漏洞&#xff0c;这段时间上边要求&#xff0c;把公司系统内部常见的问题用CodeQL写检测脚本&#xff0c;用于系统长期检测。主要是记录这段时间的学习&#xff0c;以及自己总结的常用写法。 一个需求&#xff0c;不同人写出来的…

二叉树-距离是K的二叉树节点(hard)

目录 一、问题描述 二、解题思路 1.总体思路&#xff08;DFSBFS结合&#xff09; 2.下面举具体例子来对思路进行解释 (1)返回值在一侧的情况 (2)返回值在两侧的情况 三、代码实现 四、刷题链接 一、问题描述 二、解题思路 1.总体思路&#xff08;DFSBFS结合&#xff0…

【2024亲测无坑】Oracle--19C在Centos7上的静默安装(rpm版)

一、Oracle 19c Linux安装&#xff08;Centos 7&#xff09; 1.查看磁盘可用空间及配置ip地址 [rootlocalhost /]# df -h 文件系统 容量 已用 可用 已用% 挂载点 devtmpfs 1.4G 0 1.4G 0% /dev tmpfs 1.4G …

Docker-Portainer可视化管理工具

Docker-Portainer可视化管理工具 文章目录 Docker-Portainer可视化管理工具介绍资源列表基础环境一、安装Docker二、配置Docker加速器三、拉取Portainer汉化版本镜像四、运行容器五、访问可视化界面 介绍 Portainer是一款开源的容器管理平台&#xff0c;它提供了一个直观易用的…

Nature|高性能柔性纤维电池 (柔性智能织物/可穿戴电子/界面调控/柔性电池/柔性电子)

2024年4月24日,复旦大学彭慧胜(Huisheng Peng)院士团队,在《Nature》上发布了一篇题为“High-performance fibre battery with polymer gel electrolyte”的论文,陆晨昊(Chenhao Lu)、Haibo Jiang和Xiangran Cheng为论文共同第一作者。论文内容如下: 一、 摘要 用聚合物凝…

基于Spring Boot的智能分析平台

项目介绍&#xff1a; 智能分析平台实现了用户导入需要分析的原始数据集后&#xff0c;利用AI自动生成可视化图表和分析结论&#xff0c;改善了传统BI系统需要用户具备相关数据分析技能的问题。该项目使用到的技术是SSMSpring Boot、redis、rabbitMq、mysql等。在项目中&#…

AMD平台,5600X+6650XT,虚拟机安装macOS 14(2024年6月)

AMD平台安装macOS 14的麻烦&#xff0c;要比Intel平台多的多&#xff0c;由于macOS从13开始&#xff0c;对CPU寄存器的读取进行了改变&#xff0c;导致AMD平台只要安装完macOS 13及以后版本&#xff0c;开机后就报五国语言错误&#xff0c;不断重启。改vmx文件&#xff0c;被证…

基于springboot的学生宿舍管理系统(带 1w+字文档)

基于springboot的学生宿舍管理系统(带 1w字文档) 基于 springbootvue 前后端分离的学生宿舍管理系统&#xff1a;前端 vue2、elementui&#xff0c;后端 maven、springmvc、spring、mybatis&#xff1b; 项目简介 本项目可供学习参考&#xff0c;商业慎用。项目带完整安装部署…

Python基础教程(二十二):XML解析

&#x1f49d;&#x1f49d;&#x1f49d;首先&#xff0c;欢迎各位来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里不仅可以有所收获&#xff0c;同时也能感受到一份轻松欢乐的氛围&#xff0c;祝你生活愉快&#xff01; &#x1f49d;&#x1f49…

微服务架构思考

时间&#xff1a;2024年06月16日 作者&#xff1a;小蒋聊技术 邮箱&#xff1a;wei_wei10163.com 微信&#xff1a;wei_wei10 音频地址&#xff1a; https://xima.tv/1_HvQZkj?_sonic0https://xima.tv/1_HvQZkj?_sonic0 大家好&#xff0c;欢迎来到小蒋聊技术&#xff0c…

Vue - 实现登录页面

1、技术框架 1、技术框架Vue-Cli Vue3.0 2、界面推荐大小&#xff1a; 1920 * 1080 3、UI组件&#xff1a;elementui 4、icon: element-plus/icons-vue 5、node版本&#xff1a;v20.14.0 2、效果图 3、源代码部分截图 4、其他 有需要的请联系作者。需要购买&#xff0c;不白…

ABBYY Finereader 15软件安装包下载

软件简介&#xff1a; FineReader PDF提供实用、简易的工具&#xff0c;将纸质文档和PDF结合起来&#xff0c;提高了数字工作场所的效率。 FineReader 15最大特色是采用了ABBYY最新推出的基于AI的OCR技术&#xff0c;可以更轻松地在同一工作流程中 对各种文档进行数字化、检索…