0
点赞
收藏
分享

微信扫一扫

Codeforces Round #783 (Div. 2) ABC

向上的萝卜白菜 2022-04-20 阅读 96
c++算法

自从上个月得了麦粒肿,又遇上入D的一系列麻烦事儿,心态爆炸,状态开始摆烂,摆完蓝桥杯,摆完昆明站,终于在这几天感觉状态逐渐好转。。。

冲冲冲!

​​​​​​​​​​​Problem - A - Codeforces

#include<iostream>
#include<cmath>
#include<algorithm>
#include<cstring>
#include<cstring>
#include<string>
#include<queue>
using namespace std;
int main()
{
    cin.tie(0); cout.tie(0); ios::sync_with_stdio(false);
    int t;
    cin>>t;
    while(t--)
    {
        int a,b;
        cin>>a>>b;
        if((a==1&&b>2)||(a>2&&b==1)) cout<<"-1"<<endl;
        else
        {
            if(a<b) swap(a,b);
            int sum=(b-1)*2;
            sum+=(a-b)/2*4+(a-b)%2*1;
            cout<<sum<<endl;
        }
    }
    return 0;
}

Problem - B - Codeforces

永远第一发wa在没开long long

吃一一一一一一一一一一一一一一一一一一一一······堑长一智

#include<iostream>
#include<cmath>
#include<algorithm>
#include<cstring>
#include<cstring>
#include<string>
#include<queue>
using namespace std;
typedef long long LL;
LL a[200200];
int main()
{
    cin.tie(0); cout.tie(0); ios::sync_with_stdio(false);
    int t;
    cin>>t;
    while(t--)
    {
        LL n,m;
        cin>>n>>m;
        for(int i=1;i<=n;i++)
            cin>>a[i];
        sort(a+1,a+1+n);
        reverse(a+1,a+1+n);
        LL sum=a[1]+1;
        for(int i=1;i<n;i++)
            sum+=a[i]+1;
        //cout<<sum<<endl;
        if(m>=sum) cout<<"YES"<<endl;
        else cout<<"NO"<<endl;
    }
    return 0;
}

Problem - C - Codeforces

长知识了:

0x3f3f3f3f还是在int的范围内,如果遇上long long,开1e18才能拿下

(wa了四五发留下的惨痛教训,还好debug成功了,不然彻夜无眠应该是会) 

#include<iostream>
#include<cmath>
#include<algorithm>
#include<cstring>
#include<cstring>
#include<string>
#include<queue>
using namespace std;
typedef long long LL;
LL a[200200];
int main()
{
    cin.tie(0); cout.tie(0); ios::sync_with_stdio(false);
    LL n;
    cin>>n;
    for(LL i=1;i<=n;i++)
        cin>>a[i];
    LL minn=1e18;
    LL flag=0;
    while(flag<=n)
    {
        LL sum=0,last=0;
        for(LL i=flag+1;i<=n;i++)
        {
            if(a[i]>last) sum++,last=a[i];
            else
            {
                LL num=last/a[i]+1;
                sum+=num,last=num*a[i];
            }
        }
        last=0;
        for(LL i=flag-1;i>=1;i--)
        {
            if(a[i]>last) sum++,last=a[i];
            else
            {
                LL num=last/a[i]+1;
                sum+=num,last=num*a[i];
            }
        }
        minn=min(sum,minn);
        flag++;
    }
    cout<<minn<<endl;
    return 0;
}

加油!

举报

相关推荐

0 条评论