Submission #857818

#TimeUsernameProblemLanguageResultExecution timeMemory
85781812345678수열 (APIO14_sequence)C++17
Compilation error
0 ms0 KiB
#include <bits/stdc++.h>

using namespace std;

#define ll long long

const int kx=2e2+5, nx=1e5+5;

ll n, k, qs[nx];
//ll dp[kx][nx];
int bk[kx][nx];

void solve(int l, int r, int optl, int optr, int layer)
{
    if (l>r) return;
    int md=(l+r)/2;
    pair<ll, ll> p={LLONG_MAX, 0};
    for (int i=optl; i<=min(optr, md-1); i++) if (dp[layer-1][i]!=LLONG_MAX) p=min(p, {dp[layer-1][i]+(qs[md]-qs[i])*(qs[md]-qs[i]), i});
    dp[layer][md]=p.first;
    bk[layer][md]=p.second;
    solve(l, md-1, optl, p.second, layer);
    solve(md+1, r, p.second, optr, layer);
}

int main()
{
    cin.tie(NULL)->sync_with_stdio(false);
    cin>>n>>k;
    for (int i=1; i<=n; i++) cin>>qs[i], qs[i]+=qs[i-1];
    return 0;
    for (int i=0; i<kx; i++) for (int j=0; j<nx; j++) dp[i][j]=LLONG_MAX;
    dp[0][0]=0;
    for (int i=1; i<=k+1; i++) solve(1, n, 0, n, i);
    cout<<(qs[n]*qs[n]-dp[k+1][n])/2<<'\n';
    ll l=n, ly=k+1;
    while (ly>1)
    {
        l=bk[ly][l];
        ly--;
        cout<<l<<' ';
    }
}

Compilation message (stderr)

sequence.cpp: In function 'void solve(int, int, int, int, int)':
sequence.cpp:18:51: error: 'dp' was not declared in this scope; did you mean 'p'?
   18 |     for (int i=optl; i<=min(optr, md-1); i++) if (dp[layer-1][i]!=LLONG_MAX) p=min(p, {dp[layer-1][i]+(qs[md]-qs[i])*(qs[md]-qs[i]), i});
      |                                                   ^~
      |                                                   p
sequence.cpp:18:136: error: no matching function for call to 'min(std::pair<long long int, long long int>&, <brace-enclosed initializer list>)'
   18 |     for (int i=optl; i<=min(optr, md-1); i++) if (dp[layer-1][i]!=LLONG_MAX) p=min(p, {dp[layer-1][i]+(qs[md]-qs[i])*(qs[md]-qs[i]), i});
      |                                                                                                                                        ^
In file included from /usr/include/c++/10/bits/specfun.h:45,
                 from /usr/include/c++/10/cmath:1927,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:41,
                 from sequence.cpp:1:
/usr/include/c++/10/bits/stl_algobase.h:230:5: note: candidate: 'constexpr const _Tp& std::min(const _Tp&, const _Tp&) [with _Tp = std::pair<long long int, long long int>]'
  230 |     min(const _Tp& __a, const _Tp& __b)
      |     ^~~
/usr/include/c++/10/bits/stl_algobase.h:230:36: note:   no known conversion for argument 2 from '<brace-enclosed initializer list>' to 'const std::pair<long long int, long long int>&'
  230 |     min(const _Tp& __a, const _Tp& __b)
      |                         ~~~~~~~~~~~^~~
/usr/include/c++/10/bits/stl_algobase.h:278:5: note: candidate: 'template<class _Tp, class _Compare> constexpr const _Tp& std::min(const _Tp&, const _Tp&, _Compare)'
  278 |     min(const _Tp& __a, const _Tp& __b, _Compare __comp)
      |     ^~~
/usr/include/c++/10/bits/stl_algobase.h:278:5: note:   template argument deduction/substitution failed:
sequence.cpp:18:136: note:   candidate expects 3 arguments, 2 provided
   18 |     for (int i=optl; i<=min(optr, md-1); i++) if (dp[layer-1][i]!=LLONG_MAX) p=min(p, {dp[layer-1][i]+(qs[md]-qs[i])*(qs[md]-qs[i]), i});
      |                                                                                                                                        ^
In file included from /usr/include/c++/10/algorithm:62,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:65,
                 from sequence.cpp:1:
/usr/include/c++/10/bits/stl_algo.h:3468:5: note: candidate: 'template<class _Tp> constexpr _Tp std::min(std::initializer_list<_Tp>)'
 3468 |     min(initializer_list<_Tp> __l)
      |     ^~~
/usr/include/c++/10/bits/stl_algo.h:3468:5: note:   template argument deduction/substitution failed:
sequence.cpp:18:136: note:   'std::pair<long long int, long long int>' is not derived from 'std::initializer_list<_Tp>'
   18 |     for (int i=optl; i<=min(optr, md-1); i++) if (dp[layer-1][i]!=LLONG_MAX) p=min(p, {dp[layer-1][i]+(qs[md]-qs[i])*(qs[md]-qs[i]), i});
      |                                                                                                                                        ^
In file included from /usr/include/c++/10/algorithm:62,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:65,
                 from sequence.cpp:1:
/usr/include/c++/10/bits/stl_algo.h:3474:5: note: candidate: 'template<class _Tp, class _Compare> constexpr _Tp std::min(std::initializer_list<_Tp>, _Compare)'
 3474 |     min(initializer_list<_Tp> __l, _Compare __comp)
      |     ^~~
/usr/include/c++/10/bits/stl_algo.h:3474:5: note:   template argument deduction/substitution failed:
sequence.cpp:18:136: note:   'std::pair<long long int, long long int>' is not derived from 'std::initializer_list<_Tp>'
   18 |     for (int i=optl; i<=min(optr, md-1); i++) if (dp[layer-1][i]!=LLONG_MAX) p=min(p, {dp[layer-1][i]+(qs[md]-qs[i])*(qs[md]-qs[i]), i});
      |                                                                                                                                        ^
sequence.cpp:19:5: error: 'dp' was not declared in this scope; did you mean 'p'?
   19 |     dp[layer][md]=p.first;
      |     ^~
      |     p
sequence.cpp: In function 'int main()':
sequence.cpp:31:55: error: 'dp' was not declared in this scope
   31 |     for (int i=0; i<kx; i++) for (int j=0; j<nx; j++) dp[i][j]=LLONG_MAX;
      |                                                       ^~
sequence.cpp:32:5: error: 'dp' was not declared in this scope
   32 |     dp[0][0]=0;
      |     ^~