• AtCoder Regular Contest 079


    C题,刚开始以为遍历整个树,后来发现二重循环判断就行了

    #include<map>
    #include<set>
    #include<cmath>
    #include<queue>
    #include<stack>
    #include<vector>
    #include<cstdio>
    #include<cassert>
    #include<iomanip>
    #include<cstdlib>
    #include<cstring>
    #include<iostream>
    #include<algorithm>
    #define C 0.5772156649
    #define pi acos(-1.0)
    #define ll long long
    #define mod 1000000007
    #define ls l,m,rt<<1
    #define rs m+1,r,rt<<1|1
    #pragma comment(linker, "/STACK:1024000000,1024000000")
     
    using namespace std;
     
    const double g=10.0,eps=1e-7;
    const int N=200000+10,maxn=500+100,inf=0x3f3f3f;
     
    vector<int>v[N];
    int main()
    {
        ios::sync_with_stdio(false);
        cin.tie(0);
        int n,m;
        cin>>n>>m;
        for(int i=0;i<m;i++)
        {
            int a,b;
            cin>>a>>b;
            v[a].push_back(b);
            v[b].push_back(a);
        }
        for(int i=0;i<v[1].size();i++)
        {
            int u=v[1][i];
            for(int j=0;j<v[u].size();j++)
            {
                if(v[u][j]==n)
                {
                    cout<<"POSSIBLE"<<endl;
                    return 0;
                }
            }
        }
        cout<<"IMPOSSIBLE"<<endl;
        return 0;
    }
    /********************
     
    ********************/
    C

    D题,根据数据范围可以看出n必须是50,否则a会大于1e16+1000,先枚举1到50的过程,然后加上去就行了

    #include<map>
    #include<set>
    #include<cmath>
    #include<queue>
    #include<stack>
    #include<vector>
    #include<cstdio>
    #include<cassert>
    #include<iomanip>
    #include<cstdlib>
    #include<cstring>
    #include<iostream>
    #include<algorithm>
    #define C 0.5772156649
    #define pi acos(-1.0)
    #define ll long long
    #define mod 1000000007
    #define ls l,m,rt<<1
    #define rs m+1,r,rt<<1|1
    #pragma comment(linker, "/STACK:1024000000,1024000000")
     
    using namespace std;
     
    const double g=10.0,eps=1e-7;
    const int N=100+10,maxn=500+100,inf=0x3f3f3f;
     
    ll ans[N][N];
    int main()
    {
        ios::sync_with_stdio(false);
        cin.tie(0);
        ll k;
        cin>>k;
        cout<<50<<endl;
        memset(ans,0,sizeof ans);
        for(int i=1;i<50;i++)
        {
            for(int j=0;j<50;j++)
            {
                if(j==i)ans[i][j]=ans[i-1][j]+50;
                else ans[i][j]=ans[i-1][j]-1;
            }
        }
        ll s=k/50,p=k%50;
        for(int i=0;i<50;i++)
            cout<<ans[p][i]+49ll+s<<(i==49?'
    ':' ');
        return 0;
    }
    /********************
     
    ********************/
    D

    E题,直接每次把a[i]减到n以下(刚开始以为会超时就没写。。。)

    #include<map>
    #include<set>
    #include<cmath>
    #include<queue>
    #include<stack>
    #include<vector>
    #include<cstdio>
    #include<cassert>
    #include<iomanip>
    #include<cstdlib>
    #include<cstring>
    #include<iostream>
    #include<algorithm>
    #define pi acos(-1.0)
    #define ll long long
    #define mod 1000000007
    #define ls l,m,rt<<1
    #define rs m+1,r,rt<<1|1
    #pragma comment(linker, "/STACK:1024000000,1024000000")
     
    using namespace std;
     
    const double g=10.0,eps=1e-7;
    const int N=1500+10,maxn=500+100,inf=0x3f3f3f;
     
    ll a[N];
    int main()
    {
        ios::sync_with_stdio(false);
        cin.tie(0);
        ll n,ans=0;
        cin>>n;
        for(int i=0;i<n;i++)cin>>a[i];
        while(1){
            ll maxx=-1e17,id;
            for(int i=0;i<n;i++)
            {
                if(a[i]>maxx)
                {
                    maxx=a[i];
                    id=i;
                }
            }
            if(maxx<n)break;
            for(int i=0;i<n;i++)
            {
                if(i==id)a[i]%=n;
                else a[i]+=maxx/n;
            }
            ans+=maxx/n;
        }
        cout<<ans<<endl;
        return 0;
    }
    /*********************
    10
    1000 193 256 777 0 1 1192 1234567891011 48 425
    *********************/
    E
  • 相关阅读:
    关于数组赋值时找不到数组名字的问题
    显示转换与隐式转换
    类型(值类型和引用类型)
    .net webconfig中配置httphanlder无法生效的问题
    微信小程序开发知识点总结
    Raphael.js API 之 Element.attr()
    Raphael.js API 之 Element.attr()
    Raphael.js API之 Animation.delay(),Animation.repeat(),Element.animateWith()
    Raphael.js API之 Animation.delay(),Animation.repeat(),Element.animateWith()
    Raphael.js API之 Paper.path(),Element.click()
  • 原文地址:https://www.cnblogs.com/acjiumeng/p/7258524.html
Copyright © 2020-2023  润新知