5.30 学习总

刷题记录(Codeforces Round 947 (Div. 1 + Div. 2)B,C题)和Codeforces Round 948 (Div. 2)B题

一.B. 378QAQ and Mocha's Array
B. 378QAQ and Mocha's Array
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output

Mocha likes arrays, so before her departure, 378QAQ gave her an array a𝑎 consisting of n𝑛 positive integers as a gift.

Mocha thinks that a𝑎 is beautiful if there exist two numbers i𝑖 and j𝑗 (1≤i,j≤n1≤𝑖,𝑗≤𝑛i≠j𝑖≠𝑗) such that for all k𝑘 (1≤k≤n1≤𝑘≤𝑛), ak𝑎𝑘 is divisible†† by either ai𝑎𝑖 or aj𝑎𝑗.

Determine whether a𝑎 is beautiful.

†† x𝑥 is divisible by y𝑦 if there exists an integer z𝑧 such that x=y⋅z𝑥=𝑦⋅𝑧.

Input

Each test contains multiple test cases. The first line contains the number of test cases t𝑡 (1≤t≤5001≤𝑡≤500). The description of the test cases follows.

The first line of each test case contains a single integer n𝑛 (3≤n≤1053≤𝑛≤105) — the length of the array a𝑎.

The second line of each test case contains n𝑛 integers a1,a2,…,an𝑎1,𝑎2,…,𝑎𝑛 (1≤ai≤1091≤𝑎𝑖≤109) — the elements of the array a𝑎.

It is guaranteed that the sum of n𝑛 over all test cases does not exceed 105105.

Output

For each test case, output "Yes" if array a𝑎 is beautiful, and output "No" otherwise.

You can output "Yes" and "No" in any case (for example, strings "yEs", "yes", "Yes" and "YES" will be recognized as a positive response).

Example
input
Copy
 
4
3
7 3 8
5
7 1 9 3 5
5
4 12 2 6 3
5
7 49 9 3 1000000000
output
Copy
No
Yes
Yes
No
Note

In the first test case, any two numbers in the array are coprime, so the answer is "No".

In the second test case, we can pick i=2𝑖=2 and j=1𝑗=1. Since every number in the array is divisible by ai=1𝑎𝑖=1, the answer is "Yes".

In the third test case, we can pick i=3𝑖=3 and j=5𝑗=522 and 44 is divisible by ai=2𝑎𝑖=2 while 3366 and 1212 is divisible by aj=3𝑎𝑗=3, so the answer is "Yes".

题意:题目要求我们找到两个数,使得整个数组的每个数都可以被两个数至少一个整除。

思路:因为是整除关系,小数一定不能被大数整除,所以从最小数下手。

找到的第一个数一定是数组的最小数,第二个数为能被第一个数整除的最小数。

#include<bits/stdc++.h>
#define ll long long
using namespace std;
void solve()
{ll n;cin>>n;vector<ll>a(n);for(ll &i:a){cin>>i;}if(n<=2){cout<<"Yes\n";return;}bool ans=true;sort(a.begin(),a.end());ll b,c;b=a[0];int f=0,f1=0;for(int i=1;i<n;i++){if(a[i]!=a[i-1]) {f=1;}if(a[i]%b!=0&&f==1){f1=1;c=a[i];break;}}if(f==0||f1==0){cout<<"Yes\n";return ;}for(ll i=2;i<n;i++){if(a[i]%b!=0&&a[i]%c!=0) {ans=false;break;}}cout<<(ans?"Yes\n":"No\n");
}
int main()
{int t;cin>>t;while(t--){solve();}return 0;
}

二.C. Chamo and Mocha's Array

C. Chamo and Mocha's Array
time limit per test
2 seconds
memory limit per test
256 megabytes
input
standard input
output
standard output

Mocha likes arrays, so before her departure, Chamo gave her an array a𝑎 consisting of n𝑛 positive integers as a gift.

Mocha doesn't like arrays containing different numbers, so Mocha decides to use magic to change the array. Mocha can perform the following three-step operation some (possibly, zero) times:

  1. Choose indices l𝑙 and r𝑟 (1≤l<r≤n1≤𝑙<𝑟≤𝑛)
  2. Let x𝑥 be the median†† of the subarray [al,al+1,…,ar][𝑎𝑙,𝑎𝑙+1,…,𝑎𝑟]
  3. Set all values al,al+1,…,ar𝑎𝑙,𝑎𝑙+1,…,𝑎𝑟 to x𝑥

Suppose a=[1,2,3,4,5]𝑎=[1,2,3,4,5] initially:

  • If Mocha chooses (l,r)=(3,4)(𝑙,𝑟)=(3,4) in the first operation, then x=3𝑥=3, the array will be changed into a=[1,2,3,3,5]𝑎=[1,2,3,3,5].
  • If Mocha chooses (l,r)=(1,3)(𝑙,𝑟)=(1,3) in the first operation, then x=2𝑥=2, the array will be changed into a=[2,2,2,4,5]𝑎=[2,2,2,4,5].

Mocha will perform the operation until the array contains only the same number. Mocha wants to know what is the maximum possible value of this number.

†† The median in an array b𝑏 of length m𝑚 is an element that occupies position number ⌊m+12⌋⌊𝑚+12⌋ after we sort the elements in non-decreasing order. For example, the median of [3,1,4,1,5][3,1,4,1,5] is 33 and the median of [5,25,20,24][5,25,20,24] is 2020.

Input

Each test contains multiple test cases. The first line contains the number of test cases t𝑡 (1≤t≤5001≤𝑡≤500). The description of the test cases follows.

The first line of each test case contains a single integer n𝑛 (2≤n≤1052≤𝑛≤105) — the length of the array a𝑎.

The second line of each test case contains n𝑛 integers a1,a2,…,an𝑎1,𝑎2,…,𝑎𝑛 (1≤ai≤1091≤𝑎𝑖≤109) — the elements of the array a𝑎.

It is guaranteed that the sum of n𝑛 over all test cases does not exceed 105105.

Output

For each test case, output the maximum value of the number.

Example
input
Copy
 
2
2
1 2
5
1 2 3 4 5
output
Copy
1
4
Note

In the first test case, a=[1,2]𝑎=[1,2]. Mocha can only choose the interval (l,r)=(1,2)(𝑙,𝑟)=(1,2). The array will be changed to a=[1,1]𝑎=[1,1]. Therefore, the answer is 11.

In the second test case, Mocha can perform the following operations:

  • Choose the interval (l,r)=(4,5)(𝑙,𝑟)=(4,5), then a=[1,2,3,4,4]𝑎=[1,2,3,4,4].
  • Choose the interval (l,r)=(3,5)(𝑙,𝑟)=(3,5), then a=[1,2,4,4,4]𝑎=[1,2,4,4,4].
  • Choose the interval (l,r)=(1,5)(𝑙,𝑟)=(1,5), then a=[4,4,4,4,4]𝑎=[4,4,4,4,4].

The array contains only the same number, which is 44. It can be proven that the maximum value of the final number cannot be greater than 44.

题意:对于整个数组,我们可以选择一个范围(l,r),将这个范围内的数全部变为这个范围内的中位数,可以进行多次操作或者不做操作,求最后的数组的全部元素的最大值。

思路:因为当选择的范围长度是2时,就可以将这个范围的两个数全部变为这两个数的较小值(x),那么一定存在一个长度为3的范围内的中位数<=x。

如果整个数组的长度为2,输出较小值即可,反之,遍历数组全部长度为3的子数组,找到最大的中位数,然后输出。

#include<bits/stdc++.h>
#define ll long long
using namespace std;
void solve()
{int n;cin>>n;vector<int>a(n);for(int &i:a)cin>>i;if(n==2){cout<<min(a[0],a[1])<<"\n";return;	}ll ans=-1;for(int i=0;i<n-2;i++){int p[3];p[0]=a[i];p[1]=a[i+1];p[2]=a[i+2];sort(p,p+3);ans=max(ans,(ll)p[1]);}cout<<ans<<"\n";
}
int main()
{int t;cin>>t;while(t--){solve();}return 0;
}

三.B. Symmetric Encoding

B. 对称编码
每次测试的时间限制
为 2 秒
每次测试的内存限制
256 兆字节
输入
标准输入
输出
标准输出

Polycarp 有一根绳子s𝑠,由小写的拉丁字母组成。他使用以下算法对此字符串进行编码:

  • 首先,他构造了一个新的辅助弦r𝑟,它由字符串的所有不同字母组成s𝑠,按字母顺序书写;
  • 然后编码如下:字符串中的每个字符s𝑠替换为字符串中的对称字符r𝑟(字符串的第一个字符r𝑟将被最后一个替换,第二个被倒数第二个替换,依此类推)。

例如,对字符串进行编码s𝑠="CodeForces“的发生方式如下:

  • 字符串r𝑟以“cdefors";
  • 第一个字符s1𝑠1='c' 替换为 的';
  • 第二个角色s2𝑠2='o' 替换为 'e';
  • 第三个角色s3𝑠3='d' 替换为 'r';
  • ...
  • 最后一个字符s10𝑠10='s“替换为”c“。

字符串r𝑟和替代品s𝑠="CodeForces“。

因此,对字符串进行编码的结果s𝑠="codeforces“是字符串”serofedsoc“。

编写一个执行解码的程序,即恢复原始字符串s𝑠从编码结果。

输入

第一行包含单个整数t𝑡 (1≤吨≤1041≤𝑡≤104) — 测试用例的数量。

每个测试用例的第一行包含一个整数n𝑛 (1≤N≤2⋅1051≤𝑛≤2⋅105) — 字符串的长度b𝑏.

每个测试用例的第二行都包含一个字符串b𝑏长度n𝑛,由小写拉丁字母组成 — 对原始字符串进行编码的结果s𝑠.

可以保证n𝑛在测试中的所有测试用例不超过2⋅1052⋅105.

输出

对于每个测试用例,输出字符串s𝑠从中获取编码结果b𝑏已获得。

输入
复制
 
5
10
serofedsoc
3
ttf
9
tlrhgmaoi
1
w
15
hnndledmnhlttin
输出
复制
codeforces
fft
algorithm
w
meetinthemiddle

#include<bits/stdc++.h>
using namespace std;
void solve()
{int n;cin>>n;string s,t,v;cin>>s;t=s;sort(t.begin(),t.end());for(int i=0;i<n;i++){if(t[i]!=t[i+1]) v+=t[i];}map<char,char>q;for(int i=0;i<v.size();i++){q[v[i]]=v[v.size()-1-i];}for(int i=0;i<n;i++){s[i]=q[s[i]];}cout<<s<<"\n";
}
int main()
{int t;cin>>t;while(t--){solve();}
}

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

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

相关文章

长难句5.30

Researchers measured people’s cortisol, which is a stress marker, while they were at work and while they were at home and found it higher at what is supposed to be a place of refuge. 研究人员测量了人们在工作中和在家里的皮质醇(压力的一种标志)&#xff0c;结…

为啥装了erlang,还报错erl: command not found?

转载说明&#xff1a;如果您喜欢这篇文章并打算转载它&#xff0c;请私信作者取得授权。感谢您喜爱本文&#xff0c;请文明转载&#xff0c;谢谢。 问题背景&#xff1a; 在一台不通外网的服务器上装rabbitmq&#xff0c;然后在启动的时候&#xff0c;遇到了报错 “/usr/lib/…

C#中使用Mapster

Mapster是一个开源的.NET对象映射库&#xff0c;它提供了一种简单而强大的方式来处理对象之间的映射。 多个映射框架的性能对比&#xff1a; 第一步安装Mapster 使用方法 public class Test {public string name { get; set; }public string sex { get; set; }public string…

C语言数据结构(超详细讲解)| 二叉树的实现

二叉树 引言 在计算机科学中&#xff0c;数据结构是算法设计的基石&#xff0c;而二叉树&#xff08;Binary Tree&#xff09;作为一种基础且广泛应用的数据结构&#xff0c;具有重要的地位。无论是在数据库索引、内存管理&#xff0c;还是在编译器实现中&#xff0c;二叉树都…

记录Win11安装打印机驱动过程

1. 首先下载打印机对应型号的驱动 可以从这里下载&#xff1a;打印机驱动,打印机驱动下载 - 打印机驱动网 2. 下载 3. 打开控制面板-->设备和打印机 找到目标打印机添加设备即可 新增打印纸张尺寸

B站稿件生产平台高可用建设分享

背景 B站作为国内领先的内容分享平台&#xff0c;其核心功能之一便是支持UP主们创作并分享各类视频内容。UP主稿件系统作为B站内容生产的关键环节&#xff0c;承担着从内容创作到发布的全过程管理。为了满足不同创作者的需求&#xff0c;B站提供了多种投稿渠道&#xff0c;包括…

方差分析的七种类型

方差分析&#xff08;ANOVA&#xff09;是一种用于检验两个以上样本均数差别的显著性统计方法。根据不同的研究设计和数据类型&#xff0c;方差分析可以分为以下7种类型。 一、单因素方差分析 ①单因素方差分析说明 单因素方差分析用于研究一个定类数据&#xff08;自变量&am…

【原创教程】MES服务器与成品打标机控制说明

1 实现的功能及应用的场合 MES即制造执行系统(manufacturing execution system,简称MES),即在加强MRP计划的执行功能,把MRP计划同车间作业现场控制,通过执行系统联系起来。 MES是一个生产管理智能化的一个系统,是用于生产时记录数据、产量等信息的智能管理系统。 该项…

SpockMockStatic方法

SpockMockStatic方法 参考: https://blog.csdn.net/knighttools/article/details/44630975 ‍ static方法 import com.meituan.mafka.client.producer.IProducerProcessor; import com.meituan.mdp.langmodel.api.message.AssistantMessage; import com.sankuai.gaigc.arrang…

文件批量重命名001到100如何操作?这几个文件改名小技巧学起来

文件批量重命名001到100怎么操作&#xff1f;作为打工一族&#xff0c;每天都需要跟很多文件打交道&#xff0c;有时文件太多了&#xff0c;查找起来像是大海捞针&#xff0c;特别是图片文件。这个时候我们就需要对大量文件进行整理和排序&#xff0c;这样有助于提高我们的工作…

微信小程序 自定义 tabBar

自定义 tabBar | 微信开放文档 本文案例使用的Taro 非原生微信小程序 使用流程 1. 配置信息 在 app.json 中的 tabBar 项指定 custom 字段&#xff0c;同时其余 tabBar 相关配置也补充完整。所有 tab 页的 json 里需声明 usingComponents 项&#xff0c;也可以在 app.json 全局…

电脑提示缺少vcruntime140_1.dll的解决方法,总结7种有效方法

vcruntime140_1.dll是Microsoft Visual C 2015运行时库的一部分&#xff0c;它为使用Visual Studio 2015开发的应用程序提供了必要的运行时组件。该文件支持C程序的执行&#xff0c;包括内存管理、输入输出操作以及多线程功能等。缺失或损坏此文件可能导致应用程序无法启动或运…

广告联盟四大家

国内四大广告承接商&#xff1a;①抖音旗下-穿山甲②快手旗下-快手联盟③百度旗下-百青藤④腾讯旗下-优量汇 我们目前在互联网上能看到的所有广告都是由他们发放的&#xff0c;在其中我们打小游戏复活看广告&#xff0c;获得道具看广告&#xff0c;看剧看广告&#xff0c;这…

基于词频统计的聚类算法(kmeans)

基于词频统计的聚类算法&#xff08;kmeans&#xff09; 数据集是三个政府报告文件&#xff0c;这里就不做详细描述了&#xff0c;就是简单的txt文件。 实验过程主要分为如下几步&#xff1a; 1.读取数据并进行停用词过滤 2.统计词频 3.基于三篇文章词频统计的层次聚类 4.基于…

废品回收小程序怎么做?有哪些核心功能?

废品回收行业正逐步走向高质量发展的道路。在国家政策的推动下&#xff0c;再生资源市场需求旺盛&#xff0c;行业内部竞争格局逐渐明朗。 随着互联网技术的发展&#xff0c;"互联网回收"成为废品回收行业的一个新趋势。通过微信小程序这种线上平台&#xff0c;用户…

数据可视化在智慧园区中的核心价值解析

数据可视化在智慧园区中发挥着至关重要的价值。智慧园区是一种基于物联网、大数据、云计算等先进技术的现代化管理模式&#xff0c;旨在通过智能化手段提升园区的管理效率、服务水平和用户体验。而数据可视化作为数据处理和展示的重要工具&#xff0c;正是智慧园区实现这些目标…

BUG: VS Code C++输出中文乱码

BUG: VS Code C输出中文乱码 环境 Windows 11 VS Code 编辑器详情 在Windows 使用 cout 函数输出中文时出现乱码 问题的原因在cmd的显示编码和c程序编码的不同。cmd默认的是gbk编码&#xff0c;而VS Code 软件的CMD终端默认是utf-8编码&#xff0c;因而在输出中文文本时会出…

Ubuntu server 24 安装配置 snort3 3.2.1.0 网络入侵检测防御系统 配置注册规则集

一 下载并安装源代码 地址:https://github.com/snort3/snort3/releases #下载&#xff0c;解压 wget https://github.com/snort3/snort3/archive/refs/tags/3.2.1.0.tar.gz tar zxvf 3.2.1.0.tar.gz 二 安装软件依赖包 1 安装依赖包 sudo apt update sudo apt install…

代码随想录算法训练营第四十四天 | 01背包问题 二维、 01背包问题 一维、416. 分割等和子集

01背包问题 二维 代码随想录 视频讲解&#xff1a;带你学透0-1背包问题&#xff01;| 关于背包问题&#xff0c;你不清楚的地方&#xff0c;这里都讲了&#xff01;| 动态规划经典问题 | 数据结构与算法_哔哩哔哩_bilibili 1.dp数组定义 dp[i][j] 下标为[0,i]之间的物品&…

【C#】类和对象的区别

1.区别概述 结构体和类的最大区别是在存储空间上&#xff0c;前者是值类型&#xff0c;后者是引用类型&#xff0c;它们在赋值上有很大的区别&#xff0c;在类中指向同一块空间的两个类的值会随一个类的改变而改变另一个&#xff0c;请看如下代码所示&#xff1a; namespace …