Codeforces Round 942 (Div. 2)

比赛链接:Dashboard - Codeforces Round 942 (Div. 2) - Codeforces

A题

翻译中文题面:

一场比赛包含 n 个问题,第 i 个问题的难度预期最多为 bi。已经有 n 个问题的提议,第 i 个问题的难度是 ai。最初,数组 a1,a2,…,an 和 b1,b2,…,bn 按非递减顺序排序。
一些问题可能比预期更难,所以写手必须提出更多问题。当提出难度为 w 的新问题时,最难的问题将被删除,问题将按非递减的难度排序。
换句话说,在每个操作中,你选择一个整数 w,将其插入数组 a,按非递减顺序排序数组 a,并从中删除最后一个元素。
找到使 ai≤bi 对所有 i 成立的新问题的最小数量。
输入
每个测试包含多个测试用例。第一行包含测试用例的数量 t(1≤t≤100)。以下是测试用例的描述。
每个测试用例的第一行仅包含一个正整数 n(1≤n≤100),表示问题的数量。
每个测试用例的第二行包含长度为 n 的数组 a(1≤a1≤a2≤⋯≤an≤109)。
每个测试用例的第三行包含长度为 n 的数组 b(1≤b1≤b2≤⋯≤bn≤109)。
输出
对于每个测试用例,在新行中打印一个整数作为你的答案。


解题思路:

在a数组中寻找到第一个不满足的数,把它替换成数组b中的数即可。


AC代码:
#include<iostream>
using namespace std;
const int N=105;
int n,t;
int a[N],b[N];
int cheak(int a[],int b[]){//判断a数组任意一个数是否小于b数组对应位置的数for(int i=0;i<n;i++){if(a[i]>b[i]){return i;}}return -1;
}
int main(){cin>>t;while(t--){cin>>n;int sum=0;for(int i=0;i<n;i++){cin>>a[i];}for(int i=0;i<n;i++){cin>>b[i];}while(cheak(a,b)!=-1){int dep=cheak(a,b);//记录下标for(int i=n-1;i>=dep;i--){//数组右移a[i+1]=a[i];}a[dep]=b[dep];//替换sum++;}cout<<sum<<endl;}return 0;
}

B题:


翻译中文题面:

在桌子上有 n 枚硬币组成一个圆圈,每枚硬币都可能正面朝上或者背面朝上。Alice 和 Bob 轮流玩以下游戏,Alice 先开始。
在每一步操作中,玩家选择一枚正面朝上的硬币,移除该硬币,并翻转其相邻的两枚硬币。如果(在操作之前)只剩下两枚硬币,则一枚会被移除,另一枚不会被翻转(因为它将被翻转两次)。如果(在操作之前)只剩下一枚硬币,则不会翻转任何硬币。如果(在操作之前)没有正面朝上的硬币,则玩家输掉游戏。
决定在他们都以最优方式玩游戏时谁将赢得游戏。可以证明游戏将在有限步数内结束,其中一个玩家将获胜。
输入
每个测试包含多个测试用例。第一行包含测试用例的数量 t(1≤t≤100)。以下是测试用例的描述。
每个测试用例的第一行仅包含一个正整数 n(1≤n≤100),表示硬币的数量。
每个测试用例的第二行包含一个长度为 n 的字符串 s,其中只包含 "U" 和 "D",表示每枚硬币是正面朝上还是背面朝上。
输出
对于每个测试用例,如果 Alice 将赢得游戏,则打印 "YES",否则打印 "NO"。
你可以以任何大小写形式输出答案。例如,字符串 "yEs"、"yes"、"Yes" 和 "YES" 都将被识别为肯定响应。


解题思路:

hhh,当你看完样例你就知道这是奇偶问题,当U的数量为奇数,Alice 将赢得游戏,偶数Bob赢得游戏。


AC代码:
#include<iostream>
#include<cstring>
using namespace std;
string s;
int t,n;
int main(){cin>>t;while(t--){cin>>n;int sumu=0;cin>>s;for(int i=0;i<s.size();i++){if(s[i]=='U')sumu++;}cout<<(sumu%2==0?"NO":"YES")<<endl;}return 0;
}

C题:


 翻译中文题面:

你有一些卡片。每张卡片上都写着一个介于 1 和 n 之间的整数:具体来说,从 1 到 n 的每张 i ,你们有 ai 张写着数字 i 的卡片。

还有一个商店,里面有无限量的各种类型的卡片。您有 k 枚金币,因此您总共可以购买 k 张新卡片,您购买的卡片可以包含 1 到 n 之间的任意整数。

买完新牌后,你要将所有牌重新排列成一行。重新排列的得分是长度为 n 的(连续)子数组的数量,这些子数组是 [1, 2, ..., n] 的排列组合。你能得到的最高分是多少?

输入

每个测试包含多个测试用例。第一行包含测试用例的数量 t (1<=t<=100) 。测试用例说明如下。

每个测试用例的第一行包含两个整数 n , k ( 1<= n <=2 *10^5 , 0<=k<=10^12 )不同类型纸牌的数量和硬币的数量。

每个测试用例的第二行包含 n 个整数 a1, a2, ..., an ( 1<=ai <=10^12 )  开始时拥有的 i 类型的纸牌数量。

保证所有测试用例中 n 的总和不超过 5 *10^5 。

输出

对于每个测试用例,输出一行包含一个整数的数据:你能得到的最大分数。


解题思路:

这个问题看上去是一个数的排列问题,无非就是求一个组合排列,里面有多少个[1--n]的组合数,看完给的测试数据之后,从第三组测试样例来看,3 4 6 1 8,我们可以看出来主要贡献最大分数的还是数字2(1个),这就说明了这个一组合要得到最大的分数,那就要看短板,这就相当于木桶效应,能乘多少水取决于木桶里面最短的一个木板。这个样例中数字1(6个)数字2(1个)数字3(8个),最少的是数字2,无论咋样组合,数字2只有一个,最多只能有两种组合(数字2左边组合,右边组合),那么我们有k枚金币,可以去买不同的数,那就要买这堆数里面最少的那个数,比如1 6 8,先把数字1买到跟数字2一样6个,再往后让数字1跟数字2买到跟数字3相同8个,再多了就三个一组一起买,所求的分数如何算。(a[i]+k/i)*n+n-i+k%i-n+1为了方便写在纸上,如下图:


AC代码:
#include<bits/stdc++.h>
using namespace std;
const int N=5e5+5;
int t,n;
long long k,a[N];
int main(){scanf("%d",&t);while(t--){scanf("%d %lld",&n,&k);for(int i=1;i<=n;i++){scanf("%lld",&a[i]);}sort(a+1,a+n+1);//排序方便金币购买for(int i=1;i<=n;i++){if(i<n&&k>=(a[i+1]-a[i])*i){//金币足够买到与下一个数相同的个数k-=(a[i+1]-a[i])*i;}else{printf("%lld\n",max(0ll,(a[i]+k/i)*n+n-i+k%i-n+1));//由于涉及到减法,防止答案为负数,与0取最大值break;}}}return 0;
} 

D1题:


 翻译中文题面:

 两个版本的问题不同。您可能需要同时阅读两个版本。只有两个版本的问题都解决了,您才能进行破解。

给你两个正整数 n , m 。

计算满足以下条件的有序数对 (a, b) 的个数:

- 1<=a<=n , 1<=b<=m ;
- a+b 是 b *gcd(a,b) 的倍数。

输入

每个测试包含多个测试用例。第一行包含测试用例的数量 t ( 1<=t<=10^4 )。测试用例说明如下。

每个测试用例的第一行包含两个整数 n , m (1<=n,m<=2 *10^6 )。

保证所有测试用例中 n 和 m 的总和不超过 2 *10^6 。

输出

为每个测试用例打印一个整数:有效配对的数量。

在第一个测试案例中,只有 (1,1) 满足条件。

在第四个测试用例中, (1,1),(2,1),(2,2),(3,1),(4,1),(5,1),(6,1),(6,2),(6,3),(7,1),(8,1),(9,1),(10,1),(10,2) 满足条件。


解题思路:

AC代码:
#include<iostream>
using namespace std;
typedef long long ll;
int n,m,t;
ll ans;
int main(){cin>>t;while(t--){cin>>n>>m;ans=0;for(int i=1;i<=m;i++){ans+=(n+i)/(1ll*i*i);}cout<<ans-1<<endl;}return 0;
}

D2题:


翻译中文题面:

两个版本的问题不同。您可能需要同时阅读两个版本。只有两个版本的问题都解决了,您才能进行破解。

给你两个正整数 n , m 。

计算满足以下条件的有序数对 (a, b) 的个数:

- 1<=a<=n, 1<=b<=m ;
- b*gcd(a,b) 是 a+b的倍数。


解题思路:

与上一个D1题倒过来了,假设都与上一个题一样的思路。这里粘一个官方题解。


AC代码:
#include<iostream>
#include<cmath>
#include<algorithm>
using namespace std;
int t,n,m;
int main(){cin>>t;while(t--){cin>>n>>m;int ans=0;for(int i=1;i<=sqrt(n);i++){for(int j=1;j<=sqrt(m);j++){if(__gcd(i,j)==1){ans += min(n/(i*(i+j)),m/(j*(i+j)));}}}cout<<ans<<"\n";}return 0;
}

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

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

相关文章

安全与便捷并行,打造高效易用的用户支付体验

在当今数字时代&#xff0c;快捷、安全的支付方式已经成为用户日常生活中不可或缺的一部分。不论是在线购物、订阅服务&#xff0c;还是线下消费&#xff0c;用户都期望享受流畅且安全的支付体验。作为开发者&#xff0c;选择适合的支付服务不仅关乎用户体验&#xff0c;更直接…

漏洞预警:Nacos 0day漏洞触发远程代码执行

Nacos即Dynamic Naming and Configuration Service&#xff08;动态命名与配置服务&#xff09;&#xff0c;是开源的一款服务发现、配置和管理微服务的中间件。 在Nacos中新发现的0day漏洞可以触发远程代码执行&#xff0c;开源网安RASP团队检测并分析出三种类型的攻击&#x…

MySQL学习(13):SQL优化:查看SQL语句性能的方法

1.查看SOL执行频率 MySQL客户端连接成功后&#xff0c;通过如下指令&#xff0c;可以查看当前数据库的insert、update、delete、select的访问频次: show global status like Com_______; #查看全局。后面是7个下划线 使用效果如下&#xff1a; 可以看到各条命令的使用次数。…

android13读取cpu频率,并调整频率

总纲 android13 rom 开发总纲说明 目录 1.前言 2.频率类型 3.获取cpu可以调节的频率 4.获取当前频率 5.设置频率 6.最后我们写个脚本,来实现,可以通过参数获取所有cpu的频率,以及设置最大最小频率 6.1 获取cpu频率 6.2 设置最大cpu频率 6.3 设置最小 7.彩蛋 1.前…

Spring完整知识点汇总一

Spring简介 额外知识点 在之前的学习中我们在Service业务层创建Dao/Mapper数据访问层&#xff08;持久层&#xff09;的对象是通过工具类来获取对应Dao/Mapper数据访问层&#xff08;持久层&#xff09;的接口代理对象在此处我们不用工具类来获取对应Dao/Mapper数据访问层&…

图论模型-迪杰斯特拉算法和贝尔曼福特算法★★★★

该博客为个人学习清风建模的学习笔记&#xff0c;部分课程可以在B站&#xff1a;【强烈推荐】清风&#xff1a;数学建模算法、编程和写作培训的视频课程以及Matlab等软件教学_哔哩哔哩_bilibili 目录 ​1图论基础 1.1概念 1.2在线绘图 1.2.1网站 1.2.2MATLAB 1.3无向图的…

15现代循环神经网络—GRU与LSTM

目录 1.门控循环单元 GRU关注一个序列门候选隐状态(candidate hidden state)隐状态总结从零开始代码实现代码简洁实现2.长短期记忆网络 LSTM门候选记忆单元(candidate memory cell)记忆单元隐状态代码1.门控循环单元 GRU GRU 是最近几年提出来的,在 LSTM 之后,是一个稍微简…

关于 windows系统中双精度double除法编译优化导商变量不变化(代码调整+volatile) 的解决方法

若该文为原创文章&#xff0c;转载请注明原文出处 本文章博客地址&#xff1a;https://hpzwl.blog.csdn.net/article/details/140592209 红胖子(红模仿)的博文大全&#xff1a;开发技术集合&#xff08;包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软…

Python爬虫(2) --爬取网页页面

文章目录 爬虫URL发送请求UA伪装requests 获取想要的数据打开网页 总结完整代码 爬虫 Python 爬虫是一种自动化工具&#xff0c;用于从互联网上抓取网页数据并提取有用的信息。Python 因其简洁的语法和丰富的库支持&#xff08;如 requests、BeautifulSoup、Scrapy 等&#xf…

基于IEKF迭代扩展卡尔曼滤波算法的数据跟踪matlab仿真,对比EKF和UKF

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 5.完整程序 1.程序功能描述 基于IEKF迭代扩展卡尔曼滤波算法的数据跟踪matlab仿真,对比EKF和UKF.仿真输出误差收敛曲线和误差协方差收敛曲线。 2.测试软件版本以及运行结果展示 MATLAB2022…

springboot 配置 spring data redis

1、在pom.xml引入父依赖spring-boot-starter-parent&#xff0c;其中2.7.18是最后一版支持java8的spring <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.18</…

助燃新质生产力,魔珐科技亮相IMC2024制造业数字科技大会展示有言AIGC视频工具价值

2024年7月19日&#xff0c;IMC2024第八届制造业数字科技大会在上海盛大开幕&#xff0c;本次大会以《向“智”而行》为主题&#xff0c;250智能制造行业数字化转型企业、行业领军者及实践者共聚一堂&#xff0c;共同助力企业增强技术“硬核力”&#xff0c;为新质生产力蓄势赋能…

buuctf web 第五到八题

[ACTF2020 新生赛]Exec 这里属实有点没想到了&#xff0c;以为要弹shell&#xff0c;结果不用 127.0.0.1;ls /PING 127.0.0.1 (127.0.0.1): 56 data bytes bin dev etc flag home lib media mnt opt proc root run sbin srv sys tmp usr var127.0.0.1;tac /f*[GXYCTF2019]Pin…

最新全新UI异次元荔枝V4.4自动发卡系统源码

简介&#xff1a; 最新全新UI异次元荔枝V4.4自动发卡系统源码 更新日志&#xff1a; 1增加主站货源系统 2支持分站自定义支付接口 3目前插件大部分免费 4UI页面全面更新 5分站可支持对接其他分站产品 6分站客服可自定义 7支持限定优惠 图片&#xff1a; 会员中心截图&…

多类支持向量机损失(SVM损失)

(SVM) 损失。SVM 损失的设置是&#xff0c;SVM“希望”每个图像的正确类别的得分比错误类别高出一定幅度Δ。 即假设有一个分数集合s[13,−7,11] 如果y0为真实值&#xff0c;超参数为10&#xff0c;则该损失值为 超参数是指在机器学习算法的训练过程中需要设置的参数&#xf…

学习并测试SqlSugar的单库事务功能

SqlSugar支持单库事务、多租户事务、多库事务&#xff0c;本文学习并测试单库事务的基本用法。   使用SqlSugarClient类、ISqlSugarClient接口都可以创建SqlSugarClient数据库操作实例&#xff0c;其区别在于&#xff0c;针对单库而言&#xff0c;SqlSugarClient类支持调用Be…

【python】NumPy运行报错分析:IndexError——数组索引越界问题

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

matlab simulink气隙局部放电仿真技术研究

1、内容简介 略 87-可以交流、咨询、答疑 2、内容说明 略 为了解决目前国内外局部放电仿真方法难以计算气隙局部放电暂态过程的问题 , 利用 MATLAB (SIMULINK ) 的公共模块库和电力系统专业模块库 , 根据单气隙局部放电仿真物理模型 , 构造了气隙局部放 电仿真计算的电…

树状数组优化dp

这个题目怎么去想呢&#xff0c;我们先构造前缀和&#xff0c;一般思路肯定是用两层循环&#xff0c;但是一定会超时&#xff0c;我们的数据范围是 1e5&#xff0c;那我们必须找到复杂度为 nlog n 的才行&#xff0c;所以我们可以考虑每次计算以 i 结尾的子数组的数量&#xff…