首页 > 其他分享 >Codeforces Round 886 (Div. 4)记录

Codeforces Round 886 (Div. 4)记录

时间:2023-07-23 16:35:34浏览次数:48  
标签:const 886 int ll Codeforces long cin Div include

A - To My Critics

代码:

#include<cstdio>
#include<algorithm>
#include<cmath>
#include<vector>
#include<string.h>
#include<set>
#include<string>
#include<map>
#include<iostream>
#include<queue>
#include<unordered_set>
#include<stdlib.h>
#include<sstream>
#include<iomanip>
typedef long long ll;
using namespace std;
const int Mod=1e9+7;
const int N=1e5+7;
int T;
ll ans=0;
int n,k,m,q;
int main()
{
    cin>>n;
    for(int i=0;i<n;i++)
    {
        int a,b,c;
        cin>>a>>b>>c;
        if(a+b>=10)
        {
            cout<<"YES"<<endl;
        }
        else if(a+c>=10)
        {
            cout<<"YES"<<endl;
        }
        else if(b+c>=10)
        {
            cout<<"YES"<<endl;
        }
        else
        {
            cout<<"NO"<<endl;
        }
    }
    system("pause");
    return 0;
}

B - Ten Words of Wisdom

#include<cstdio>
#include<algorithm>
#include<cmath>
#include<vector>
#include<string.h>
#include<set>
#include<string>
#include<map>
#include<iostream>
#include<queue>
#include<unordered_set>
#include<stdlib.h>
#include<sstream>
#include<iomanip>
typedef long long ll;
using namespace std;
const int Mod=1e9+7;
const int N=1e5+7;
int T;
ll ans=0;
int n,k,m,q;
struct Node
{
    int A,B;
    int num;
}node[55];
bool cmp(Node a, Node b)
{
    return a.B>b.B;
}
int main()
{
    cin>>T;
    while(T--)
    {
        cin>>n;
        for(int i=1;i<=n;i++)
        {
            cin>>node[i].A>>node[i].B;
            node[i].num=i;
        }   
        sort(node+1,node+1+n,cmp);
        for(int i=1;i<=n;i++)
        {
            if(node[i].A<=10)
            {
                //cout<<node[i].A<<" "<<node[i].B<<endl;
                cout<<node[i].num<<endl;
                break;
            }
            //cout<<node[i].A<<" "<<node[i].B<<endl;
        }
    }
    system("pause");
    return 0;
}

C - Word on the Paper

#include<cstdio>
#include<algorithm>
#include<cmath>
#include<vector>
#include<string.h>
#include<set>
#include<string>
#include<map>
#include<iostream>
#include<queue>
#include<unordered_set>
#include<stdlib.h>
#include<sstream>
#include<iomanip>
typedef long long ll;
using namespace std;
const int Mod=1e9+7;
const int N=1e5+7;
int T;
ll ans=0;
int n,k,m,q;
int main()
{
    cin>>n;
    for(int i=0;i<n;i++)
    {
        char c[10][10];
        for(int j=0;j<8;j++)
        {
            for(int k=0;k<8;k++)
            {
                cin>>c[j][k];
            }
        }
        for(int k=0;k<8;k++)
        {
            for(int j=0;j<8;j++)
            {
                if(c[j][k]!='.')
                {
                    cout<<c[j][k];
                }
            }
        }
        cout<<endl; 
    }
    system("pause");
    return 0;
}

D - Balanced Round

#include<cstdio>
#include<algorithm>
#include<cmath>
#include<vector>
#include<string.h>
#include<set>
#include<string>
#include<map>
#include<iostream>
#include<queue>
#include<unordered_set>
#include<stdlib.h>
#include<sstream>
#include<iomanip>
typedef long long ll;
using namespace std;
const int Mod=1e9+7;
const int N=1e5+7;
int T;
int n,k,m,q;
int main()
{
    cin>>T;
    while(T--)
    {
        cin>>n>>k;
        int a[200010];
        for(int i=0;i<n;i++)
        {
            cin>>a[i];

        }
        sort(a,a+n);
        int cnt=1,ans=1;
        for(int i=0;i<n-1;i++)
        {
            //cout<<a[i]<<" ";
            if(a[i+1]-a[i]<=k)
            {
                cnt++;
                ans=max(ans,cnt);
            }
            else
            {
                cnt=1;
            }
        }
       
         cout<<n-ans<<endl;
       
    }
    system("pause");
    return 0;
}

E - Cardboard for Pictures

#include<cstdio>
#include<algorithm>
#include<cmath>
#include<vector>
#include<string.h>
#include<set>
#include<string>
#include<map>
#include<iostream>
#include<queue>
#include<unordered_set>
#include<stdlib.h>
#include<sstream>
#include<iomanip>
typedef long long ll;
using namespace std;
const int Mod=1e9+7;
const int N=1e5+7;
int T;
int n,q;
int main()
{
    cin>>T;
    while(T--)
    {
        ll m;
        ll a[200010];
        cin>>n>>m;
        for(int i=0;i<n;i++)
        {
            cin>>a[i];  
        }
        int t=a[0];
        ll l=1,r=1000000000;
        ll mid;
        while(l<=r)
        {
            long double tt=0,t=0;
            mid=(l+r)/2;
            for(int i=0;i<n;i++)
            {
                tt=(a[i]+2*mid)*(a[i]+2*mid);
                t+=tt;
            }
            ll ttt=t;
            //cout<<t<<"================================"<<endl;
            if(t>m)
            {
                r=mid-1;
            }
            else if(t<m)
            {
                l=mid+1;
            }
            else
            {
                break;
            }
        }
        cout<<mid<<endl;
    }
    system("pause");
    return 0;
}

F - We Were Both Children

思路:我们忽略任何大于 $n$的 $a_i$,因为无论如何我们都抓不到它们。我们在 $cnt_i$中记录每次跳跃距离有多少只青蛙。我们从$1$到$n$的每一个$i$,并在$i$的每一个小于或等于$n$的倍数上加上$cnt_i$。这个动作是一个调和数列,需要 $O(nlogn)$ 时间。我们从 $1$到 $n$依次取最大值。

#include<cstdio>
#include<algorithm>
#include<cmath>
#include<vector>
#include<string.h>
#include<set>
#include<string>
#include<map>
#include<iostream>
#include<queue>
#include<unordered_set>
#include<stdlib.h>
#include<sstream>
#include<iomanip>
typedef long long ll;
using namespace std;
const int Mod=1e9+7;
const int N=1e5+7;
int T;
int n,q,m;
int main()
{
    cin>>T;
    while(T--)
    {
        cin>>n;
        vector<ll> cnt(n + 1, 0), mx(n + 1, 0);
        for(int i=0;i<n;i++)
        {
            int x;
            cin>>x;
            if(x<=n)
            {
                cnt[x]++;
            }
        }
        for(int i=1;i<=n;i++)
        {
            for(int j=i;j<=n;j+=i)
            {
                mx[j]+=cnt[i];
            }
        }
        cout<<*max_element(mx.begin(),mx.end())<<endl;
    }
    system("pause");
    return 0;
}

 

标签:const,886,int,ll,Codeforces,long,cin,Div,include
From: https://www.cnblogs.com/oliverfg/p/17575169.html

相关文章

  • Codeforces Round 885 (Div. 2) A - C
    A.VikaandHerFriendsProblem-A-Codeforces题意:​ 在\(n*m\)的范围内,\(a\)和她的朋友在追逐游戏,每秒\(a\)和朋友必须从当前位置移到相邻的格子里(上下左右),在这一秒结束时\(a\)不能和朋友在同一格内。现在知道\(a\)和每一个朋友的初始位置,问\(a\)是否会被朋友追上。思路:......
  • Codeforces Round 886 (Div. 4)补题
    CodeforcesRound886(Div.4)A~D://A:boolsolve(){ cin>>a[1]>>a[2]>>a[3]; sort(a+1,a+4); returna[2]+a[3]>=10?1:0;}//B:voidsolve(){ intn; cin>>n; intmaxa=0; intnum=0; intx,y; for(inti=1;i<=n;i++){cin>......
  • Codeforces Round 886 (Div. 4)
    F.WeWereBothChildren题解:约数我们先利用\(map\)记录\(a_i\)的出现次数然后对\(map\)中的每一个元素的在其所有不超过\(n\)的倍数的位置上都加上对应的贡献时间复杂度:调和级数\(O(nlogn)\)constintN=2e5+10,M=4e5+10;intn;inta[N];map<int,int>......
  • Codeforces Round 886 (Div. 4)
    CodeforcesRound886(Div.4)A-ToMyCritics思路:最大的两个数的和大于等于10则YES#include<bits/stdc++.h>usingnamespacestd;#defineintlonglongtypedefpair<int,int>PII;typedefpair<string,int>PSI;typedefpair<string,string>PSS;cons......
  • 「解题报告」Codeforces Round 886 (Div. 4)
    比赛地址:Dashboard-CodeforcesRound886(Div.4)-Codeforces由于时间太晚了,因此并没有参加比赛,题目都是后来补做的。A.ToMyCriticsProblem-A-Codeforces\(T\)组数据,有\(a,b,c\)三个数,判断是否存在两个数的和\(sum\ge10\)。/*Thecodewaswrittenby......
  • Codeforces 1456E - XOR-ranges
    考虑一个\(L\lex\leR\)的数\(x\),必然是一段前缀贴着\(L\)或者\(R\),然后下一位脱离了\(L\)和\(R\)的限制,后面随便乱填。注意到一个性质,对于某一位\(d\),考虑这一位上没有限制的那些位置,最优方案肯定是令其等于其左边(或者右边)第一个有限制的数的第\(d\)位上的值。这......
  • Codeforces Round 886 (Div. 4)
    A.ToMyCritics#include<bits/stdc++.h>usingnamespacestd;#defineintlonglongvoidsolve(){vector<int>a(3);for(auto&i:a)cin>>i;sort(a.begin(),a.end());if(a[2]+a[1]>=10)cout......
  • Codeforces 1830E - Bully Sort
    这种题肯定首先要寻找不变量。显然后面排好序的后缀不会被改变。因此从整体上来看我们的流程肯定是,如果当前\(p_n=n\),就令\(n\)减一,否则你一步换的\(i\)肯定满足\(p_i=n\)。而显然\(\min\limits_{j=i}^np_j\lei\),因此我们考察\(\sum|i-p_i|\)和\(\sum\limits_{i<j}[p_......
  • Codeforces 794G - Replace All
    一个比较垃圾的做法,卡着时限过了这道题。首先大胆猜个结论:要么\(|s|=|t|\),此时\(A,B\)任取,要么存在字符串\(c\)和整数\(x,y\)使得\(A=c^x,B=c^y\),其中\(c^x\)表示\(x\)个\(c\)拼接得到的结果。证明的话感觉还挺复杂的,可能要border引理之类的东西,不过我是先写了个......
  • 洛谷 P8861 - 线段
    牛逼题。先考虑\(l\le10^5,10^5+1\ler\)的部分分:一种方法是线段树,即因为左右端点是独立的,因此对左右端点各维护一个权值线段树表示有多少个区间以这个值为左/右端点,这样对于修改,左端点的部分相当于先查询\(\lel\)的数的个数,然后将它们都挂到\(l\)上,最后把\(<l\)的部......