제출 #533682

#제출 시각아이디문제언어결과실행 시간메모리
533682rumen_mAliens (IOI16_aliens)C++17
컴파일 에러
0 ms0 KiB
// name = sol_ge_i_iz_TSARI.cpp, type = cpp.g++11 #include "aliens.h" #include <cstdio> #include <cmath> #include <cstdlib> #include <cassert> #include <ctime> #include <cstring> #include <string> #include <set> #include <map> #include <vector> #include <list> #include <deque> #include <queue> #include <sstream> #include <iostream> #include <algorithm> using namespace std; #define pb push_back #define mp make_pair #define fs first #define sc second const double pi = acos(-1.0); const int generation = 30000; const int size = 4050; const int iters = 1000 * 1000 * 300; const long long inf = (long long) 1e18; vector <pair <int, int> > segs; random_device rd; mt19937 rgenerator(rd()); int genRandInt(int lb, int rb) { return lb + rgenerator() % (rb - lb + 1); } long long sqr(long long x) { return x * x; } long long get_value(vector <int>& ans) { long long res = 0; int lst = 0; int k = (int) ans.size(); for (int i = 1; i < k; i++) { res += sqr(segs[ans[i] - 1].sc - segs[lst].fs + 1); res -= sqr(max(0, segs[ans[i] - 1].sc - segs[ans[i]].fs + 1)); // cerr << res << endl; lst = ans[i]; } res += sqr(segs.back().sc - segs[lst].fs + 1); return res; } long long ans[size][size]; long long cost[size][size]; long long take_photos(int n, int m, int k, vector <int> r, vector <int> c) { vector <pair <int, int> > pts; for (int i = 0; i < n; i++) pts.pb(mp(min(r[i], c[i]), -max(r[i], c[i]))); sort(pts.begin(), pts.end()); int cmx = -1; for (int i = 0; i < n; i++) { if (-pts[i].sc > cmx) { segs.pb(pts[i]); segs.back().sc *= -1; cmx = -pts[i].sc; } } n = (int) segs.size(); k = min(n, k); for (int i = 0; i < n; i++) { for (int j = i + 1; j < n; j++) { cost[j][i] = sqr(segs[j - 1].sc - segs[i].fs + 1) - sqr(max(0, segs[j - 1].sc - segs[j].fs + 1)); } cost[n][i] = sqr(segs.back().sc - segs[i].fs + 1); } for (int i = 0; i <= k; i++) for (int j = 0; j <= n; j++) ans[i][j] = inf; ans[0][0] = 0; // for (int i = 1; i <= k; i++) { // for (int j = 0; j < n; j++) // for (int q = j + 1; q <= n; q++) // ans[i][q] = min(ans[i][q], ans[i - 1][j] + cost[j][q]); // } int magic = iters / (n * k); // int magic = 1; for (int i = 1; i <= k; i++) { int p = 0; for (int j = 1; j <= n; j++) { // while (true) { // for (int q = p + 1; q < min(j, p + magic); q++) // if (ans[i - 1][q] + cost[j][q] <= ans[i - 1][ // } while (p + 1 < j && ans[i - 1][p + 1] + cost[j][p + 1] <= ans[i - 1][p] + cost[j][p]) p++; for (int q = p; q < min(j, p + magic); q++) ans[i][j] = min(ans[i][j], ans[i - 1][q] + cost[j][q]); for (int q = max(0, j - magic); q < j; q++) ans[i][j] = min(ans[i][j], ans[i - 1][q] + cost[j][q]); } } return ans[k][n]; } /* int main() { int n, m, k; scanf("%d %d %d", &n, &m, &k); std::vector<int> r(n), c(n); for (int i = 0; i < n; i++) { scanf("%d %d", &r[i], &c[i]); } long long ans = take_photos(n, m, k, r, c); // BEGIN SECRET puts("098d134608c94f7413faac591054ee35"); // END SECRET cerr << (clock() + 0.0) / CLOCKS_PER_SEC << endl; printf("%lld\n", ans); return 0; } */

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

aliens.cpp:36:1: error: 'random_device' does not name a type; did you mean 'random_data'?
   36 | random_device rd;
      | ^~~~~~~~~~~~~
      | random_data
aliens.cpp:37:1: error: 'mt19937' does not name a type
   37 | mt19937 rgenerator(rd());
      | ^~~~~~~
aliens.cpp: In function 'int genRandInt(int, int)':
aliens.cpp:40:17: error: 'rgenerator' was not declared in this scope; did you mean 'generation'?
   40 |     return lb + rgenerator() % (rb - lb + 1);
      |                 ^~~~~~~~~~
      |                 generation
aliens.cpp: At global scope:
aliens.cpp:63:15: error: reference to 'size' is ambiguous
   63 | long long ans[size][size];
      |               ^~~~
In file included from /usr/include/c++/10/vector:69,
                 from aliens.h:3,
                 from aliens.cpp:3:
/usr/include/c++/10/bits/range_access.h:254:5: note: candidates are: 'template<class _Tp, long unsigned int _Nm> constexpr std::size_t std::size(const _Tp (&)[_Nm])'
  254 |     size(const _Tp (&)[_Nm]) noexcept
      |     ^~~~
/usr/include/c++/10/bits/range_access.h:245:5: note:                 'template<class _Container> constexpr decltype (__cont.size()) std::size(const _Container&)'
  245 |     size(const _Container& __cont) noexcept(noexcept(__cont.size()))
      |     ^~~~
aliens.cpp:30:11: note:                 'const int size'
   30 | const int size = 4050;
      |           ^~~~
aliens.cpp:63:21: error: reference to 'size' is ambiguous
   63 | long long ans[size][size];
      |                     ^~~~
In file included from /usr/include/c++/10/vector:69,
                 from aliens.h:3,
                 from aliens.cpp:3:
/usr/include/c++/10/bits/range_access.h:254:5: note: candidates are: 'template<class _Tp, long unsigned int _Nm> constexpr std::size_t std::size(const _Tp (&)[_Nm])'
  254 |     size(const _Tp (&)[_Nm]) noexcept
      |     ^~~~
/usr/include/c++/10/bits/range_access.h:245:5: note:                 'template<class _Container> constexpr decltype (__cont.size()) std::size(const _Container&)'
  245 |     size(const _Container& __cont) noexcept(noexcept(__cont.size()))
      |     ^~~~
aliens.cpp:30:11: note:                 'const int size'
   30 | const int size = 4050;
      |           ^~~~
aliens.cpp:64:16: error: reference to 'size' is ambiguous
   64 | long long cost[size][size];
      |                ^~~~
In file included from /usr/include/c++/10/vector:69,
                 from aliens.h:3,
                 from aliens.cpp:3:
/usr/include/c++/10/bits/range_access.h:254:5: note: candidates are: 'template<class _Tp, long unsigned int _Nm> constexpr std::size_t std::size(const _Tp (&)[_Nm])'
  254 |     size(const _Tp (&)[_Nm]) noexcept
      |     ^~~~
/usr/include/c++/10/bits/range_access.h:245:5: note:                 'template<class _Container> constexpr decltype (__cont.size()) std::size(const _Container&)'
  245 |     size(const _Container& __cont) noexcept(noexcept(__cont.size()))
      |     ^~~~
aliens.cpp:30:11: note:                 'const int size'
   30 | const int size = 4050;
      |           ^~~~
aliens.cpp:64:22: error: reference to 'size' is ambiguous
   64 | long long cost[size][size];
      |                      ^~~~
In file included from /usr/include/c++/10/vector:69,
                 from aliens.h:3,
                 from aliens.cpp:3:
/usr/include/c++/10/bits/range_access.h:254:5: note: candidates are: 'template<class _Tp, long unsigned int _Nm> constexpr std::size_t std::size(const _Tp (&)[_Nm])'
  254 |     size(const _Tp (&)[_Nm]) noexcept
      |     ^~~~
/usr/include/c++/10/bits/range_access.h:245:5: note:                 'template<class _Container> constexpr decltype (__cont.size()) std::size(const _Container&)'
  245 |     size(const _Container& __cont) noexcept(noexcept(__cont.size()))
      |     ^~~~
aliens.cpp:30:11: note:                 'const int size'
   30 | const int size = 4050;
      |           ^~~~
aliens.cpp: In function 'long long int take_photos(int, int, int, std::vector<int>, std::vector<int>)':
aliens.cpp:86:13: error: 'cost' was not declared in this scope; did you mean 'cosl'?
   86 |             cost[j][i] = sqr(segs[j - 1].sc - segs[i].fs + 1) - sqr(max(0, segs[j - 1].sc - segs[j].fs + 1));
      |             ^~~~
      |             cosl
aliens.cpp:88:9: error: 'cost' was not declared in this scope; did you mean 'cosl'?
   88 |         cost[n][i] = sqr(segs.back().sc - segs[i].fs + 1);
      |         ^~~~
      |         cosl
aliens.cpp:93:13: error: 'ans' was not declared in this scope; did you mean 'abs'?
   93 |             ans[i][j] = inf;
      |             ^~~
      |             abs
aliens.cpp:94:5: error: 'ans' was not declared in this scope; did you mean 'abs'?
   94 |     ans[0][0] = 0;
      |     ^~~
      |     abs
aliens.cpp:111:53: error: 'cost' was not declared in this scope; did you mean 'cosl'?
  111 |             while (p + 1 < j && ans[i - 1][p + 1] + cost[j][p + 1] <= ans[i - 1][p] + cost[j][p])
      |                                                     ^~~~
      |                                                     cosl
aliens.cpp:114:60: error: 'cost' was not declared in this scope; did you mean 'cosl'?
  114 |                 ans[i][j] = min(ans[i][j], ans[i - 1][q] + cost[j][q]);
      |                                                            ^~~~
      |                                                            cosl
aliens.cpp:116:60: error: 'cost' was not declared in this scope; did you mean 'cosl'?
  116 |                 ans[i][j] = min(ans[i][j], ans[i - 1][q] + cost[j][q]);
      |                                                            ^~~~
      |                                                            cosl