제출 #1175216

#제출 시각아이디문제언어결과실행 시간메모리
1175216HappyCapybaraAliens (IOI16_aliens)C++20
0 / 100
0 ms328 KiB
#include "aliens.h" #include<bits/stdc++.h> using namespace std; #define ll long long vector<int> lg; vector<vector<int>> st; int query(int l, int r){ int d = 31-__builtin_clz(r-l+1); //cout << l << " " << r << " " << d << endl; //cout << st[d][l] << endl; return min(st[d][l], st[d][r-(1<<d)+1]); } ll take_photos(int n, int m, int k, vector<int> r, vector<int> c){ int lp = -1; st.resize(20, vector<int>(m, m)); for (int i=0; i<n; i++){ st[0][max(r[i], c[i])] = min(st[0][max(r[i], c[i])], min(r[i], c[i])); lp = max(lp, max(r[i], c[i])); } //for (int i=0; i<m; i++) cout << st[0][i] << " "; //cout << endl << lp << endl; for (int j=1; j<20; j++){ for (int i=0; i<m; i++){ if (i+1<<(j-1)-1 >= m) continue; st[j][i] = min(st[j-1][i], st[j-1][i+1<<(j-1)]); } } lg.resize(m); vector<vector<ll>> dp(m+1, vector<ll>(k+1, 1ll<<50)); for (int i=0; i<=k; i++) dp[m][i] = 0; for (int i=lp+1; i<=m; i++) dp[i][0] = 0; //cout << query(3, 6) << " a\n"; for (int kl=1; kl<=k; kl++){ for (int i=m-1; i>=0; i--){ for (int j=i+1; j<=m; j++){ ll d = query(i, j-1); ll cost = 0; if (d != m){ cost = pow((j-d), 2)-pow(max(i-d, 0ll), 2); } //cout << i << " " << j << " " << d << " " << cost << endl; dp[i][kl] = min(dp[i][kl], cost+dp[j][kl-1]); } //cout << i << " " << kl << " " << dp[i][kl] << endl; } } return dp[0][k]; }

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

aliens.h:1:9: warning: #pragma once in main file
    1 | #pragma once
      |         ^~~~
aliens_c.h:1:9: warning: #pragma once in main file
    1 | #pragma once
      |         ^~~~
#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...