首页 > 其他分享 >Codeforces Round 873 (Div. 2)

Codeforces Round 873 (Div. 2)

时间:2023-05-16 13:13:04浏览次数:53  
标签:typedef const int Codeforces cin long 873 tie Div

Codeforces Round 873 (Div. 2)

A - Divisible Array

思路:每个数为i时都为i的倍数,前n个数和为Sn=n*(n+1)/2,可知每个数再乘n,Sn必为n的倍数

#include<bits/stdc++.h>
using namespace std;
typedef pair<int,int>PII;
typedef pair<string,int>PSI;
const int N=3e5+5,INF=0x3f3f3f3f,Mod=998244353;

const double eps=1e-6;
typedef long long ll;
//#define int long long


int main(){
    ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    int t,n;
    cin>>t;
    while(t--){
        cin>>n;
        for(int i=1;i<=n;++i)cout<<i*2<<' ';
        cout<<'\n';
    }

    return 0;
}
View Code

 

 B - Permutation Swap

思路:求出每个数到最终位置的移动距离,求gcd

#include<bits/stdc++.h>
using namespace std;
typedef pair<int,int>PII;
typedef pair<string,int>PSI;
const int N=2e5+5,INF=0x3f3f3f3f,Mod=998244353;

const double eps=1e-6;
typedef long long ll;
//#define int long long


int main(){
    ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    int t,n,a[N],b[N];
    cin>>t;
    while(t--){
        cin>>n;
        int ans;
        for(int i=0;i<=n;++i)b[i]=0;
        for(int i=1;i<=n;++i){
            cin>>a[i];
            if(i==1)ans=abs(a[i]-i);
            else ans=__gcd(ans,abs(a[i]-i));
        }

        cout<<ans<<'\n';
    }

    return 0;
}
View Code

 

C - Counting Orders

思路:对于每个bi,统计a中大于其的个数;将b和a排序,用二分即可,统计时要减去已确定的bi

#include<bits/stdc++.h>
using namespace std;
typedef pair<int,int>PII;
typedef pair<string,int>PSI;
const int N=2e5+5,INF=0x3f3f3f3f,Mod=1e9+7;

const double eps=1e-6;
typedef long long ll;
//#define int long long

bool cmp(int a,int b){
    return a>b;
}
int main(){
    ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    int t,n,a[N],b[N];
    cin>>t;
    while(t--){
        cin>>n;
        for(int i=0;i<n;++i)cin>>a[i];
        for(int i=0;i<n;++i)cin>>b[i];
        sort(b,b+n,cmp);
        sort(a,a+n);
        ll res=1;
        for(int i=0;i<n;++i){
            int p= upper_bound(a,a+n,b[i])-a;
            int c=n-p;//cout<<c<<' ';
            if(p==-1||c-i<0){
                res=0;
                break;
            }
            res=(res*(c-i)*1ll)%Mod;
        }
        cout<<res<<'\n';
    }

    return 0;
}
View Code

 

标签:typedef,const,int,Codeforces,cin,long,873,tie,Div
From: https://www.cnblogs.com/bible-/p/17405035.html

相关文章

  • Codeforces Round 873 (Div. 2)(A,B,C)
    A//由求和公式(n*(n-1))/2知道当n为偶数就行,我们将每个序号乘以2就满足了#include<iostream>usingnamespacestd;constintN=210;intt;intn;intmain(){cin>>t;while(t--){cin>>n;for(inti=1;i<......
  • Codeforces Round #358 (Div. 2) -- B. Alyona and Mex (思路水题)
    B.AlyonaandMextimelimitpertestmemorylimitpertestinputoutputSomeonegaveAlyonaanarraycontainingnpositiveintegersa1, a2, ..., an.Inoneoperation,Alyonacanchooseanyelementofthearray......
  • Codeforces Round 869
    \(\texttt{A.AlmostIncreasingSubsequence}\)把\(a_i>a_{i+1}\)的极长下降区间称为一个段,那么显然,一个长度为\(len\)的极长下降区间最多选\(\min(2,len)\)个,并且可以达到这个数,因此记录每个位置属于哪个段,记录个前缀和就好了。#include<bits/stdc++.h>usingnamespaces......
  • CF1794B Not Dividing题解
    如果\(a_i\)可以整除\(a_{i-1}\),只要在\(a_i\)上\(+1\)即可,这样\(a_i\bmoda_{i-1}=1\)就满足题目要求了,如果这样算来最多进行\(n\)次操作。但同时要注意\(a_{i-1}=1\)的情况。如果\(a_{i-1}\)为\(1\),那么怎么\(+1\)都是\(a_i\bmoda_{i-1}=......
  • CF1799B Equalize by Divide题解
    本蒟蒻学习了jiangly大佬的思想,来发一个题解。大致题意:给定一个\(n\)个元素的数组\(a\),每次可以选择\(a[i]\)和\(a[j]\),然后使\(a[i]=\lceil\frac{a_i}{a_j}\rceil\),如果最后可以使数组中的所有元素都相等,那么输出Yes,并输出每一个操作\(i,j\);否则输出No。本人不......
  • div 调像素
    在div上居中   <divclass="container"style="display:flex;justify-content:center;align-items:center;">   在圖像調<imgid=im1style="max-width:150%;max-height:150%;class="widgetwidget-image"......
  • Educational Codeforces Round 148 [Rated for Div. 2]A~C
    A#include<bits/stdc++.h>usingnamespacestd;typedeflonglongLL;constintN=60;charc[N];voidrun(){ scanf("%s",c+1); intn=strlen(c+1); map<char,int>st; st[c[1]]++; for(inti=2;i<=n/2;++i) ......
  • Educational Codeforces Round 148 (Rated for Div. 2) A-D 题解
    比赛地址A.NewPalindrome题意:给一个回文串,判断是否能重新排成另一个回文串Solution存不同对的个数即可voidsolve(){ strings; cin>>s; intn=s.length(); set<char>st; for(inti=0;i<n/2;i++) { st.insert(s[i]); } if(st.size()>1)cout<<"YES\n"; els......
  • cf 870div2 abcd题解
    A题,先假设一个res从0开始,判断说谎人的个数用ans表示,如果res==ans则假设成立#include<iostream>usingnamespacestd;typedeflonglongll;typedefunsignedlonglongull;typedefdoubledb;typedefpair<int,int>PII;constllINF=0x3f3f3f3f;constintN=1e4+10;in......
  • Codeforces 1781H1 - Window Signals (easy version)
    很套路的一道题,把F1写了,F2感觉和F1gap不太大就懒得写了/shui首先需要明白大致思路:直接计算\(2^{nm-k}-1\)之所以会算重,是因为对于同一种图案,可能把它放在很多位置都是合法的。那么显然我们需要选一个代表元来把它的贡献唯一化,非常自然的想法就是把它固定在最左上角那个合......