• Codeforces Round #258 (Div. 2)C(暴力枚举)


    就枚举四种情况,哪种能行就是yes了。很简单,关键是写法,我写的又丑又长。。。看了zhanyl的写法顿时心生敬佩。写的干净利落,简直美如画。。。这是功力的体现!

    以下是zhanyl的写法,转载在此以供学习:

    #include <vector>
    #include <list>
    #include <queue>
    #include <map>
    #include <set>
    #include <deque>
    #include <stack>
    #include <bitset>
    #include <algorithm>
    #include <functional>
    #include <numeric>
    #include <utility>
    #include <sstream>
    #include <iostream>
    #include <iomanip>
    #include <cstdio>
    #include <cmath>
    #include <cstdlib>
    #include <ctime>
    #include <cstring>
    #include <tr1/unordered_set>
    #include <tr1/unordered_map>
    
    using namespace std;
    using namespace tr1;
    
    const int g[4][2]={{1,1},{1,-1},{-1,1},{-1,-1}};
    
    long long n,k,d[2],f[3];
    int t;
    bool ans;
    
    int main(){
        scanf("%d",&t);
        while(t--){
            scanf("%I64d%I64d%I64d%I64d",&n,&k,&d[0],&d[1]);
            if(n%3){
                puts("no");
                continue;
            }
            n=n/3;
            ans=false;
            for(int i=0;i<4;i++)
                if((k-g[i][0]*d[0]-g[i][1]*d[1])%3==0){
                    f[1]=(k-g[i][0]*d[0]-g[i][1]*d[1])/3;
                    f[0]=f[1]+g[i][0]*d[0];
                    f[2]=f[1]+g[i][1]*d[1];
                    if(f[0]>=0&&f[1]>=0&&f[2]>=0&&f[0]<=n&&f[1]<=n&&f[2]<=n)ans=true;
                }
            if(ans)puts("yes");
            else puts("no");
        }
        return 0;
    }
  • 相关阅读:
    Today
    react-decorator-track 解耦-埋点方案
    Decorator
    webpack4强势来袭
    同源策略与跨域处理
    html语义化
    深度遍历与广度遍历的理解
    Javascript 模块化理解
    算法之排序
    数组去重
  • 原文地址:https://www.cnblogs.com/zywscq/p/3940520.html
Copyright © 2020-2023  润新知