Codeforces Round 925 (Div. 3)

在这里插入图片描述

Codeforces Round 925 (Div. 3)

Codeforces Round 925 (Div. 3)

A. Recovering a Small String

题意:给出一个整数n,为三个26个字母的位置序号的和,输出字典序最小的三个字符的字符串。

思路:直接倒推,顺一遍,后面的字母尽可能大。

AC code:

void solve() {cin >> n;string s = "";if (n > 27) {n -= 26;s += 'z';if (n > 26) {s += 'z';n -= 26;s += char('a' + n - 1);} else {s += char('a' + n - 1 - 1);s += 'a';}}else {s += 'a';s += 'a';n -= 2;s += char('a' + n - 2 + 1);cout << s << endl;return;}reverse(s.begin(),s.end());cout << s << endl;
}

B. Make Equal

题意:n杯水,首先一定能平分,前面的水可以往后匀,是否可以通过这种方式使得n杯水平分。

思路:贪心,从前往后捋,高出平均值记录一下,少了就去些。

AC code:

void solve() {cin >> n;vector<int> a(n, 0);int mx = 0;for (int i = 0; i < n; i ++) cin >> a[i], mx += a[i];int aver = mx / n, now = 0;for (int i = 0; i < n; i ++) {if (a[i] != aver) {if (a[i] >= aver) {now += a[i] - aver;} else {now -= (aver - a[i]);if (now < 0) {cout << "NO" << endl;return;}}}}if (!now) {cout << "YES" << endl;return;}cout << "NO" << endl;
}

C. Make Equal Again

题意:通过一次操作,操作为选择任意长度区间变为同一个数,将长度为n的数组a的所有元素相同,最小化区间的元素数量。

思路:注意只能操作一次,那么就仨情况了,前半,后半,中间,记录开头连续相同的数量,和结尾连续相同的数量,取最大,若首尾相等则相加,答案则为除了这些相等的头尾的其余元素。

AC code:

void solve() {cin >> n;map<int, int> mp;for (int i = 1; i <= n; i ++) cin >> a[i], mp[a[i]] ++;int ans = INF;int cnt = 1, cnt2 = 1;int l = 1, r = n;int st = a[1];for (int i = 2; i <= n; i ++) {if (a[i] == st) cnt ++;else break;}ans = min(ans, n - cnt);st = a[n];for (int i = n - 1; i >= 1; i --) {if (a[i] == st) cnt2 ++;else break;}ans = min(ans, n - cnt2);if (a[1] == a[n]) ans = min(ans, n - cnt - cnt2);ans = max(0LL, ans);cout << ans << endl;
}

D. Divisible Pairs

题意:找出数组中符合条件的元素对,条件为 a i + a j a_i + a_j ai+aj被x整除, a i − a j a_i - a_j aiaj被y整除。

思路:根据条件可以得知:

  • a i − a j a_i - a_j aiaj被y整除即 a i a_i ai % y == 0 && a j a_j aj % y == 0

  • a i + a j a_i + a_j ai+aj被x整除即 ( a i a_i ai%x+ a j a_j aj%x)% x == 0

由以上条件,用map<pair<int, int>, int>来记录每个元素对应xy取模,以第一个条件为基准,定一个元素通过第二个条件找另一个成对元素是否存在,详见代码。

AC code:

void solve() {cin >> n >> x >> y;for (int i = 1; i <= n; i ++) cin >> a[i];sort(a+1, a+n+1);map<PII, int> mp;for (int i = 1; i <= n; i ++) {mp[{a[i] % x, a[i] % y}] ++;}int ans = 0;for (int i = 1; i <= n; i ++) {int t = (x - (a[i] % x)) % x;ans += mp[{t, a[i] % y}];if (a[i] % x == t) ans --;}cout << ans / 2 << endl;
}

E. Anna and the Valentine’s Day Gift

题意:A和B对一个n数组中的元素进行轮流操作,A先手

  • 当A出手时,选择任意一个元素倒转,若倒转后有前置零则消除
  • 当B出手时,选择任意两个不同的元素进行拼接成一个新元素,原序列数量-1

A的获胜条件为最后留下的元素位数小于m,反之B获胜,双方博弈,谁能胜。

思路:

  • 重点只在于一个元素是否有可能通过倒置操作减少位数,即末尾是否有连续的0,且对于一个元素倒置最多减少一次位数

  • 我们可以计算每个元素初始后置0的数量,然后根据这个进行排序

  • 轮到A时则去优先消除后置0多的元素,轮到B则优先可以合并两个元素来保一个后置0

AC code:

int find(int x) {int cnt = 0;while (x) {cnt ++;x /= 10;}return cnt;
}
int find_0(int x) {int cnt = 0;while (x % 10 == 0 && x != 0) {cnt ++;x /= 10;}return cnt;
}void solve() {cin >> n >> m;vector<PII> a(n);for (int i = 0; i < n; i ++) {int x; cin >> x;a[i].second = x;a[i].first = find_0(x);}sort(a.begin(), a.end());int ans = 0;for(int i = 0; i < n; i ++) {int t = a[i].second;ans += find(t);if (i % 2 != (n - 1) % 2) continue;ans -= find_0(t);}if (ans > m) cout << "Sasha" << endl;else cout << "Anna" << endl;
}

F. Chat Screenshots

题意:初始可能会有一个排序序列代表n个用户,用户会发送这个序列,发送的时候把自己调到第一个,即在原序列的基础上,每个用户发送的序列自己都是在第一位的,通过k名用户发送的序列,判断是否可能存在一个初始的序列。

思路:

  • 如果可能存在这样的序列,那么不会存在除当前用户之外的序列顺序出现矛盾的情况。

  • 这里可以直接存图,判断是否是一个拓扑排序即是否不存在环,存在则有矛盾条件。

  • 存图是注意一是不需要存每个用户序列的第一个元素,因为真假存疑,二是除了第一个元素之外序列顺序存,维护前后元素即可。

AC code:

#include<bits/stdc++.h>
#define endl '\n'
#define int long long
#define db double
#define pb push_back
#define fast() ios::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr)
using namespace std;typedef long long LL;
typedef pair<char, int> PCI;
typedef pair<int, int> PII;
const int N = 2e5+10, M = 2001;
const int INF = 0x3f3f3f3f3f, mod = 998244353;
int T, n, k;
vector<int> g[N];
int d[N];void solve() {for (int i = 1; i <= n; i ++) {g[i].clear(), d[i] = 0;}cin >> n >> k;while (k --) {vector<int> ca(n);for (int i = 0; i < n; i ++) cin >> ca[i];for (int i = 1; i < n - 1; i ++) {g[ca[i]].pb(ca[i + 1]);d[ca[i + 1]] ++;}}queue<int> q;for (int i = 1; i <= n; i ++) {if (d[i] == 0) q.push(i);}int cnt = 0;while (!q.empty()) {auto t = q.front();q.pop();cnt ++;for (auto u : g[t]) {d[u] --;if (d[u] == 0) q.push(u);}}if (cnt == n) cout << "YES" << endl;else cout << "NO" << endl;
}signed main() {fast();T = 1;cin >> T;while (T --) {solve();}return 0;
}

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

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

相关文章

H12-821_144

144.R1、R2、R3和R4运行OSPF&#xff0c;区域ID如图所示&#xff0c;则是____ABR。(请填写设备名称&#xff0c;例如R1) 答案&#xff1a;R2 注释&#xff1a; ABR需要满足两个条件&#xff1a;连接两个或者两个以上的区域&#xff0c;并且其中有一个区域是区域0。 ABR又有…

扩展速度提高了12倍!AWS Lambda 函数重大改进!

Marcia 是 Amazon Web Services 的首席开发倡导者&#xff0c;在软件行业构建和扩展应用程序方面拥有20年的工作经验。她热衷于设计能够充分利用云并拥抱DevOps文化的系统。最近她发表了一篇博文&#xff0c;带来了一个AWS Lambda重大改进&#xff1a;扩展速度提升了 12 倍&…

springboot182基于springboot的网上服装商城

简介 【毕设源码推荐 javaweb 项目】基于springbootvue 的 适用于计算机类毕业设计&#xff0c;课程设计参考与学习用途。仅供学习参考&#xff0c; 不得用于商业或者非法用途&#xff0c;否则&#xff0c;一切后果请用户自负。 看运行截图看 第五章 第四章 获取资料方式 **项…

vivado 使用块综合策略

使用块综合策略 概述 AMD Vivado™合成具有许多策略和全局设置&#xff0c;您可以使用这些策略和设置自定义设计的合成方式。此图显示了可用的预定义策略在“合成设置”和“表&#xff1a;Vivado预配置策略”中提供了一个并排的战略设置的比较。您可以使用RTL或中的属性或XDC…

2023年度AI盘点 AIGC|AGI|ChatGPT|人工智能大模型

前言 「作者主页」&#xff1a;雪碧有白泡泡 「个人网站」&#xff1a;雪碧的个人网站 2023年是人工智能大语言模型大爆发的一年&#xff0c;一些概念和英文缩写也在这一年里集中出现&#xff0c;很容易混淆&#xff0c;甚至把人搞懵。 文章目录 前言01 《ChatGPT 驱动软件开…

C++完成使用map Update数据 二进制数据

1、在LXMysql.h和LXMysql.cpp分别定义和编写关于pin语句的代码 //获取更新数据的sql语句 where语句中用户要包含where 更新std::string GetUpdatesql(XDATA kv, std::string table, std::string where); std::string LXMysql::GetUpdatesql(XDATA kv, std::string table, std…

三分钟教你如何把不要钱的ChatGPT3.5用出花钱4.0的效果!

三分钟教你如何把不要钱的ChatGPT3.5用出花钱4.0的效果&#xff01; 关注微信公众号 DeepGo 计算机杂谈及深度学习记录&分享 上一期我们聊到 ChatGPT4.0确实在各方面都优于3.5 花了钱的就是不一样 但我们有没有办法去弥补这一差距呢&#xff1f; 今天我就来教你 转发…

mysql表设计

表设计流程&#xff1a; &#xff08;1&#xff09;分库&#xff1a;根据模块分 &#xff08;2&#xff09;分表&#xff1a;根据流程分表 &#xff08;3&#xff09;冗余字段和视图设计 21个表设计准则 &#xff08;1&#xff09;命名规范 account_no,account_number 表名用t…

OpenCV-38 图像金字塔

目录 一、图像金字塔 1. 高斯金字塔 2. 拉普拉斯金字塔 一、图像金字塔 图像金字塔是图像中多尺度表达的一种&#xff0c;最主要用于图像的分割&#xff0c;是一种以多分辨率来解释图像的有效但概念简单的结构。简单来说&#xff0c;图像金字塔是同一图像不同分辨率的子图…

【RabbitMQ(一)】:基本介绍 | 配置安装与快速入门

应该是新年前最后一篇博客了&#xff0c;明天浅浅休息一下&#xff0c;提前祝大家新年快乐捏&#xff01;&#x1f60a;&#x1f60a;&#x1f60a; 01. 基础理解 1.1 同步调用和异步调用 &#x1f449; 同步调用 的时候调用者会 阻塞 等待被调用函数或方法执行完成&#xff…

《Java 简易速速上手小册》第9章:Java 开发工具和框架 (2024 最新版)

文章目录 9.1 Maven 和 Gradle - 构建与依赖管理的神兵利器9.1.1 基础知识9.1.2 重点案例&#xff1a;使用 Maven 构建 Spring Boot 应用9.1.3 拓展案例 1&#xff1a;使用 Gradle 构建多模块项目9.1.4 拓展案例 2&#xff1a;利用 Gradle Wrapper 确保构建的一致性 9.2 Spring…

InstantBox:开箱即用的临时 Linux 环境

在云计算和虚拟化技术日益成熟的今天&#xff0c;我们有时需要一个快速、简单、临时的 Linux 环境来进行各种任务。这就是 InstantBox 的用武之地。 什么是 InstantBox&#xff1f; InstantBox 是一个开源项目&#xff0c;它可以快速启动临时的 Linux 系统&#xff0c;并提供…

Vue-自定义属性和插槽(五)

目录 自定义指令 基本语法 (全局&局部注册) 指令的值 练习&#xff1a;v-loading 指令封装 总结&#xff1a; 插槽&#xff08;slot&#xff09; 默认插槽 插槽 - 后备内容&#xff08;默认值&#xff09; 具名插槽 具名插槽基本语法: 具名插槽简化语法: 作…

鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之StepperItem组件

鸿蒙&#xff08;HarmonyOS&#xff09;项目方舟框架&#xff08;ArkUI&#xff09;之StepperItem组件 一、操作环境 操作系统: Windows 10 专业版、IDE:DevEco Studio 3.1、SDK:HarmonyOS 3.1 二、StepperItem组件 用作Stepper组件的页面子组件。 子组件 无。 接口 St…

浅谈进制的转换

本文创作灵感来自CSDN咸鱼WCY 的 咸鱼小白学嵌入式之C语言&#xff08;2.进制&#xff09; 博主更完就没更了&#xff0c;决定书接上回&#xff08;喜 进制是个啥 要理解进制&#xff0c;首先哈&#xff0c;咱得知道不同进制的含义 说到底&#xff0c;各个进制其实有点像在…

双活工作关于nacos注册中心的数据迁移

最近在做一个双活的项目&#xff0c;在纠结一个注册中心是在双活机房都准备一个&#xff0c;那主机房的数据如果传过去呢&#xff0c;查了一些资料&#xff0c;最终在官网查到了一个NacosSync 的组件&#xff0c;主要用来做数据传输的&#xff0c;并且支持在线替换注册中心的&a…

java SSM新闻管理系统myeclipse开发mysql数据库springMVC模式java编程计算机网页设计

一、源码特点 java SSM新闻管理系统是一套完善的web设计系统&#xff08;系统采用SSM框架进行设计开发&#xff0c;springspringMVCmybatis&#xff09;&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S…

springsecurity6使用

spring security 中的类 &#xff1a; AuthenticationManager : 实现类&#xff1a;ProviderManager 管理很多的 provider &#xff0c;&#xff0c;&#xff0c; 经常使用的&#xff0c;DaoAuthenticationProvider , 这个要设置一个 UserDetailService , 查找数据库&#xff…

生存类游戏《幻兽帕鲁》从部署服务器到开始体验全过程

SteamDB数据显示&#xff0c;《幻兽帕鲁》上线24小时内&#xff0c;在线人数峰值便突破200万&#xff0c;跻身Steam历史排行榜第二位。随着热度进一步发酵&#xff0c;《幻兽帕鲁》官方发布推文称&#xff0c;游戏发售不到6天&#xff0c;销量已经突破了 800万份。欢迎大家在阿…

‘vue-cli-service‘ 不是内部或外部命令,也不是可运行的程序

遇到 vue-cli-service 不是内部或外部命令&#xff0c;也不是可运行的程序或批处理文件。 的错误时&#xff0c;通常意味着Vue CLI没有被正确安装或配置在项目中。这可能是因为node_modules目录缺失了必要的包&#xff0c;或者局部安装的Vue CLI没有被正确设置到系统的PATH环境…