码迷,mamicode.com
首页 > 其他好文 > 详细

【习题 4-8 UVA - 12108】Extraordinarily Tired Students

时间:2018-10-31 20:49:45      阅读:120      评论:0      收藏:0      [点我收藏+]

标签:i++   处理   相同   ace   with   循环   注意   方法   using   

【链接】 我是链接,点我呀:)
【题意】

【题解】


一个单位时间、一个单位时间地模拟就好。
然后对于每个人。
记录它所处的周期下标idx
每个单位时间都会让每个人的idx++
注意从醒着到睡着的分界线的处理就好。

可以多循环几次。。超过上限认为无解
(其他题解也提供了一种方法,就是如果状态和初始的情况相同的话。就无解了即形成了一个环。
(可能如果无解一定会形成环?

【代码】

#include <bits/stdc++.h>
#define rep1(i,a,b) for (int i = a;i <= b;i++)
#define rep2(i,a,b) for (int i = a;i >= b;i--)

using namespace std;

const int N = 10;

int n;
int a[N+10][N+10];
int cur[N+10],tot[N+10];

int main()
{
    //freopen("D:\\rush.txt","r",stdin);
    ios::sync_with_stdio(0),cin.tie(0);
    int kase = 0;
    while (cin >> n){
        if (n==0) break;
        rep1(i,1,n){
            int x,y;
            cin >> x >> y >> cur[i];cur[i]--;
            rep1(j,1,x) a[i][j-1] = 1;
            rep1(j,x+1,x+y) a[i][j-1] = 2;
            tot[i] = x+y;
        }
        cout<<"Case "<<++kase<<": ";
        rep1(kk,1,10000){
            int sleep = 0,wake = 0;
            rep1(i,1,n){
                if (a[i][cur[i]]==1) wake++;else sleep++;
            }
            if (sleep==0){
                cout<<kk<<endl;
                break;
            }
            rep1(i,1,n){
                if (a[i][cur[i]]==1 && a[i][(cur[i]+1)%tot[i]]==2){
                    if (sleep>wake){
                        cur[i] = (cur[i]+1)%tot[i];
                    }else{
                        cur[i] = 0;
                    }
                }else{
                    cur[i] = (cur[i]+1)%tot[i];
                }
            }

        }
        int sleep = 0;
        rep1(i,1,n)
            if (a[i][cur[i]]==2)
                sleep++;
        if (sleep>0) cout<<-1<<endl;
    }
    return 0;
}

【习题 4-8 UVA - 12108】Extraordinarily Tired Students

标签:i++   处理   相同   ace   with   循环   注意   方法   using   

原文地址:https://www.cnblogs.com/AWCXV/p/9885679.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!