Codeforces round 919 (div2)
Problem - A - Codeforces
暴力枚举 就可以;
#include <bits/stdc++.h>
#define int long long
using namespace std;
vector<int>a;
int n;
signed main()
{
int _;
cin >> _;
while(_ --)
{
a.clear();
cin >> n;
int p = 1 , q = 1e9;
while(n --)
{
int x , k;
cin >> x >> k;
if(x == 1) p = max(p , k);
else if(x == 2) q = min(q , k);
else a.push_back(k);
}
int num = 0;
for(int i = 0 ; i < a.size() ; i ++)
if(a[i] <= q && a[i] >= p) num ++;
if(q < p) cout << 0 << endl;
else cout << q - p + 1 - num << endl;
}
return 0;
}
Problem - B - Codeforces
对于这道题,因为鲍勃需要将数组总和变得最小,所以他一定会用尽每次数次将最大的数几个数乘上-1,而爱丽丝需要将数组的总和变得最大,所以他可以进行删除操作,来防止 鲍勃将大数乘上-1从而使数组总和变小,所以我们可以使用前缀的方法,来进行判断;
#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
const int N = 1e6 + 10;
#define int long long
int a[N];
int p[N];
void solve()
{
int n , k , x;
cin >> n >> k >> x;
for(int i = 1 ; i <= n ; i ++) cin >> a[i];
sort(a + 1 , a + 1 + n); //进行排序;
for(int i = 1; i <= n ; i ++) p[i] = p[i - 1] + a[i];
int res = -2e9;
for(int i = 0 ; i <= k ; i ++) //枚举所删的个数
{
res = max(res , p[max(n - i - x ,(LL)0)] - (p[n - i] - p[max(n - x - i, (LL)0)]));
}
cout << res << endl;
}
signed main()
{
int _;
cin >> _;
while(_ --)
{
solve();
}
return 0;
}
Problem - C - Codeforces
这一题,用到数学的知识,我们发现 每一段 必须均匀分割,那么也就是说 这个分割的长度k必须是数组长度n的因数;这是第一;然后我们需要 让每一段的数 对k取模之后 与 后一段 的同一位置的数 对k取模之后的余数 要想等,也就是说
\]
按照上面所说就是要保证
\]
\]
\]
这只是拿两段来举例,对于每一段来说 都是这样,让每一段相同位置的数取模k余数相同
根据这个同余公式移向,我们可以得出:$ |x-x_{k+1}|\equiv 0 \ (mod\ k) $
如果k是|x_1-x_{k+1}|的因数, 那么x和x_{k+1}一定同余k\
所以当k为|x_1-x_{k+1}|的因数时,可以满足这个式子,若k又是|x_2-x_{k+2}|的因数,就满足上面 两个式子\
所以如果 k是 \(|x_1−x_{1+k}| , |x_2−x_{2+k}| ,..., |x_{n-k}−x_{n}|\)的因数,则满足所有条件:
所以k就为\(gcd(x_1−x_{1+k} , |x_2−x_{2+k}| ,..., |x_{n-k}−x_{n}|)\)
#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
const int N = 1e6 + 10;
#define int long long
int a[N];
int n;
void init()
{
for(int i = 1 ; i <= n ; i ++) a[i] = 0;
}
void solve()
{
int n;
cin >> n;
init();
int ans = 0;
for(int i = 1 ; i <= n ; i ++) cin >> a[i];
for(int k = 1 ; k <= n ; k ++) //枚举因数
{
if(n % k != 0) continue;
else //如果可以被n整除
{
int res = 0;
for(int i = 1 ; i + k <= n ; i ++)//从x1开始枚举一直枚举到第x_n-k
{
res = __gcd(res , abs(a[i + k] - a[i])); //公约数;
}
if(res != 1) ans ++;//找到公约数,如果不是1的话就会得分
}
}
cout << ans << endl;
}
signed main()
{
int _;
cin >> _;
while(_ --)
{
solve();
}
return 0;
}
Codeforces round 919 (div2)的更多相关文章
- Codeforces Round #539 div2
Codeforces Round #539 div2 abstract I 离散化三连 sort(pos.begin(), pos.end()); pos.erase(unique(pos.begin ...
- 【前行】◇第3站◇ Codeforces Round #512 Div2
[第3站]Codeforces Round #512 Div2 第三题莫名卡半天……一堆细节没处理,改一个发现还有一个……然后就炸了,罚了一啪啦时间 Rating又掉了……但是没什么,比上一次好多了: ...
- Codeforces Round#320 Div2 解题报告
Codeforces Round#320 Div2 先做个标题党,骗骗访问量,结束后再来写咯. codeforces 579A Raising Bacteria codeforces 579B Fin ...
- Codeforces Round #564(div2)
Codeforces Round #564(div2) 本来以为是送分场,结果成了送命场. 菜是原罪 A SB题,上来读不懂题就交WA了一发,代码就不粘了 B 简单构造 很明显,\(n*n\)的矩阵可 ...
- Codeforces Round #361 div2
ProblemA(Codeforces Round 689A): 题意: 给一个手势, 问这个手势是否是唯一. 思路: 暴力, 模拟将这个手势上下左右移动一次看是否还在键盘上即可. 代码: #incl ...
- Codeforces Round #626 Div2 D,E
比赛链接: Codeforces Round #626 (Div. 2, based on Moscow Open Olympiad in Informatics) D.Present 题意: 给定大 ...
- CodeForces Round 192 Div2
This is the first time I took part in Codeforces Competition.The only felt is that my IQ was contemp ...
- Codeforces Round #359 div2
Problem_A(CodeForces 686A): 题意: \[ 有n个输入, +\space d_i代表冰淇淋数目增加d_i个, -\space d_i表示某个孩纸需要d_i个, 如果你现在手里 ...
- Codeforces Round #360 div2
Problem_A(CodeForces 688A): 题意: 有d天, n个人.如果这n个人同时出现, 那么你就赢不了他们所有的人, 除此之外, 你可以赢他们所有到场的人. 到场人数为0也算赢. 现 ...
- Codeforces Round#310 div2
C题:这题说的是套娃,如果做题的时候知道是套娃,那就好理解多了 规则1:套娃A可以放到套娃B里面,当且仅当套娃B没有放在其他套娃里面 规则2:套娃A放在套娃B里面,且套娃B没有放在其他套娃里面,那么可 ...
随机推荐
- 手把手教你写一个spring IOC容器
摘要:spring框架的基础核心和起点毫无疑问就是IOC,IOC作为spring容器提供的核心技术,成功完成了依赖的反转:从主类的对依赖的主动管理反转为了spring容器对依赖的全局控制.今天就带大家 ...
- 如何使用Tomcat实现WebSocket即时通讯服务服务端
摘要:HTTP协议是"请求-响应"模式,浏览器必须先发请求给服务器,服务器才会响应该请求.即服务器不会主动发送数据给浏览器. 本文分享自华为云社区<Tomcat支持WebSo ...
- AI为啥能读懂说话人的情感?
摘要:本文介绍了语音情感识别领域的发展现状,挑战,重点介绍了处理标注数据缺乏的问题. 本文分享自华为云社区<语音情感识别的应用和挑战>,作者:SSIL_SZT_ZS. 情感在人与人的交流中 ...
- 理论+实例,带你掌握Linux的页目录和页表
摘要:操作系统在加载用户程序的时候,不仅仅需要分配物理内存,来存放程序的内容:而且还需要分配物理内存,用来保存程序的页目录和页表. 本文分享自华为云社区<Linux从头学15:[页目录和页表]- ...
- 第04讲:Flink 常用的 DataSet 和 DataStream API
Flink系列文章 第01讲:Flink 的应用场景和架构模型 第02讲:Flink 入门程序 WordCount 和 SQL 实现 第03讲:Flink 的编程模型与其他框架比较 第04讲:Flin ...
- 三、redis集群搭建
系列导航 一.redis单例安装(linux) 二.redis主从环境搭建 三.redis集群搭建 四.redis增加密码验证 五.java操作redis 环境:centos7需要的安装包: redi ...
- kafka集群四、权限增加ACL
系列导航 一.kafka搭建-单机版 二.kafka搭建-集群搭建 三.kafka集群增加密码验证 四.kafka集群权限增加ACL 五.kafka集群__consumer_offsets副本数修改 ...
- Vue中使用el-menu高亮显示问题
https://blog.csdn.net/weixin_43336525/article/details/132541500 <template> <el-menu :defaul ...
- [工程开发]当我们写一个tcp服务端的时候,我们在写什么?(一)
当我们写一个tcp服务器和客户端的时候,我们在写什么?(一) 本篇只聊服务端. 最近想搞一个服务器的协议,然后捏,简单搓个tcp服务器协议看看效果,主要是最近实在是没事干,闲得没事搓个服务器看看,当然 ...
- vim处理冲突文件
一.文件冲突前: 二.文件冲突后(默认为): 此时编辑文档,将before改为after但是异常退出了,此时编辑文档提示冲突: 回车进入展示编辑前的文档: ll-a可查看到隐藏文件的信息: 三.文件冲 ...