zoukankan      html  css  js  c++  java
  • Codeforces Round #695 (Div. 2)(AB)

    A:http://codeforces.com/contest/1467/problem/A

    题意:

    n个灯,每个灯一开始都是0,每一秒钟每个灯显示的数字会往上一位。数字从0~9,9完是0,依此类推。

    你可以指定唯一一个灯被停止,那么它周边的灯,都会依次比它晚一秒停止。

    求最大可得的数字。

    解析:

    推一下,1位时候,第9秒暂停,答案为9

    2位的时候,第二位第8秒暂停,那么第一位就比它晚一秒,为98

    3位的时候,为989

    大于4位的时候,很明显,前三位989为最大,那么从第4位往后,依次慢一秒即可。

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<cmath>
    #include<map>
    using namespace std;
    const int maxn  = 1e5+10;
    typedef long long ll;
    int main()
    {
        int t;
        cin>>t;
        while(t--)
        {
            int n ;
            cin>>n;
            if(n==1)
                cout<<"9"<<endl;
            else if(n==2)
                cout<<"98"<<endl;
            else if(n==3)
                cout<<"989"<<endl;
            else
            {
            //    cout<<"?";
                cout<<"989";
                int ans=0;
                for(int i=4;i<=n;i++)
                {
                    cout<<ans;
                    ans++;
                    if(ans==10)
                        ans=0;
                }    
                cout<<endl;
            }
        }
        return 0;
        
    }

    B:http://codeforces.com/contest/1467/problem/B

    题意:

    危险值为所以谷点和尖点的数目之和。

    唯一的一次操作是,将一个数字变为任意一个数字。

    求操作后的最小危险值。

    解析:

    刚开始,以为一个危险点的修改,可以将它本身以及周围都变成安全点。其实不然。

    首先,一个危险点ai,要想把它变成安全点,要么变为ai-1,要么变为ai+1

    此时,ai变为安全点,但是ai-1或ai+1,可能因此变为危险点。

    所以考虑每一个 点的时候,要将ai分别变成ai-1和ai+1,来综合求最小值。

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<cmath>
    #include<map>
    using namespace std;
    const int maxn  = 3e5+50;
    const int inf=99999999;
    typedef long long ll;
    ll a[maxn],vis[maxn];
    int n ;
    int check(int i)
    {
        if(i==1||i==n)
            return 0 ; 
        if((a[i]>a[i-1]&&a[i]>a[i+1])||(a[i]<a[i-1]&&a[i]<a[i+1]))
            return 1;
            return 0 ;
    }
    int main()
    {
        int t;
        cin>>t;
        while(t--)
        {
            cin>>n;
            for(int i=1;i<=n;i++)
                cin>>a[i];
            int cnt = 0 ;
            for(int i=2;i<n;i++)
            {
                if((a[i]>a[i-1]&&a[i]>a[i+1])||(a[i]<a[i-1]&&a[i]<a[i+1]))
                    cnt++;
            }        
            int minn = inf ; 
        //    cout<<cnt<<"--"<<endl;
            for(int i=2;i<n;i++)
            {
                int mdl = a[i-1],md=a[i],mdr=a[i+1];
                int sum = cnt;            
                int c=check(i-1)+check(i)+check(i+1);
                a[i]=mdl;
                int c2=check(i-1)+check(i)+check(i+1);
                sum=sum-(c-c2);
                minn=min(minn,sum);
                
                
                sum=cnt;
                a[i]=mdr;
                c2=check(i-1)+check(i)+check(i+1);
                sum=sum-(c-c2);
                minn=min(minn,sum);
                a[i]=md;
                
            }
            cout<<min(minn,cnt)<<endl;
        }
        return 0;    
    }
    //9
    //1 4 1 1 4 1 4 1 4
  • 相关阅读:
    [BZOJ2434][Noi2011]阿狸的打字机
    [BZOJ2303][Apio2011]方格染色
    [BZOJ1912][Apio2010]patrol 巡逻
    [BZOJ1179][Apio2009]Atm
    [BZOJ1178][Apio2009]CONVENTION会议中心
    Lock-less buffer management scheme for telecommunication network applications
    vue-router@2.x 只适用于 Vue 2.x 版本。
    jQuery 捕获
    jQuery Chaining
    jQuery Callback 方法
  • 原文地址:https://www.cnblogs.com/liyexin/p/14256959.html
Copyright © 2011-2022 走看看