2021CCPC网络选拔赛

小去世:我正在看着视频吃着饭,突然队群里来了句:“zwt大人起床了吗。”

赛前直接*犯罪。

先说一下总体体验:非常差。

看了各方言论,感觉也不能把锅直接甩给HDOJ,东部枢纽罪不至此。但是写题半小时提交半小时查记录半小时体验实在实在是太差了。

队里写完AFI三道签到题其实优势很大,可惜自己拉了跨。

A - Cut The Wire

签中签,可惜手慢20+分钟才核对完submit还被网站恶心()。奇数答案\((n-1)/3 \leq x \leq n\),偶数答案\((n+1) \leq x \leq 2n\),记得细节处理两端奇偶即可。

#include<bits/stdc++.h>
#define fast ios::sync_with_stdio(0),cin.tie(0),cout.tie(0)
#define ll long long
#define pb push_back
using namespace std;
const int maxn = 1e5+10;
int main()
{
    fast;
    int T;
    cin>>T;
    while(T--)
    {
        ll n;
        cin>>n;
        ll tmp1=(n-1)/3;
        tmp1++;
        ll sum1=(n-tmp1),sum2=(n-1);
        sum2=sum2/2;
        sum2++;
        if(tmp1%2+n%2==0) sum1=sum1/2;
        else sum1=sum1/2+1;
        //cout<<sum1<<‘ ‘<<sum2<<‘\n‘;
        cout<<sum1+sum2<<\n;
    }   
}

I - Command Sequence

队友开的题,简单地说一下,利用map分别记录每个点经过的次数\(x\),每个点的次数所带来的贡献为\(x*(x-1)/2\)。

F - Power Sum

当时看到平方数就想到去要做差,这样可以稳定凑到一个4,随后就是凑得模4后的余数。\(1=1\),\(2=1-4-9+16\),\(3=-1+4\) ,这样就可以凑得我想要的任意一个数,且保证\(k \leq n+2\)。

#include<bits/stdc++.h>
#define fast ios::sync_with_stdio(0),cin.tie(0),cout.tie(0)
#define ll long long
#define pb push_back
using namespace std;
const int maxn = 1e5+10;
int main()
{
    fast;
    int T;
    cin>>T;
    int cnt=0;
    while(T--)
    {
        cnt=0;
        int n;
        cin>>n;
        if(n%4==0) cout<<n<<\n;
        if(n%4==1) cout<<n<<\n,cout<<"1",n-=1;
        if(n%4==2) cout<<n+2<<\n,cout<<"0001",n-=2;
        if(n%4==3) cout<<n-1<<\n,cout<<"01",n-=3;
        for(int i=1;i<=n/4;i++)
        {
            cout<<"1001";
        }
        cout<<\n;
    }
}

G - Function

我连参与都没参与,我是菜狗,队友真强。

L - Remove

一直WA,最后发现自己思路是错的。

原本想的是,记最大质数为\(x\),以\(x \leq i \leq 2*x-1\)这个区间为例,对于每一个不是最大质数的每一个质数,找到\(p[j]-2*x%p[j]\)的最大值(余数为0视为余数为\(p[j]\)),在这个最大值前的部分答案等于\(x\)时的答案,后面部分\(+1\),每次遇到最大质数的倍数无条件\(+1\)。

看了题解,寄吧。

明天补这块,今天懒得写了。

2021CCPC网络选拔赛

上一篇:etcd具有以下特点


下一篇:魔板 usaco,信息学奥赛一本通