제출 #130051

#제출 시각아이디문제언어결과실행 시간메모리
130051MvCAliens (IOI16_aliens)C++11
60 / 100
2054 ms5756 KiB
#pragma GCC target("avx2") #pragma GCC optimization("O3") #pragma GCC optimization("unroll-loops") #include<bits/stdc++.h> #include "aliens.h" #define rc(x) return cout<<x<<endl,0 #define pb push_back #define mkp make_pair #define in insert #define er erase #define fd find #define fr first #define sc second typedef long long ll; typedef long double ld; const ll INF=0x3f3f3f3f3f3f3f3f; const ll llinf=(1LL<<62); const int inf=(1<<30); const int nmax=1e5+50; const int mod=1e9+7; using namespace std; int n,m,k,i,j,t,id,x,y,mxn[nmax]; ll f[2][nmax]; pair<int,int>pr[nmax],v[nmax]; ll cst(int l,int r) { ll x=mxn[r]-v[l].fr; ll y=max(0,mxn[l-1]-v[l].fr); return x*x-y*y; } void rec(int l,int r,int opl,int opr) { if(l>r)return; int mid=(l+r)/2,bst; for(int i=opl;i<=min(mid,opr);i++) { if(f[0][i-1]+cst(i,mid)<=f[1][mid]) { f[1][mid]=f[0][i-1]+cst(i,mid); bst=i; } } rec(l,mid-1,opl,bst); rec(mid+1,r,bst,opr); } ll take_photos(int N,int M,int K,vector<int>r,vector<int>c) { n=N,m=M,k=K; for(i=1;i<=n;i++) { pr[i].fr=min(r[i-1],c[i-1]); pr[i].sc=max(r[i-1],c[i-1])+1; } for(j=1;j<=n;j++)f[0][j]=f[1][j]=llinf; sort(pr+1,pr+n+1); int mx=-1; for(i=1;i<=n;i++) { v[++id]=mkp(pr[i].fr,mx=pr[i].sc); mxn[id]=max(mxn[id-1],mx); } n=id; k=min(k,n); for(i=1;i<=k;i++) { rec(1,n,1,n); for(j=1;j<=n;j++) { f[0][j]=f[1][j]; f[1][j]=llinf; } } return f[0][n]; } /*int main() { //freopen("sol.in","r",stdin); //freopen("sol.out","w",stdout); //mt19937 rng(chrono::steady_clock::now().time_since_epoch().count()); ios_base::sync_with_stdio(false);cin.tie(0);cerr.tie(0);cout.tie(0); cin>>n>>m>>k; for(i=1;i<=n;i++) { cin>>x>>y; pr[i].fr=min(x,y); pr[i].sc=max(x,y)+1; } for(j=1;j<=n;j++)f[0][j]=f[1][j]=llinf; sort(pr+1,pr+n+1); int mx=-1; for(i=1;i<=n;i++) { if(pr[i].sc>mx)v[++id]=mkp(pr[i].fr,mx=pr[i].sc); } n=id; k=min(k,n); for(i=1;i<=k;i++) { rec(1,n,1,n); for(j=1;j<=n;j++) { f[0][j]=f[1][j]; f[1][j]=llinf; } } cout<<f[0][n]<<endl; return 0; } /* 5 7 2 0 3 4 4 4 6 4 5 4 6 2 6 2 1 4 4 1 */

컴파일 시 표준 에러 (stderr) 메시지

aliens.cpp:2:0: warning: ignoring #pragma GCC optimization [-Wunknown-pragmas]
 #pragma GCC optimization("O3")
 
aliens.cpp:3:0: warning: ignoring #pragma GCC optimization [-Wunknown-pragmas]
 #pragma GCC optimization("unroll-loops")
 
aliens.cpp:109:1: warning: "/*" within comment [-Wcomment]
 /*
  
aliens.cpp: In function 'void rec(int, int, int, int)':
aliens.cpp:43:5: warning: 'bst' may be used uninitialized in this function [-Wmaybe-uninitialized]
  rec(l,mid-1,opl,bst);
  ~~~^~~~~~~~~~~~~~~~~
#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...