zoukankan      html  css  js  c++  java
  • USACO Spinning Wheels

     题意是给你五个轮子, 每个轮子上有一些开口, 现在每个轮子从0位置开始转动,问最短啥时候5个轮子的开口相遇,刚开始看这道题的时候没啥思路, 就像等到最后在写,最后还没思路看了题解, 直接模拟就行, 代码如下:(注意处理边界,他不是离散的360个口,而是一个区间。

    /*
        ID: m1500293
        LANG: C++
        PROG: spin
    */
    
    #include <cstdio>
    #include <cstring>
    #include <algorithm>
    
    using namespace std;
    
    bool whell[6][390];
    int w[5];
    int idx[5] = {0, 0, 0, 0, 0};
    
    int check()
    {
        for(int i=0; i<360; i++)
        {
            bool res = true;
            for(int j=0; j<5; j++)
            {
                res = res&whell[j][(idx[j]+i)%360];
            }
            if(res)
                return true;
        }
        return false;
    }
    
    int main()
    {
        freopen("spin.in", "r", stdin);
        freopen("spin.out", "w", stdout);
        memset(whell, 0, sizeof(whell));
        for(int i=0; i<5; i++)
        {
            scanf("%d", &w[i]);
            int t;
            scanf("%d", &t);
            for(int j=0; j<t; j++)
            {
                int st, wi;
                scanf("%d%d", &st, &wi);
                for(int k=st; k<=st+wi; k++)
                    whell[i][k%360] = 1;
            }
        }
        for(int i=0; i<360; i++)
        {if(check())
            {
                printf("%d
    ", i);
                return 0;
            }
            for(int j=0; j<5; j++)
            {
                idx[j] = ((idx[j]-w[j])%360+360)%360;        //注意这里可能为负数,wa了一次
            }
        }
        printf("none
    ");
    }

  • 相关阅读:
    centos7+php7.1.4+mysql5.7+swoole搭建
    鄙视自己(转)
    Mysql的sql优化概念---三大范式
    PHP的设计模式-单例设计
    Composer的安装使用
    PHPstorm的一些快捷键
    论代码走查的重要性
    Java泛型读书笔记 (三)
    Java泛型读书笔记 (一)
    Java泛型读书笔记 (二)
  • 原文地址:https://www.cnblogs.com/xingxing1024/p/5087380.html
Copyright © 2011-2022 走看看