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. Spark的分布式存储系统BlockManager全解析

    摘要:BlockManager 是 spark 中至关重要的一个组件,在spark的运行过程中到处都有 BlockManager 的身影,只有搞清楚 BlockManager 的原理和机制,你才能更加 ...

  2. 开抢| 华为开发者大会2021(Cloud)早鸟票来了!

    他们,是技术的引领者 他们,是科学的追随者 他们用代码守护蓝色星球的生态 破解宇宙深处的密码 化解城市生活的不畅 捉摸自然气候的脾性 ...... 这些改变世界的成果背后 每一个开发者都了不起 --那 ...

  3. 华为云AI论文精读会2021第一期:高效语义分割模型Fast-SCNN分享

    2020年举办的华为云AI经典论文复现活动,不仅受到了参赛者们一致好评,也产出了许多优质的算法成果.这些论文复现的算法描述.源代码以及算法使用指导文档均已发布到了AI Gallery.为了让开发者更好 ...

  4. 带你了解敏捷和DevOps的发布策略

    摘要:随着数字化.信息化.网络化和智能化的普及和发展,企业对软件服务的质量和上线速度要求越来越高.传统研发模式难以满足要求,企业的开发运维模式逐渐向敏捷和DevOps 转型,敏捷和DevOps理念正被 ...

  5. Solon 开发进阶,五、全局异常订阅

    Solon 开发进阶 一.插件扩展机制 二.体外扩展机制 三.常用配置说明 四.启动参数说明 五.全局异常订阅 所谓"全局异常",是指通过事件总线发布的异常.目前框架会把未吃掉的异 ...

  6. PPT 文字太多如何处理

    Piti 插件 http://www.piti.fun

  7. Spring Boot 2.x基础教程:使用LDAP来管理用户与组织数据

    很多时候,我们在做公司系统或产品时,都需要自己创建用户管理体系,这对于开发人员来说并不是什么难事,但是当我们需要维护多个不同系统并且相同用户跨系统使用的情况下,如果每个系统维护自己的用户信息,那么此时 ...

  8. AtCoder Beginner Contest 242(C~E)

    AB 水题 C - 1111gal password 题意:给出 N(\(2\le N\le 1e6\))求满足以下条件的 \(X\) 的数量,需除以模 (\(998244353\)) $X $ 是 ...

  9. Codeforces Round #689 (Div. 2, based on Zed Code Competition) 个人题解

    1461A. String Generation void solve() { int n, k; cin >> n >> k; for (int i = 1; i <= ...

  10. Liunx常用操作(八)-sed命令详细说明

    一.sed简介 sed是一种流编编器,它是文本处理中非常中的工具,能够完美的配合正则表达式便用,功物能不同凡响. 处理时,把当前处理的行存储在临时缓冲区中,称为"模式空间"( oa ...