头像
nazike_嘉娜
发布于 2020-04-18 17:53
+ 关注

超时

#include<bits/stdc++.h>
using namespace std;
int c[1010],w[1010][8];
int main(){
    int n,e;
    while(~scanf("%d%d",&n,&e)){
        memset(w,0,sizeof(w));
        int flag=0;
        for(int i=0;i<n;i++){
            int m;
            scanf("%d%d",&c[i],&m);
            flag+=c[i];
            while(m--){
                int a;
                scanf("%d",&a);
                w[i][a]=1;
            }
        }
        int cnt=0,d=1;
        while(flag){
            int num=0,i=0;
            while(num<e){
                if(w[i][d]&&c[i]){
                    c[i]--;
                    num++;
                    flag--;
                }
                i++;
                if(i==n)
                    i=0;
            }
            d++;
            if(d==8)
                d=1;
            cnt++;
        }
        printf("%d\n",cnt);
    }
    return 0;
}
双while肯定超,我就是想模拟一下过程。
然后,写完之后,反而被思路禁锢了,然后不知道从哪下手减少时间。。。。。。

全部评论

(1) 回帖
加载中...
话题 回帖

本文相关内容

等你来战

查看全部

热门推荐