当前位置: 首页 > news >正文

Codeforces Round 963 (Div. 2)

A题:Question Marks

题目:

Tim正在做一个由 4n 个问题组成的测试,每个问题都有 4 个选项:“A”、“B”、“C”和“D”。对于每个选项,有 n 个正确答案对应于该选项,这意味着有 n 个问题的答案为“A”。 n 个答案为“B”的问题, n 个答案为“C”的问题以及 n 个回答为“D”的问题。每道题,蒂姆都把答案写在答题纸上。如果他想不出答案,他就会留下一个问号。为了这个问题。您将获得 4n 个字符的答题卡。蒂姆最多能得到多少个正确答案?


输入

第一行包含单个整数 t ( 1 <= t <= 1000 )—测试用例的数量。

每个测试用例的第一行包含一个整数 n ( 1 <= n <= 100 )。

每个测试用例的第二行包含 4n 个字符( si 属于{A, B, C, D, ?} )的字符串 s —Tim对问题的回答。

输出

对于每个测试用例,打印一个整数—Tim可以达到的最大分数。

样例

注意

在第一个测试用例中,每个答案“A”、“B”、“C”和“D”,只有一个问题,所以蒂姆有可能所有的答案都是正确的。在第二个测试案例中,只有两个正确答案'A',这使得他在任何情况下都能得到2 分。在第三个测试用例中,Tim最多可以得到 2 个选项'A'的正确答案和 2 个选项'B'的正确答案。例如,如果答案是'AACCBBDD',他将得到 4 分。在第四个测试案例中,他拒绝回答任何问题,这使他获得 0 分。


解题思路:

问题问的是他的最大得分,例如第一个样例他的答案为ABCD,那么我们默认正确的答案为ABCD,所以能得到4分,这种确认正确答案要建立在条件之上,确保每个选项出现的次数是一样的,当为5个问题时,必然有四个答案为A,B,C,D,还剩一个答案那就可以是任意一个,因为是要得最大的分,那么剩余那一个一定是答案出现两次的选项。当出现‘ ?’时可视为他空着这个题,没写答案,必然不得分。


AC代码:
#include<iostream>
using namespace std;
const int N=500;
int t,n;
char ch[N];
int main(){cin>>t;while(t--){cin>>n;cin>>ch;int suma=0,sumb=0,sumc=0,sumd=0;//记录四个选项出现次数for(int i=0;i<4*n;i++){if(ch[i]=='A')suma++;else if(ch[i]=='B')sumb++;else if(ch[i]=='C')sumc++;else if(ch[i]=='D')sumd++;}//因为4*n个问题每个选项最多出现n次if(suma>n)suma=n;if(sumb>n)sumb=n;if(sumc>n)sumc=n;if(sumd>n)sumd=n;cout<<suma+sumb+sumc+sumd<<endl;}return 0;
}

B题:Parity and Sum

题目: 

给定一个由n个正整数组成的数组 a 。

在一个操作中,您可以选择任意一对索引 (i, j) ,使 ai 和 aj 具有不同的奇偶校验,然后用它们的和替换较小的一个。更正式地说:

-如果ai < aj ,请将 ai 替换为 ai + aj

-否则,将 aj 替换为 ai + aj 。

找出使数组的所有元素具有相同奇偶性所需的最小操作数。


输入

第一行包含单个整数 t ( 1 <= t <= 10^4 )—测试用例的数量。

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

第二行包含 n 整数 a1, a2, ..., an ( 1 <= ai <= 10^9 )—数组 a 的元素。

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

输出

对于每个测试用例,输出一个整数——所需的最小操作数。

样例

注意

在第一个测试用例中,所有整数都具有相同的奇偶性。因此,不需要任何操作。

在第三个测试用例中,我们可以执行两个操作 (1, 2) 和 (1, 3) 。数组 a 转换如下: a = [2, 3, 4] -> [5, 3, 4] -> [5, 3, 9] 。

在第四个测试用例中,最优操作序列的示例是 (1, 2) 、 (1, 3) 、 (1, 4) 和 (1, 4) 。数组 a 转换如下: a = [3, 2, 2, 8] -> [3, 5, 2, 8] -> [3, 5, 5,8] -> [11, 5, 5, 8] -> [11, 5, 5, 19] 。


解题思路:

通过上面图片,我们知道了奇偶两两相加的特点,由此我们可以得出只有odd+even=odd是可行的,我们是这个式子中较小的为偶数,偶数与奇数相加为奇数,这就把偶数变为奇数了,当偶数>奇数时,通过这样的操作,可以把这个奇数的值变得更大,使得前面的条件偶数>奇数变为偶数<奇数,那么这样我们又可以通过操作一把偶数变为奇数。

那么我们的操作顺序是什么,先哪个奇数跟哪个偶数先操作,由题意知,我们要最大程度满足偶数<奇数这个条件,因为只有这个条件操作才是对目标序列有贡献的。这样我们的奇数使其最大,偶数使其最小,既能把偶数变为奇数的情况下,奇数的值也可能得到了更新。使偶数按照递增的顺序是最优的,例如a={2,3,4,8},开始奇数最大为3,偶数递增为{2,4,8},第一次把2变为5,此时奇数最大值为5,第二次5与4操作变为9,奇数最大值又得到更新变为9,第三次操作9与8变为17结束。这样最优没有奇数<偶数的情况。那么如果有奇数<偶数的情况,我们就让此时最大的奇数与最大的偶数进行一次操作,这样得到的奇数足够大,可以满足所有的偶数了,例如a={1,2,6},开始最大奇数一个也不满足,先让1与6进行一次操作,1变为7,这样7可以与2也可以与6进行操作了。如果1先于2进行操作,1变为3,在进行一次2变为5,5<6,最大奇数又小于偶数这样无非多一次操作。


AC代码:
#include<iostream>
#include<queue>
using namespace std;
typedef long long ll;
const int N=2e5+5;
ll a[N];//原数组
ll n,t;
priority_queue<ll,vector<ll>,greater<ll>> q;//升序优先队列(偶数)
int main(){cin>>t;while(t--){cin>>n;ll maxodd=0,maxeven=0;//最大奇数,最大偶数ll sum=0;//操作次数while(!q.empty()){//多次输入,清空队列q.pop();}for(int i=1;i<=n;i++){cin>>a[i];if(a[i]%2==1){maxodd=max(maxodd,a[i]);//求奇数最大值}else{q.push(a[i]);maxeven=max(maxeven,a[i]);//求偶数最大值}}if(maxodd==0||q.empty()){//都为奇数或偶数cout<<0<<endl;}else{ll len=q.size();ll sum1=0;//队内偶数操作次数while(1){if(q.top()>maxodd){maxodd=maxodd+maxeven;}else{maxodd=maxodd+q.top();q.pop();sum1++;}sum++;if(sum1==len)break;}cout<<sum<<endl;}}return 0;
}

C题:Light Switches

题目:

有一个由 n 个房间组成的公寓,每个房间的灯最初都是关闭的。为了控制这些房间的灯光,公寓的主人决定在房间里安装芯片,这样每个房间只有一个芯片。并且在不同的时间安装芯片。具体来说,这些时间由数组 a1, a2,..., an 表示,其中 ai 是时间(以分钟为单位)芯片安装在第 i 个房间。一旦安装了芯片,它就会每隔 k 分钟改变一次房间的灯光状态—它会打开灯光 k 分钟。然后在接下来的 k 分钟内将其关闭,然后在接下来的 k 分钟内将其重新打开,依此类推。换句话说,芯片在分钟 ai 、ai + k 、ai + 2k 、ai + 3k 改变灯的状态,公寓里所有房间的灯最早什么时候打开?


输入

第一行包含单个整数 t ( 1 <= t <= 10^4 )—测试用例的数量。

每个测试用例的第一行包含两个整数 n 和 k ( 1 <= k <= n <= 2*10^5 )—公寓中的房间数和芯片的周期。

第二行包含 n 不同的整数 a1, a2, ..., an ( 1 <= ai <= 10^9 )—安装芯片的时刻。

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

输出

对于每个测试用例,打印一个整数—问题的答案(以分钟为单位)。如果不存在所有房间的灯都打开的时刻,则改为打印 -1。

样例

注意

在第一个测试案例中,所有的灯都会在 5 分钟内打开,而不会被芯片关闭。答案是 5 。在第二个测试案例中,由于第一个指示灯将在 2, 3, 4, 8, 9, 10, 14, ... 分钟时亮起。同时,第 4 个指示灯将在 5, 6, 7, 11, 12, 13, 17, ... 分钟亮起。这两个序列没有任何相同的数字,因此它们永远不会同时出现。在第三个测试案例中,可以看到第一个灯和第二个灯将在 6 和 7 分钟关闭。但芯片将在 9 和 10 分钟时重新打开它们。第 3 和第 4 个灯也将在第 10 分钟亮起,因此答案是 10 。


解题思路:

灯亮的时刻:

  • x→x+k−1
  • x+2k→x+3k−1
  • x+4k→x+5k−1

列表中的每个段(除了第一个)实际上是它前面的段,移动了 2k 分钟。这也意味着,如果我们除以 2k 并在每个线段的两端取余数,则所有这些线段都变得相等。因此,我们将第 i 个芯片的片段称为 (ai mod 2k,(ai+k−1) mod 2k) 。因此,我们的问题被简化为:找到最小整数 s ,使得:

  1. max(a)≤ s 出现在每个部分中

  2. s mod 2k 属于其中的每个段之中


AC代码:
#include<bits/stdc++.h>
using namespace std;
int a[200001];
int main() {int t;cin>>t;while(t--){int n,k;cin >> n >> k;for(int i = 1; i <=n; ++i)cin>>a[i];sort(a+1,a+n+1);for(int i=1; i<=n; ++i)a[i]+=(a[n]+k-1-a[i])/(k*2)*k*2;sort(a+1,a+n+1);if(a[n]-a[1]+1>k) cout<<-1<<endl;else cout<<a[n]<<endl;}return 0;
}

相关文章:

Codeforces Round 963 (Div. 2)

A题&#xff1a;Question Marks 题目&#xff1a; Tim正在做一个由 4n 个问题组成的测试&#xff0c;每个问题都有 4 个选项&#xff1a;“A”、“B”、“C”和“D”。对于每个选项&#xff0c;有 n 个正确答案对应于该选项&#xff0c;这意味着有 n 个问题的答案为“A”。 n…...

Mysql函数学习笔记

MySQL 字符串函数 ASCII(s) 返回字符串 s 的第一个字符的 ASCII 码。 //返回 CustomerName 字段第一个字母的 ASCII 码 SELECT ASCII(CustomerName) AS NumCodeOfFirstChar FROM Customers;CHAR_LENGTH(s)-返回字符串 s 的字符数 //返回字符串 RUNOOB 的字符数 SELECT CHAR…...

【Linux基础】Linux基本指令(一)

目录 前言1&#xff0c; ls指令2&#xff0c;pwd指令三&#xff0c;cd指令3.1 当前目录与上级目录3.2 绝对路径和相对路径 四&#xff0c;创建一个普通文件或目录4.1 touch指令4.2 mkdir指令 五&#xff0c;删除目录或文件5.1 rmdir指令5.2 rm 指令 前言 从本章开始&#xff0…...

全球视野:航空蓄电池的国际标准与技术创新

航空蓄电池是一种专门为满足航空工业独特要求而设计的高性能储能设备。由于航空环境的特殊性&#xff0c;如高海拔、极端温度变化、频繁的充放电需求、以及对于设备重量和体积的严格限制&#xff0c;航空蓄电池需要具备一系列高级特性以确保飞机在各种飞行条件下能够安全有效地…...

11-初识python的函数——定义和调用

1 函数简介 function input()、print()、range()、len()都是python的内置函数&#xff0c;可以直接使用的 函数&#xff1a;可以用来保存代码&#xff0c;在需要的时候对这些语句进行重复调用 优点&#xff1a; 1. 遇到重复功能的时候&#xff0c;直接调用即可&#xff0c;…...

Windows安装Swoft框架

实现方式&#xff1a; 安装虚拟机&#xff0c;在虚拟机里用宝塔搭建环境后安装Swoft&#xff0c; 然后用Phpstorm SSH方式开发&#xff0c;用Apipost调用 websocket服务。 1、安装虚拟机&#xff0c;下载和安装参见 &#xff1a; https://blog.csdn.net/2401_84297265/article…...

阅读台灯什么品牌好?一文带你了解热门阅读台灯推荐

阅读台灯最终都绕不开护眼这个话题。护眼灯作为保护视力的辅助工具&#xff0c;以有效护眼的价值深受大众青睐。学生长时间用眼&#xff0c;普通台灯的伤害大&#xff0c;而阅读台灯的出现&#xff0c;通过其先进的技术和设计&#xff0c;能为学生提供了一个既舒适又健康的照明…...

1、.Net UI框架:Xamarin Forms - .Net宣传系列文章

Xamarin.Forms是一个跨平台移动应用开发框架&#xff0c;它允许开发者使用C#和.NET进行一次编码&#xff0c;然后在iOS、Android、macOS和Windows等多个平台上运行。Xamarin.Forms是Xamarin的一部分&#xff0c;而Xamarin是微软的.NET跨平台开发工具集&#xff0c;它提供了一套…...

Tomcat 最大连接数实现原理

spring boot 内置tomcat设置连接数 max-connections: 5 server:port: 9898servlet:context-path: /testtomcat:connection-timeout: 5000max-connections: 5accept-count: 5 ##初始化连接数量connectionLimitLatch protected LimitLatch initializeConnectionLatch() {if (ma…...

大数据应用【大数据导论】

各位大佬好 &#xff0c;这里是阿川的博客&#xff0c;祝您变得更强 个人主页&#xff1a;在线OJ的阿川 大佬的支持和鼓励&#xff0c;将是我成长路上最大的动力 阿川水平有限&#xff0c;如有错误&#xff0c;欢迎大佬指正 目录 大数据在许多领域应用互联网领域应用生物医学…...

IP地址申请SSL证书实现https访问

为IP地址申请SSL证书以实现HTTPS访问&#xff0c;可以确保通过网络传输的数据得到加密保护。下面是为IP地址申请并安装SSL证书一般的步骤&#xff1a; 1 访问CA 打开JoySSL官网&#xff0c;注册一个账号用于申请证书&#xff0c;注册时会有选填项注册码&#xff0c;填写后可获…...

未授权访问漏洞上(漏洞复现合集)

目录 一&#xff1a;Redis未授权访问漏洞 * 步骤一:进入vulhub目录使用以下命令启动靶机... 步骤二:在Kali上安装redis程序进行服务的链接 步骤三:可以直接连接执行命令且不需要认证说明存在未授权访问漏洞...下载以下攻击项目... 步骤四:使用工具执行以下命令获取目标的命…...

多久没有清理你的电脑磁盘了?轻松解锁免费轻量磁盘清理工具

随着我们日常使用电脑的时间越来越长&#xff0c;磁盘上积累的无用文件和垃圾数据也越来越多。这些文件不仅占用宝贵的存储空间&#xff0c;还可能拖慢电脑的运行速度。 那么&#xff0c;你多久没有清理过你的电脑磁盘了呢&#xff1f; 今天&#xff0c;我将为大家推荐几款免…...

高精度加法c++

题目描述 计算ab的值&#xff0c;a,b皆为不超过240位的正整数。 输入 两个正整数&#xff0c;每行一个 输出 一个数&#xff0c;代表两个整数的和 样例输入 111111111111111111111111111111111111 222222222222222222222222222222222222 样例输出 3333333333333333333…...

SQL布尔盲注

目录 1 布尔盲注 2布尔盲注流程 2.1输入id进行测试 2.2判断注入类型 2.3爆数据库名 2.4爆表名 2.5爆字段名 2.6查询数据 1 布尔盲注 布尔盲注就是在SQL注入过程中&#xff0c;SQL语句执行后&#xff0c;查询到的数据不能回显到前端页面&#xff0c;如果正确执行了构造的…...

OpenGL实现3D游戏编程【连载3】——3D空间模型光照初步

1、本节实现的内容 上一节课&#xff0c;我们建立了简单的坐标系&#xff0c;同时也显示了一个正方体&#xff0c;但正方体的颜色为纯红色&#xff0c;好像一个平面物体一样&#xff0c;我们这节课就可以加一些光照&#xff0c;并创建更多的模型&#xff0c;使这些物体变得更加…...

Python 进行反射和元编程

反射和元编程是Python中两种强大且高级的编程技术。反射允许程序在运行时检查和修改自身结构和行为&#xff0c;而元编程则是编写可以操作其他代码的代码&#xff0c;通常通过使用元类、装饰器等技术来实现。 1. 反射 反射是指程序在运行时检查和操作自身结构的能力。Python通…...

Please refer to dump files (if any exist) [date].dump, [date]-jvmRun[N]……解决

一、问题 Please refer to dump files (if any exist) [date].dump, [date]-jvmRun[N].dump and [date].dumpstream.二、解决方案 1、当打包构建的时候出现这个问题&#xff0c;如果你只是打包部署&#xff0c;那么就是将maven的test禁止可以成功打包 2、当你是本地服务器启动…...

如何看待“低代码”开发平台的兴起

目录 如何看待“低代码”开发平台的兴起&#xff1f;新机遇&#xff1a;效率与质量并进的新篇章1. 提升开发效率&#xff1a;2. 降低技术门槛&#xff1a;3. 创新加速&#xff1a; 挑战&#xff1a;质量和定制化需求的考量1. 定制能力受限&#xff1a;2. 依赖性和迁移成本 &…...

React类组件与函数组件有什么异同

相同点&#xff1a; 组件是react的最小代码片段&#xff0c;无论函数组件还是类组件 在使用方式 和 最终呈现效果是一致的类组件可以用函数组件重构&#xff0c;同样函数组件也可以用类组件重构&#xff08;并不推荐&#xff09;&#xff0c;在现代浏览器中闭包 和 类的性能只…...

Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?

Golang 面试经典题&#xff1a;map 的 key 可以是什么类型&#xff1f;哪些不可以&#xff1f; 在 Golang 的面试中&#xff0c;map 类型的使用是一个常见的考点&#xff0c;其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...

Golang dig框架与GraphQL的完美结合

将 Go 的 Dig 依赖注入框架与 GraphQL 结合使用&#xff0c;可以显著提升应用程序的可维护性、可测试性以及灵活性。 Dig 是一个强大的依赖注入容器&#xff0c;能够帮助开发者更好地管理复杂的依赖关系&#xff0c;而 GraphQL 则是一种用于 API 的查询语言&#xff0c;能够提…...

多模态商品数据接口:融合图像、语音与文字的下一代商品详情体验

一、多模态商品数据接口的技术架构 &#xff08;一&#xff09;多模态数据融合引擎 跨模态语义对齐 通过Transformer架构实现图像、语音、文字的语义关联。例如&#xff0c;当用户上传一张“蓝色连衣裙”的图片时&#xff0c;接口可自动提取图像中的颜色&#xff08;RGB值&…...

【决胜公务员考试】求职OMG——见面课测验1

2025最新版&#xff01;&#xff01;&#xff01;6.8截至答题&#xff0c;大家注意呀&#xff01; 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:&#xff08; B &#xff09; A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...

数据库分批入库

今天在工作中&#xff0c;遇到一个问题&#xff0c;就是分批查询的时候&#xff0c;由于批次过大导致出现了一些问题&#xff0c;一下是问题描述和解决方案&#xff1a; 示例&#xff1a; // 假设已有数据列表 dataList 和 PreparedStatement pstmt int batchSize 1000; // …...

RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程

本文较长&#xff0c;建议点赞收藏&#xff0c;以免遗失。更多AI大模型应用开发学习视频及资料&#xff0c;尽在聚客AI学院。 本文全面剖析RNN核心原理&#xff0c;深入讲解梯度消失/爆炸问题&#xff0c;并通过LSTM/GRU结构实现解决方案&#xff0c;提供时间序列预测和文本生成…...

Golang——9、反射和文件操作

反射和文件操作 1、反射1.1、reflect.TypeOf()获取任意值的类型对象1.2、reflect.ValueOf()1.3、结构体反射 2、文件操作2.1、os.Open()打开文件2.2、方式一&#xff1a;使用Read()读取文件2.3、方式二&#xff1a;bufio读取文件2.4、方式三&#xff1a;os.ReadFile读取2.5、写…...

为什么要创建 Vue 实例

核心原因:Vue 需要一个「控制中心」来驱动整个应用 你可以把 Vue 实例想象成你应用的**「大脑」或「引擎」。它负责协调模板、数据、逻辑和行为,将它们变成一个活的、可交互的应用**。没有这个实例,你的代码只是一堆静态的 HTML、JavaScript 变量和函数,无法「活」起来。 …...

在鸿蒙HarmonyOS 5中使用DevEco Studio实现指南针功能

指南针功能是许多位置服务应用的基础功能之一。下面我将详细介绍如何在HarmonyOS 5中使用DevEco Studio实现指南针功能。 1. 开发环境准备 确保已安装DevEco Studio 3.1或更高版本确保项目使用的是HarmonyOS 5.0 SDK在项目的module.json5中配置必要的权限 2. 权限配置 在mo…...

Matlab实现任意伪彩色图像可视化显示

Matlab实现任意伪彩色图像可视化显示 1、灰度原始图像2、RGB彩色原始图像 在科研研究中&#xff0c;如何展示好看的实验结果图像非常重要&#xff01;&#xff01;&#xff01; 1、灰度原始图像 灰度图像每个像素点只有一个数值&#xff0c;代表该点的​​亮度&#xff08;或…...