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

因为有事只做了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.mzph.cn/bicheng/28288.shtml

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

相关文章

@AliasFor 使用

AliasFor 使用 AliasFor 它允许开发者为一个注解的属性指定别名。通过使用AliasFor&#xff0c;我们可以提供多个名称来引用同一属性&#xff0c;从而增加了代码的灵活性和可读性 定义一个注解 package com.example.demo.aspect;import org.springframework.core.annotation…

asyncio协程提高执行效率

from fastapi import FastAPI import asyncioapp FastAPI()async def task1():# 模拟执行任务1print("开始执行任务1")await asyncio.sleep(1)print("结束执行任务1")return "Result from Task 1"async def task2():# 模拟执行任务2print("…

论文阅读笔记(通道注意力)

论文阅读笔记&#xff08;通道注意力&#xff09; 摘要Abstract1. SENet1.1 研究背景1.2 创新点1.3 SE块的构建过程1.3.1 注意力和门机制1.3.2 SE块具体运行过程1.3.3 通道间依赖关系的提取1.3.4 自适应重新校正(Excitation) 1.4 SE结合先进架构的灵活应用1.5 实验1.6 模型的实…

软考初级网络管理员__操作系统单选题

1.使用Windows提供的网络管理命令(请作答此空)可以查看本机的路由表&#xff0c;()可以修改本机的路由表。 tracert arp ipconfig netstat 2.在Windows 的命令行窗口中键入命令C:\>nslookupset type MX>202.30.192.2这个命令序列的作用是查询()。 邮件服务器信息 …

视频信号发生器上位机

在液晶屏测试、电视机信号测试、视频处理器测试中&#xff0c;经常需要使用视频信号发生器&#xff0c;市场上专业的视频信号发生器通常需要大几千元&#xff0c;多则上万元&#xff0c;而且设备测试仪器是一套硬件&#xff0c;没有办法像软件一样复制传播。所以我开发了一套基…

抖音混剪素材哪里找?可以混剪搬运视频素材网站分享

在抖音上制作精彩的视频离不开高质量的素材资源。今天&#xff0c;我将为大家推荐几个优质的网站&#xff0c;帮助你解决素材短缺的问题。这些网站不仅提供丰富的素材&#xff0c;还符合百度SEO优化的规则&#xff0c;让你的视频更容易被发现。 蛙学府素材网 首先要推荐的是蛙…

需求:如何给文件添加水印

今天给大家介绍一个简单易用的水印添加框架&#xff0c;框架抽象了各个文件类型的对于水印添加的方法。仅使用几行代码即可为不同类型的文件添加相同样式的水印。 如果你有给PDF、图片添加水印的需求&#xff0c;EasyWatermark是一个很好的选择&#xff0c;主要功能就是传入一…

【iOS】自定义cell及其复用机制

文章目录 cell的复用注册非注册两者的区别 自定义cell cell的复用 当用户滚动 UITableView 或 UICollectionView 时,只有少量可见的 cell 会被实际创建和显示。对于那些暂时不可见的 cell,系统会将它们缓存起来以备将来复用。这就是所谓的 cell 复用机制。 为什么需要cell的复…

英语学习笔记37——Making a bookcase

Making a bookcase 做书架 词汇 Vocabulary work v. 工作 ing形式&#xff1a;working 搭配&#xff1a;work on 工作 做……工作    work for 人 为……而工作 例句&#xff1a;我正在做我的家庭作业。    I am working on my homework.    我正在为Bobby工作。 …

Android集成高德天气API 天气预报

1.新建工程项目WeatherForecast。 2.在AndroidManifest文件中添加网络访问相关权限。 <uses-permission android:name"android.permission.INTERNET"/> 3.设计页面布局activity_main.xml&#xff0c;界面效果如图所示。 4.注册高德开放平台&#xff0c;查阅…

室内定位技术解析:蓝牙信标在室内导航中的应用

室内定位技术&#xff0c;作为现代导航领域的重要突破&#xff0c;解决了GPS在室内空间定位的局限&#xff0c;为我们提供了一种全新的空间认知和利用方式。本文将以蓝牙技术为例&#xff0c;深入解析室内定位的工作原理、关键技术和系统构成&#xff0c;以及在现代导航中的应用…

vue关于:deep穿透样式的理解

情况一 子组件&#xff1a; <div class"child"><div class"test_class">test_class<div class"test1">test1<div class"test2">test2</div></div></div></div>父组件&#xff1a; …

微服务架构思考

时间&#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…

FPGA----petalinux开机启动自定义脚本/程序的保姆级教程

1、petalinux的重启命令&#xff1a;reboot、关机命令&#xff1a;shutdown -h now、开机按键&#xff1a;在关机后&#xff0c;ZCU106的右上角指示灯会变为红色&#xff0c;此时按下左上角第一个按键可启动操作系统。 2、好久没写博客了&#xff0c;本次给大家带来的是petalin…

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

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

正则表达式 文本匹配

目录 一. 匹配指定文字1.1 所在的整行1.2 之后的部分1.3 之前的部分 二. 匹配开头2.1 匹配数字开头的行2.2 匹配开头的数字2.3 匹配空行 一. 匹配指定文字 1.1 所在的整行 ⏹^.*指定字符串.*$ 1.2 之后的部分 ⏹指定字符串.* 1.3 之前的部分 ⏹.*指定字符串 ⏹.*指定字符串…

Vue主要使用-03

组件通讯 组件通讯也是我们需要了解的,在我们的实际开发中,我们使用的非常多,比如父组件内的数据传入到子组件,子组件的数据传入到父组件,什么是父组件什么是子组件&#xff1f;父组件内包含着我们的子组件,我们的父组件可以有多个子组件,父组件就是我们使用子组件拼接的。 …

快速UDP网络连接之QUIC协议介绍

文章目录 一、QUIC协议历史1.1 问题&#xff1a;QUIC为什么在应用层实现1.2 QUIC协议相关术语1.3 QUIC和TCP对比1.4 QUIC报文格式1.4.1 QUIC报文格式-Stream帧11.4.2 QUIC报文格式-Stream帧2 二、QUIC的特点2.1 连接建立低时延&#xff0c;2.2 多路复用流复用-HTTP1.1流复用-HT…

memory动态内存管理学习之shared_ptr

此头文件是动态内存管理库的一部分。std::shared_ptr 是一种通过指针保持对象共享所有权的智能指针。多个 shared_ptr 对象可持有同一对象。下列情况之一出现时销毁对象并解分配其内存&#xff1a; 最后剩下的持有对象的 shared_ptr 被销毁&#xff1b;最后剩下的持有对象的 s…

C语言,struct 结构体、union共用体的使用

//状态字节&#xff0c;根据数据定义几个标志&#xff0c;标志位依据联合体内部结构体进行变量定义 //目的&#xff0c;节省内存空间&#xff0c;省去特定字节 struct STATDATA {union{unsigned char stat;struct {unsigned stat0:1;unsigned stat1:1;unsigned stat2:1;unsign…