제출 #985848

#제출 시각아이디문제언어결과실행 시간메모리
985848h_squared봉쇄 시간 (IOI23_closing)C++17
8 / 100
108 ms23660 KiB
#include "closing.h" #include<bits/stdc++.h> using namespace std; typedef long long int ll; typedef double dd; typedef long double ldd; #define tst int T;cin>>T;for(int t=1;t<=T;t++) #define nl cout<<"\n"; #define rep(i,l,r) for (int i=l;i<r;i++) #define per(i,r,l) for (int i=r;i>l;i--) #define pii pair<int,int> #define mp(a,b) make_pair(a,b) #define pb push_back #define all(a) a.begin(),a.end() #define sz(a) (int)a.size() #define vi vector<int> #define vll vector<ll> #define PI 3.14159265 #define fi first #define se second const ll MOD1=1e9+7; const ll MOD2=998244353; ll mod=MOD1; ll po(ll x,ll y,ll _prime=mod) {if(y<0)return 0;y%=(_prime-1);ll res=1;while(y>0){if(y&1)res=(res*x)%_prime;x=(x*x)%_prime;y>>=1;}return (res%_prime);} ll gcd(ll a, ll b){if(a<b) swap(a,b);if(b==0) return a;return gcd(a%b,b);} void bfs(int src,vll &d,vector<vector<pii>>&adj){ queue<int>q; q.push(src); fill(all(d),-1); d[src]=0; while(!q.empty()){ int u=q.front();q.pop(); for(auto [v,w]:adj[u]){ if(d[v]==-1){ d[v]=d[u]+w; q.push(v); } } } } int max_score(int N, int X, int Y, long long K, std::vector<int> U, std::vector<int> V, std::vector<int> W) { vector<vector<pii>>adj(N); for(int i=0;i<N-1;i++){ adj[U[i]].pb({V[i],W[i]}); adj[V[i]].pb({U[i],W[i]}); } vll dx(N),dy(N); bfs(X,dx,adj); bfs(Y,dy,adj); sort(all(dx));sort(all(dy)); int ans=0; int j=N-1; ll sy=0; for(auto i:dy)sy+=i; ll sx=0; rep(i,0,N+1){ while(j>=0 && sx+sy>K){ sy-=dy[j];j--; }if(sx+sy<=K)ans=max(ans,i+j+1); if(i==N)break; sx+=dx[i]; }return ans; }
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...