Educational Codeforces Round 102 (Rated for Div. 2)
2024-09-01 01:26:05
A(水题)
题目:
给出一个数组\(a\)并能进行一个操作使得数组元素更改为数组任意其他两元素之和,问是否可以让数组元素全部小于等于\(d\)
解析:
排序后判断最大值是否小于等于\(d\)或者最小的两个值是否小于等于\(d\)即可
#include<bits/stdc++.h>
using namespace std;
const int maxn = 105;
int n, dat[maxn];
int main() {
int T;
scanf("%d", &T);
while (T--) {
int n, d;
dat[1] = 0;
scanf("%d%d", &n, &d);
for (int i = 0; i < n; ++i)
scanf("%d", &dat[i]);
sort(dat, dat + n);
printf("%s\n", dat[n - 1] <= d || dat[0] + dat[1] <= d ? "YES" : "NO");
}
}
B(思维)
题目:
给出两个字符串,定义\(LCM(S_1,S_2)\)是由这两个串作为循环节的最小长度串,问\(LCM(S_1,S_2)\)是什么,如果不存在则输出\(-1\)
解析:
如果\(LCM\)存在,则它的长度一定是\(LCM(len_1,len_2)\),那么已知最终串的长度,就可以算出每个循环节的循环次数,判断循环倍增后的串是否相同即可
#include<bits/stdc++.h>
using namespace std;
string str[2];
string repeat(const string& a, int x) {
string t;
while (x--)
t += a;
return t;
}
int gcd(int a, int b) { return b ? gcd(b, a % b) : a; }
int main() {
ios::sync_with_stdio(false);
cin.tie(0);
int T;
cin >> T;
while (T--) {
cin >> str[0] >> str[1];
int d = gcd(str[0].length(), str[1].length());
string t[2] = { repeat(str[0],str[1].length() / d),repeat(str[1],str[0].length() / d) };
cout << (t[0] == t[1] ? t[0] : "-1") << endl;
}
}
C(找规律)
题目:
给出\(n\)与\(k\),以及对应的数组\(a=1,2,\dots,k-1,k,k-1,k-2,\dots,k-(n-k)\),现在假定有一个长度为\(k\)的排列\(p\),依照他构造出数组\(b\),使得\(b[i]=p[a[i]]\),问使得\(b\)中逆序对数不超过\(a\)的话,p中满足要求的且为最大字典序的排列是什么
解析:
这样的变换可以理解为\(a\)为索引下表,\(b\)为对应值
o( ̄▽ ̄)ブ找规律可以发现,将原本\(k,k-1,k-2,\dots,k-(n-k)\)进行倒序排列,逆序对数不会改变,且可以让字典序增加,但除此之外的序列仍然需要服从正序排列\(1\dots n-(n-k+1)\)
#include<bits/stdc++.h>
using namespace std;
int n, k;
int main() {
int T;
scanf("%d", &T);
while (T--) {
scanf("%d%d", &n, &k);
int a = n - k;
int b = k - a;
for (int i = 1; i < b; ++i)
printf("%d ", i);
for (int j = 0; j <= a; ++j)
printf("%d ", k - j);
printf("\n");
}
}
D(思维)
题目:
解析:
E()
题目:
解析:
最新文章
- InfoPi运行机制介绍
- 将SQL SERVER数据库改成MySql
- Java api 入门教程 之 JAVA的包装类
- 压测 apache ab 初探
- CocoaPods安装和使用教程(转摘)
- css - float浮动模块的高度问题 解决方案
- Web用户自定义控件
- Python:if-while-for
- King&#39;s Quest - poj 1904(强连通分量+外挂输入输出)
- 《C程序设计语言》读书笔记----习题1-21
- Ubuntu14.04 安装Oracle JDK
- LoadRunner【第五篇】关联
- FJUT3260
- C++进阶--Koenig lookup 依赖于实参的名字查找
- e870. 获取默认外观的数据
- 数学分析中jensen不等式由浅入深进行教学(转)
- Nginx负载均衡的五种策略
- Docker添加官方加速源(必须)
- bean对grub4dos做出的巨大贡献总结
- Delphi 实现多线程编程的线程类 TThread
热门文章
- pyppeteer 登录一般网站 并利用 http方法获取登录页面的验证码
- memcached session会话共享
- windows 上的MySQL默认字符集设置踩过的坑
- day111:MoFang:邀请好友流程&;生成邀请好友二维码&;第三方应用识别二维码&;本地编译测试&;记录邀请人信息
- react第三单元(react组件的生命周期)
- 1款开源工具,实现自动化升级K3S集群!
- 使用docker-maven-plugin打包
- Vue必须必须要注意的几个细节
- Python爬取跑男的评论,看看大家都在看谁吧
- 高德打车对接loader.js文件的实现