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

    哎,再想想应该能写出第三题的!!!

    A. The Useless Toy

    题目大意:给你两个方向的箭头,再给你旋转的次数,问你是顺时针还是逆时针还是不确定。

    #include<bits/stdc++.h>
    #define first fi
    #define second se
    #define ll long long
    #define pb push_back
    #define pii pair<int,int>
    #define mk make_pair
    using namespace std;
    int n;
    int work(char g)
    {
        if(g==118) return 0;
        else if(g==60) return 1;
        else if(g==94) return 2;
        else if(g==62) return 3;
    }
    int main()
    {
        int n;
        char a[3],b[3];
        int x,y;
        scanf("%s%s",a,b);
        cin>>n;
        //printf("%d %d
    ",a[0],b[0]);
        x=work(a[0]);
        y=work(b[0]);
        //cout<<x<<endl;
        //cout<<y<<endl;
        int now=n%4;
        if((x+now)%4==y && (x-now+4)%4==y) puts("undefined");
        else if((x+now)%4==y) puts("cw");
        else if((x-now+4)%4==y) puts("ccw");
        else puts("undefined");
        return 0;
    }
    View Code

    B. The Festive Evening

    题目大意:有26扇门和,k个哨兵,有n个人进门,每个人只能进特定的门,从这扇门的第一个人进来的时候就

    需要一个哨兵,最后一个人走这个哨兵才能离开,问你哨兵够不够。

    思路:记录一下每扇门经过的人数,从头模拟一下。

    #include<bits/stdc++.h>
    using namespace std;
    const int N=1e6+5;
    int n,k,vis[30];
    bool judge[30];
    char s[N];
    int main()
    {
        cin>>n>>k;
        scanf("%s",s);
        for(int i=0;i<n;i++) vis[s[i]-'A']++;
        for(int i=0;i<n;i++)
        {
            if(!judge[s[i]-'A'])
            {
                judge[s[i]-'A']=true;
                k--;
                if(k<0)
                {
                    puts("YES");
                    return 0;
                }
                vis[s[i]-'A']--;
                if(vis[s[i]-'A']==0) k++;
            }
            else
            {
                vis[s[i]-'A']--;
                if(vis[s[i]-'A']==0) k++;
            }
            //cout<<k<<endl;
        }
        puts("NO");
        return 0;
    }
    View Code

    C. The Meaningless Game

    题目大一:给你n组数,没组里面有两个数字a,b,表示两个人最后的分数,问你有没有可能经过若干轮达到变成这两个数,

    每个人的分数刚开始都为1,每次选一个数x,赢的人分数 *x^2  另一个人的分数 *x。

    思路:妈的!!想到关键点了都没做出来,我好笨啊啊啊啊!!!!  我想到两个人得分数相乘一定是一个数的三次方。

    这是个必要条件,那么我们就可以先预处理处1e18以内所有数的三次方,二分查找就行了。然后我就在想怎么保证这

    a,b都合法呢,我就一个劲地往他们的gcd方向想,什么枚举因子啥的,哎。其实我们把a可以看成 三个数的乘积,k1*k1*k2

    b可以看成 k2*k2*k1。 k1就是所有第一个人赢的数字的乘积,k2是所有第二个人赢的数字的乘积,而我们二分查出来的是

    k1*k2, 所以我们只要判断一个 a和b能不能被 k1*k2整除就行了。。反省反省反省,这题不难!!

    #include<bits/stdc++.h>
    #define ll long long
    using namespace std;
    const int N=1e6;
    ll x,y,vis[1000006];
    int main()
    {
        for(ll i=0;i<1e6;i++) vis[i]=(i+1)*(i+1)*(i+1);
        int n;
        cin>>n;
        while(n--)
        {
            ll x,y;
            scanf("%I64d%I64d",&x,&y);
            ll sum=x*y;
            int item=lower_bound(vis,vis+1000000,sum)-vis;
            if(vis[item]!=sum)
            {
                puts("No");
                continue;
            }
            item++;
            if(x%item==0 && y%item==0) puts("Yes");
            else puts("No");
        }
        return 0;
    }
    View Code

    总结:我他妈就是傻逼!

  • 相关阅读:
    替代传统C/S和B/S技术的下一代客户/服务器编程技术
    理想的编程语言
    nginx进程模型
    Sybase 7.0 中文乱码问题
    netfilter 链接跟踪机制与NAT原理
    TraTraffic Server 进程模型
    nginx并发模型与traffic_server并发模型简单比较
    vs/nat原理分析
    ORACLE 查询表信息
    in 跟exists的区别
  • 原文地址:https://www.cnblogs.com/CJLHY/p/7263089.html
Copyright © 2011-2022 走看看