Codeforces Round 874 (Div. 3)(A~D题)

A. Musical Puzzle

思路:

用最少的长度为2的字符串按一定规则拼出s。规则是:前一个字符串的尾与后一个字符串的首相同。统计s中长度为2的不同字符串数量。

代码:

#include<bits/stdc++.h>
#include <unordered_map>
using namespace std;
#define N 200010
typedef long long ll;
typedef unsigned long long ull;
ll n, m, h, k, t, x, y, z;
ll a, b, c, d, mod = 998244353;
ll ans, num, sum1 = 0, sum, sum2 = 0, maxx, minn = 1e9;
ll f1[N], f2[N], dp[N], an[N], cnt[N];
bool flag, vis[N];
string s, s1, s2;
map<string, ll>mp;
bool cmp(ll x, ll y) {return x > y;
}
void solve() {cin >> n;cin >> s;ans = 0;mp.clear();for (int i = 0; i < s.size()-1; i++) {s1 = s.substr(i,2);if (!mp[s1]) {mp[s1] = 1;ans++;}}cout << ans << endl;
}
int main()
{cin >> t;while (t--) {solve();}return 0;
}

B. Restore the Weather

 思路:

将a和b分别按从小到大的顺序匹配便是最优的,一定能满足|ai−bi|≤k成立。只需注意要恢复原来的顺序输出。

 代码:

#include<bits/stdc++.h>
#include <unordered_map>
using namespace std;
#define N 200010
typedef long long ll;
typedef unsigned long long ull;
//ll n, m, h, k, t, x, y, z;
//ll a, b, c, d, mod = 998244353;
//ll ans, num, cnt,sum, maxx, minn = 1e9;
//ll f1[N], f2[N], dp[N], an[N];
//bool flag, vis[N];
//string s, s1, s2;
//map<ll, ll>mp;
struct tem {ll d, t;
}a[114514];
ll b[114514];
bool cmp1(tem a, tem b) { return a.t < b.t; }
bool cmp2(tem a, tem b) { return a.d < b.d; }
signed main()
{ll t;cin >> t;while (t--) {ll n, k;cin >> n >> k;for (int i = 1; i <= n; i++) {cin >> a[i].t;a[i].d = i;}for (int i = 1; i <= n; i++)cin >> b[i];sort(a + 1, a + 1 + n, cmp1);sort(b + 1, b + 1 + n);for (int i = 1; i <= n; i++)a[i].t = b[i];sort(a + 1, a + 1 + n, cmp2);for (int i = 1; i <= n; i++)cout << (a[i].t) << " ";cout << "\n";}return 0;
}

 

C. Vlad Building Beautiful Array

 

 思路:

2只有减奇数才能改变奇偶性。值得注意的是,根据题目要求我们无法将一个奇数序列变成偶数序列,因此只有以下三种情况:
①原本全是奇数
②原本全是偶数
③有奇有偶:这时只能将偶序列变成奇序列。我们将每一个偶数与最小的奇数消减,只要最后的结果全为正数则有解,否则无解。

代码:

#include<bits/stdc++.h>
#include <unordered_map>
using namespace std;
#define N 200010
typedef long long ll;
typedef unsigned long long ull;
ll n, m, h, k, t, x, y, z;
ll a, b, c, d, mod = 998244353;
ll ans, num, sum1 = 0, sum, sum2 = 0, maxx, minn = 1e9;
ll f1[N], f2[N], dp[N], an[N], cnt[N];
bool flag, vis[N];
string s, s1, s2;
map<ll, ll>mp;
void solve() {cin >> n;minn = 1e9;for (int i = 1; i <= n; i++) {cin >> dp[i];minn = min(minn, dp[i]);}if (minn % 2 == 0) {for (int i = 1; i <= n; i++) {if (dp[i] % 2 != 0) {cout << "NO" << endl;return;}}cout << "YES" << endl;return;}else {cout << "YES" << endl;return;}}
int main()
{ios_base::sync_with_stdio(false);cin >> t;while (t--) {solve();}return 0;
}

 

D. Flipper

思路:

在解空间中,以n/n-1开头的排列字典序比其他可行解大,因此最优解在以n/n-1开头的解空间里。
所以本题右端点是固定的,若元素n不在开头,则r在元素n所在的位置,若n在开头,则r在元素n - 1所在的位置。固定了r后我们再去枚举左端点l,在所有可行解中取字典序最大的那个排列即可。

代码:

#include<bits/stdc++.h>
#include <unordered_map>
using namespace std;
#define N 200010
typedef long long ll;
typedef unsigned long long ull;
ll n, m, h, k, t, x, y, z;
ll a, b, c, d, mod = 998244353;
ll ans, num, cnt,sum, maxx, minn = 1e9;
ll f1[N], f2[N], dp[N], an[N];
bool flag, vis[N];
string s, s1, s2;
map<ll, ll>mp;
void solve() {cin >> n;for (int i = 1; i <= n; i++)cin >> dp[i];if (n == 1) {cout << dp[1] << endl;return;}maxx = 0;for (int i = 2; i <= n; i++) {if (dp[i] >= maxx) {maxx=dp[i];cnt = i;}}if (cnt == n) {num = cnt;for (int i = cnt - 1; i >= 2; i--) {if (dp[i] > dp[1]) {num = i;}elsebreak;}cout << dp[cnt] << " ";for (int i = cnt - 1; i >= num; i--)cout << dp[i] << " ";for (int i = 1; i < num; i++)cout << dp[i] << " ";cout << endl;}else {num = cnt - 1;for (int i = cnt-2; i >= 2; i--) {if (dp[i] > dp[1]) {num = i;}elsebreak;}for (int i = cnt; i <= n; i++)cout << dp[i] << " ";for (int i = cnt - 1; i >= num; i--)cout << dp[i] << " ";for (int i = 1; i < num; i++)cout << dp[i] << " ";cout << endl;}
}
int main()
{ios_base::sync_with_stdio(false);cin >> t;while (t--) {solve();}return 0;
}

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

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

相关文章

【python】PyQt5中QPushButton的用法详细解析与应用实战

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

【全面介绍Python多线程】

🎥博主:程序员不想YY啊 💫CSDN优质创作者,CSDN实力新星,CSDN博客专家 🤗点赞🎈收藏⭐再看💫养成习惯 ✨希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共同学习、交流进步! 🦇目录 1. 🦇前言2. 🦇threading 模块的基本用法3. 🦇Thre…

Unity中有关Animation的一点笔记

也许更好的阅读体验 Animation Unity中Animation类并不是直接记载了和播放动画有关的信息&#xff0c;可以简单理解Animation为一个动画播放器&#xff0c;播放的具体内容就像卡带一样&#xff0c;当我们有了卡带后我们可以播放动画。 对应的则是编辑器中的组件 所以Anima…

【学术会议征稿】第十一届电气工程与自动化国际会议 (IFEEA 2024)

第十一届电气工程与自动化国际会议 &#xff08;IFEEA 2024&#xff09; 2024 11th International Forum on Electrical Engineering and Automation IFEEA论坛属一年一度的国际学术盛会。因其影响力及重要性&#xff0c;IFEEA论坛自创建筹办以来&#xff0c;便受到国内外高等…

网站打包封装成app,提高用户体验和商业价值

网站打包封装成app的优势 随着移动互联网的普及&#xff0c;用户对移动应用的需求越来越高。网站打包封装成app可以满足用户的需求&#xff0c;提高用户体验和商业价值。 我的朋友是一名电商平台的运营负责人&#xff0c;他曾经告诉我&#xff0c;他们的网站流量主要来自移动…

由bext安装“异常”引出的话题:windows上转义字符的工作原理

由bext安装“异常”引出的话题&#xff1a;Windows上转义字符的工作原理&#xff0c;与ai“闲扯”不经意学习知识点。 (笔记模板由python脚本于2024年07月25日 19:21:13创建&#xff0c;本篇笔记适合喜欢用ai学习的coder翻阅) 【学习的细节是欢悦的历程】 Python 官网&#xff…

GitLab添加TortoiseGIT生成SSH Key

文章目录 前言一、PuTTYgen二、GitLab 前言 GitLab是一个用于托管代码仓库和项目管理的Web平台&#xff0c;公司搭建自己的gitlab来管理代码&#xff0c;我们在clone代码的时候可以选择http协议&#xff0c;也可以选择ssh协议来拉取代码。 SSH (Secure Shell)是一种通过网络进…

【脚本】清空指定文件夹内容

main执行一次&#xff0c;1.txt就会写入一些东西。 原来的想法是覆盖重写&#xff0c;结果却是接着往后面写&#xff0c;检查源代码有点费事&#xff0c;不如在每次程序执行前&#xff0c;先直接清空文件夹&#xff01; 部分代码&#xff1a; 修改路径就能用。 import os im…

微信小程序-自定义tabBar

通过官网给出的示例自己实现了自定义的tabBar&#xff0c;但结果发现 无法监听页面生命周期函数 结语&#xff1a;原想的是实现不一样的效果&#xff08;如下&#xff09; 故尝试了自定义tabBar&#xff0c;虽然做出来了&#xff0c;但也发现这个做法存在不足&#xff1a; 在…

记一次Mycat分库分表实践

接了个活,又搞分库分表。 一、分库分表 在系统的研发过程中,随着数据量的不断增长,单库单表已无法满足数据的存储需求,此时就需要对数据库进行分库分表操作。 分库分表是随着业务的不断发展,单库单表无法承载整体的数据存储时,采取的一种将整体数据分散存储到不同服务…

Golang | 腾讯一面

go的调度 Golang的调度器采用M:N调度模型&#xff0c;其中M代表用户级别的线程(也就是goroutine)&#xff0c;而N代表的事内核级别的线程。Go调度器的主要任务就是N个OS线程上调度M个goroutine。这种模型允许在少量的OS线程上运行大量的goroutine。 Go调度器使用了三种队列来…

vue3 常用的知识点

setup:容许在script当中书写组合式API 并且vue3的template不再要求唯一的根元素 <script setup>const name app; </script>组合式API的用法&#xff1a; 可以直接在script标签中定义变量或者函数&#xff0c;然后直接在template当中使用 <template>{{mes…

编程类精品GPTs

文章目录 编程类精品GPTs前言种类ChatGPT - GrimoireProfessional-coder-auto-programming 总结 编程类精品GPTs 前言 代码类的AI, 主要看以下要点: 面对含糊不清的需求是否能引导出完整的需求面对完整的需求是否能分步编写代码完成需求编写的代码是否具有可读性和可扩展性 …

javaEE-03-cookie与session

文章目录 Cookie创建Cookie获取Cookie更新CookieCookie 生命控制Cookie 有效路径 Session 会话创建和获取sessionSession 域数据的存取Session 生命周期控制浏览器和 Session 之间关联 Cookie Cookie 是服务器通知客户端保存键值对的一种技术,客户端有了 Cookie 后&#xff0c…

【ARM】MDK-ARM软件开发工具的最终用户许可协议获取

【更多软件使用问题请点击亿道电子官方网站】 1、 文档目标 了解MDK-ARM系列产品内软件开发工具的最终用户许可协议的获取。 2、 问题场景 对于部分外企客户需要软件开发工具的最终用户许可协议作为产品资料&#xff0c;以便附录并说明。 3、软硬件环境 1&#xff09;、软件…

Shell编程之正则表达式与文本处理器2--sed

目录 一、sed 工具 1. 概述 2. sed 原理 3、常用操作选项 3.1 常用选项 3.2 操作命令 4. sed 的使用 5. 具体操作 5.1 打印输出 p 5.1.1 显示范围、单行、指定行输出、指定往后加几行输出 5.1.2 显示奇偶行 5.1.3 将指定内容的行打印出来 5.1.4 只输出行号…

ESP32和mDNS学习

目录 mDNS的作用mDNS涉及到的标准文件组播地址IPv4 多播地址IPv6 多播地址预先定义好的组播地址 mDNS调试工具例程mDNS如何开发和使用注册服务查询服务 mDNS的作用 mDNS 是一种组播 UDP 服务&#xff0c;用来提供本地网络服务和主机发现。 你要和设备通信&#xff0c;需要记住…

python通过omniORBpy调用CORBA

omniORB参考地址&#xff1a; omniORB omniORB - Browse Files at SourceForge.net omniORB - Browse /omniORBpy/omniORBpy-4.3.0 at SourceForge.net Windows 普通使用好像不需要安装omniorb。就对接北向接口业务需要使用python3.10的windows包&#xff0c;但目前好像没有…

【CI/CD】docker + Nginx自动化构建部署

CI/CD是什么 CI/CD 是持续集成&#xff08;Continuous Integration&#xff09;和持续部署&#xff08;Continuous Deployment&#xff09;或持续交付&#xff08;Continuous Delivery&#xff09;的缩写&#xff0c;它们是现代软件开发中用于自动化软件交付过程的实践。 1、…

Centos安装、迁移gitlab

Centos安装迁移gitlab 一、下载安装二、配置rb修改&#xff0c;起服务。三、访问web&#xff0c;个人偏好设置。四、数据迁移1、查看当前GitLab版本2、备份旧服务器的文件3、将上述备份文件拷贝到新服务器同一目录下&#xff0c;恢复GitLab4、停止新gitlab数据连接服务5、恢复备…