Submission #1166178

#TimeUsernameProblemLanguageResultExecution timeMemory
1166178dnnndaIsland Hopping (JOI24_island)C++20
2 / 100
227 ms752 KiB
#include<bits/stdc++.h> #include "island.h" using namespace std; #define S second #define F first #define ll long long //#define int long long //#pragma GCC optimize("Ofast, unroll-loop") //#pragma GCC target("avx,avx2") #pragma GCC optimize("O3") #define init(arr,val) memset(arr,val,sizeof arr) const int inf=0x3f3f3f3f; const ll inff=0x3f3f3f3f3f3f3f3f; const int X=1000000007; //const int X=998244353; /* int query(int v, int k){ cout << "query " << v << ' ' << k << '\n'; int ret; cin >> ret; return ret; } void answer(int u, int v){ cout << "answer: " << u << ' ' << v << '\n'; }*/ int p[305], dis[305][305]; int root(int x){ if(p[x]<0) return x; return p[x]=root(p[x]); } void joint(int a, int b){ int ra=root(a), rb=root(b); if(ra==rb) return; answer(a,b); p[ra]+=p[rb]; p[rb]=ra; return; } void solve(int n, int L){ init(p,-1); for(int i=1 ; i<=n ; i++) for(int j=1 ; j<n ; j++) dis[i][j]=query(i,j); for(int j=1 ; j<n ; j++) for(int i=1 ; i<=n ; i++){ for(int d=1 ; d<=j ; d++){ if(root(i)!=root(dis[i][d])){ joint(i,dis[i][d]); break; } } } return; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...