Submission #149135

#TimeUsernameProblemLanguageResultExecution timeMemory
149135还没编好 (#200)Bulb Game (FXCUP4_bulb)C++17
0 / 100
1065 ms376 KiB
#include "bulb.h" #include <bits/stdc++.h> using namespace std; #define rep(i,a,n) for (int i=a;i<n;i++) #define per(i,a,n) for (int i=n-1;i>=a;i--) #define pb push_back #define mp make_pair #define all(x) (x).begin(),(x).end() #define fi first #define se second #define SZ(x) ((int)(x).size()) typedef vector<int> VI; typedef long long ll; typedef pair<int,int> PII; const ll mod=1000000007; ll powmod(ll a,ll b) {ll res=1;a%=mod; assert(b>=0); for(;b;b>>=1){if(b&1)res=res*a%mod;a=a*a%mod;}return res;} ll gcd(ll a,ll b) { return b?gcd(b,a%b):a;} // head const int N=301000; VI l,r; int n; int gol[N],gor[N]; int dfs(int u) { if (u<0) return u; else { gol[u]=dfs(l[u]); gor[u]=dfs(r[u]); return gol[u]; } } int FindWinner(int T, std::vector<int> L, std::vector<int> R){ l=L; r=R; n=L.size(); auto check=[&] () { dfs(0); int p=0; int cnt=0; while (p>=0) { if (gor[p]==-2) return 0; p=l[p]; cnt++; } if (gol[0]==-2&&cnt!=n) return 0; return 1; }; dfs(0); if (gol[0]==-2) return 0; for (int p=0;p<n;p++) { swap(l[p],r[p]); if (check()) return 1; swap(l[p],r[p]); p=l[p]; } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...