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取模之后的余数 要想等,也就是说

\[\{x_1+...+x_{k}\} \ + \ \{x_{k + 1}+...+x_{2k}\}\ + \ \{x_{n-k + 1} + ...+x_{n}\}
\]

按照上面所说就是要保证

\[x_1\ \equiv\ x_{k+1}\ (mod\ k)
\]
\[x_2\ \equiv\ x_{k+2}\ (mod\ k)
\]
\[x_k\ \equiv\ x_{2k}\ (mod\ 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)的更多相关文章

  1. Codeforces Round #539 div2

    Codeforces Round #539 div2 abstract I 离散化三连 sort(pos.begin(), pos.end()); pos.erase(unique(pos.begin ...

  2. 【前行】◇第3站◇ Codeforces Round #512 Div2

    [第3站]Codeforces Round #512 Div2 第三题莫名卡半天……一堆细节没处理,改一个发现还有一个……然后就炸了,罚了一啪啦时间 Rating又掉了……但是没什么,比上一次好多了: ...

  3. Codeforces Round#320 Div2 解题报告

    Codeforces Round#320 Div2 先做个标题党,骗骗访问量,结束后再来写咯. codeforces 579A Raising Bacteria codeforces 579B Fin ...

  4. Codeforces Round #564(div2)

    Codeforces Round #564(div2) 本来以为是送分场,结果成了送命场. 菜是原罪 A SB题,上来读不懂题就交WA了一发,代码就不粘了 B 简单构造 很明显,\(n*n\)的矩阵可 ...

  5. Codeforces Round #361 div2

    ProblemA(Codeforces Round 689A): 题意: 给一个手势, 问这个手势是否是唯一. 思路: 暴力, 模拟将这个手势上下左右移动一次看是否还在键盘上即可. 代码: #incl ...

  6. Codeforces Round #626 Div2 D,E

    比赛链接: Codeforces Round #626 (Div. 2, based on Moscow Open Olympiad in Informatics) D.Present 题意: 给定大 ...

  7. CodeForces Round 192 Div2

    This is the first time I took part in Codeforces Competition.The only felt is that my IQ was contemp ...

  8. Codeforces Round #359 div2

    Problem_A(CodeForces 686A): 题意: \[ 有n个输入, +\space d_i代表冰淇淋数目增加d_i个, -\space d_i表示某个孩纸需要d_i个, 如果你现在手里 ...

  9. Codeforces Round #360 div2

    Problem_A(CodeForces 688A): 题意: 有d天, n个人.如果这n个人同时出现, 那么你就赢不了他们所有的人, 除此之外, 你可以赢他们所有到场的人. 到场人数为0也算赢. 现 ...

  10. Codeforces Round#310 div2

    C题:这题说的是套娃,如果做题的时候知道是套娃,那就好理解多了 规则1:套娃A可以放到套娃B里面,当且仅当套娃B没有放在其他套娃里面 规则2:套娃A放在套娃B里面,且套娃B没有放在其他套娃里面,那么可 ...

随机推荐

  1. 手把手教你写一个spring IOC容器

    摘要:spring框架的基础核心和起点毫无疑问就是IOC,IOC作为spring容器提供的核心技术,成功完成了依赖的反转:从主类的对依赖的主动管理反转为了spring容器对依赖的全局控制.今天就带大家 ...

  2. 如何使用参数化查询提高Cypher查询的性能

    摘要:在DBMS中,参数化查询被视为一种有效预防SQL注入攻击的手段. 本文分享自华为云社区<使用参数化查询提高Cypher查询的性能:以华为云图引擎GES为例>,作者: 蜉蝣与海. 在D ...

  3. Taro架构构析(2):Taro 设计思想及架构

    从之前微信公众号的开发经验来说,以及腾讯开放平台的接入 等经验来看,一直对腾讯的开放文档 有心理阴影. 微信小程序从文件组织上看,一个小程序页面或组件,需要同时包含 4 个文件:脚本逻辑.样式.模板以 ...

  4. Hive 报错 FAILED: SemanticException [Error 10096]: Dynamic partition strict mode requires at least one static partition column. To turn this off set hive.exec.dynamic.partition.mode=nonstrict —————

    hive中设置 set hive.exec.dynamici.partition=true; set hive.exec.dynamic.partition.mode=nonstrict;

  5. Python pdf 转 图片

    安装依赖 D:\OpenSource\Python>pip install pdf2image pillow -i https://pypi.tuna.tsinghua.edu.cn/simpl ...

  6. 给科研人的 ML 开源发布工具包

    什么是开源发布工具包? 恭喜你的论文成功发表,这是一个巨大的成就!你的研究成果将为学界做出贡献. 其实除了发表论文之外,你还可以通过发布研究的其他部分,如代码.数据集.模型等,来增加研究的可见度和采用 ...

  7. [SDR] GNU Radio 系列教程(十五)—— GNU Radio GFSK 模块

    目录 1 GFSK 背景知识 2 GNU Radio GFSK 模块参数详解 3 GNU Radio GFSK 模块简示例 4 本文视频教程 参考链接 教程列表 基础教程: 综合教程: 视频和博客 1 ...

  8. SpringCloud学习 系列二、 简介

    系列导航 SpringCloud学习 系列一. 前言-为什么要学习微服务 SpringCloud学习 系列二. 简介 SpringCloud学习 系列三. 创建一个没有使用springCloud的服务 ...

  9. element-ui el-menu 刷新保持高亮的写法

    1 <template> 2 <el-menu 3 :collapse="isCollapse" 4 :default-active="defaultA ...

  10. 每天学五分钟 Liunx 0111 | 服务篇:进程权限

    程序存储在硬盘中,需要执行的时候被加载到内存里,内存中的程序以进程的方式运行,进程会根据程序的内容去做读写文件,执行指令等操作. 文件/指令等都有自己的执行权限,符合权限的才能被执行.相应的,进程也需 ...