月赛 2A 求调
  • 板块学术版
  • 楼主HappyCode
  • 当前回复6
  • 已保存回复6
  • 发布时间2023/5/14 18:06
  • 上次更新2023/10/23 15:44:36
查看原帖
月赛 2A 求调
546369
HappyCode楼主2023/5/14 18:06
#include<iostream>
#include<cstring>
using namespace std;
int t,n,m;
bool a[200005];
int main(){
    cin>>t;
    while(t--){
        memset(a,0,sizeof(a));
        cin>>n>>m;
        bool f=false;
        for(int i=1;i<=m;i++){
            int o,x;
            cin>>o>>x;
            if(o==1){
                a[x]=true;
            }else{
                for(int j=1;j<=n;j++){
                    if(j!=x){
                        a[j]=true;
                    }
                }
            }
            bool flag=true;
            for(int j=1;j<=n;j++){
                if(!a[j]){
                    flag=false;
                    break;
                }
            }
            if(flag){
                cout<<i<<endl;
                f=true;
                break;
            }
        }
        if(!f){
            cout<<-1<<endl;
        }
    }
}

具体思路是将贴了纸的酒标记为 true,然后每轮都统计是否全贴了纸。如果全贴了就输出当前操作数。

通过了 Subtask#1 #1 #2,Sub2 #11、Sub3 #21 TLE,其他点 WA。

2023/5/14 18:06
加载中...