首页 > 其他分享 >Codeforces Round #841 (Div. 2) and Divide by Zero 2022

Codeforces Round #841 (Div. 2) and Divide by Zero 2022

时间:2022-12-28 12:33:08浏览次数:68  
标签:include Divide 841 int res Codeforces using define MOD

A. Joey Takes Money

题意:

给定 n 个整数,每次操作可以选择两个整数,获得两数之积,再构造一组 (x,y) 使得 x * y 等于两数之积,并将原来的数替换为 x, y ,求操作若干次后 n 个数的最大和。

分析:

考虑最终情况:只有一个 n 个数的乘积 k 与 n - 1 个 1 组成,sum = k + n - 1

#include <bits/stdc++.h>
#include <bits/extc++.h>
using namespace std;
using namespace __gnu_pbds;
#define mst(x, y) memset(x, y, sizeof x)
#define endl '\n'
#define INF LONG_LONG_MAX
#define x first
#define y second
#define int long long
#define Lson u << 1, l, mid
#define Rson u << 1 | 1, mid + 1, r
#define FAST ios::sync_with_stdio(false), cin.tie(0), cout.tie(0)
const int N = 200010, MOD = 1e9 + 7;
const double EPS = 1e-6;
typedef pair<int, int> PII;
typedef unordered_map<int, int> Ump;
int T;
int n;
int a[N];
void solve()
{
    cin >> n;
    for (int i = 1; i <= n; i++)
        cin >> a[i];

    int t = 1;
    for (int i = 1; i <= n; i++)
    {
        t *= a[i];
    }
    cout << (t + n - 1) * 2022 << endl;
}
signed main()
{
    FAST;
    cin >> T;
    while (T--)
        solve();
    return 0;
}

B. Kill Demodogs

题意:

在 n * n 的网格,每个格子上存在 行号 * 列号 个怪物,你从 (1, 1) 出发,只能向下和向右走,走到 (n, n) 一路上最多击杀多少怪物。

分析:

找规律即可发现:右/下交替走即可保证 sum 最大,下面处理如何求 sum :
列出式子:$$0 * 1 + 1 * 1 + 1 * 2 + 2 * 2 + 3 * 2 + 3 * 3 + ...... + n * (n - 1) + n * n$$
即:

\[1 * 1 + 2 * 3 + 3 * 5 + 4 * 7 + ...... + n * (2 * n - 1) \]

即:

\[2 * (1^2 + 2^2 + 3^2 + ...... + n^2 ) - (1 + 2 + 3 + 4 + ...... + n) \]

即:

\[2 * \frac{n * (n + 1) * (2 * n + 1)}{6} - \frac{n*(n + 1)}{2} \]

平方和
这里由于答案还要 ×2022 可以化简后直接运算或者求乘法逆元计算

#include <bits/stdc++.h>
#include <bits/extc++.h>
using namespace std;
using namespace __gnu_pbds;
#define mst(x, y) memset(x, y, sizeof x)
#define endl '\n'
#define INF LONG_LONG_MAX
#define x first
#define y second
#define int long long
#define Lson u << 1, l, mid
#define Rson u << 1 | 1, mid + 1, r
#define FAST ios::sync_with_stdio(false), cin.tie(0), cout.tie(0)
const int N = 200010, MOD = 1e9 + 7;
const double EPS = 1e-6;
typedef pair<int, int> PII;
typedef unordered_map<int, int> Ump;
int T;
int n;
int qmi(int a, int k, int p) // 求a^k mod p
{
    int res = 1 % p;
    while (k)
    {
        if (k & 1)
            res = res * a % p;
        a = a * a % p;
        k >>= 1;
    }
    return res;
}
void solve()
{
    cin >> n;
    int res = n * (n + 1) % MOD * (2 * n + 1) % MOD * qmi(6, MOD - 2, MOD) % MOD;
    res = 2 * res % MOD - (n + 1) * n % MOD * qmi(2, MOD - 2, MOD) % MOD;
    res = (res % MOD + MOD) % MOD;
    res = res * 2022 % MOD;
    cout << res << endl;
}
signed main()
{
    FAST;
    cin >> T;
    while (T--)
        solve();
    return 0;
}

C. Even Subarrays

题意:

标签:include,Divide,841,int,res,Codeforces,using,define,MOD
From: https://www.cnblogs.com/Aidan347/p/17009881.html

相关文章

  • CF--841--C
    关键当时确实是想到了使用减法,但是没有想明白怎么快速查找异或为n*n的这种数其实也就是反向查找xaa=x,也就异或两次后就不变了,在异或一次,其实也就是把前面的某段区间给去......
  • CodeForces-690#D1 题解
    正文很显然啊,这是在考一个叫连通块的东东,于是蒟蒻的我马上想到了连通块必备:并查集。如果一个块四边连通了其它的块,那么合并这两个块。当然,并查集要用二维的:typedefpai......
  • Codeforces Round #767 (Div. 2)C ,D
    CodeforcesRound#767(Div.2)C,DCC这一道题大意是给你一个数组,你可以选取任意长度的数组(连续),求出这个数组的mex,然后问我们你得到最大的字典序的mex是多少(我这里犯......
  • Codeforces Global Round 14 C. Phoenix and Towers(思维)
    https://codeforces.com/contest/1515/problem/C题目大意:给定一个长度为n的序列a,ai表示方块的高度。每一个方块的高度都在1和q之间。让我们用这n个方块搭建m座塔,两两......
  • Codeforces Round #768 (Div. 2)C ,D
    CodeforcesRound#768(Div.2)C,DCC这一道题的大意是从0到n-1,(n一定是2的x次方),我需要找n/2对数对,使得每一个数对(x,y),x&y的和要等于k(k<=n-1)我一开始是没什么思路的,......
  • Why am I getting a DIA8411C A file "" could not be found in the db2diag.log?
    IBMSupportWhyamIgettingaDIA8411CAfile""couldnotbefoundinthedb2diag.log? https://www.ibm.com/support/pa......
  • Codeforces - 542C - Idempotent functions(思维 + 数学、*2000)
    542C-Idempotentfunctions(⇔源地址)目录542C-Idempotentfunctions(⇔源地址)tag题意思路AC代码错误次数:1tag*2000+构造+图论+数学。......
  • Codeforces 983 D Arkady and Rectangles 题解
    题目链接挺有意思的数据结构题,题面看着像个板子,其实还是有不少学问的。平面上一堆矩形的题目常见套路就是对\(x\)轴扫描线,\(y\)轴线段树维护,这题也不例外。我们先对坐标......
  • Codeforces Round #769 (Div. 2) B,C
    CodeforcesRound#769(Div.2)B,CBB这道题我在vp的时候一直没有想出来,一直不知道到底怎么写,只是想到和幂有关,wa了一发,后来看了大佬的题解,真是觉得自己太菜了,自愧不如......
  • Codeforces Round #814 (Div. 2)
    A核心思路:这题没什么好说的直接面向样例编程。#include<iostream>#include<cstring>#include<string>#include<vector>#include<math.h>#include<cmath>#inc......