QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#560509#859. Civilizationsrotcar07Compile Error//C++203.0kb2024-09-12 16:03:242024-09-12 16:03:25

Judging History

你现在查看的是最新测评结果

  • [2024-09-12 16:03:25]
  • 评测
  • [2024-09-12 16:03:24]
  • 提交

answer

#include<bits/stdc++.h>
using namespace std;
int w[505][505],p[505][505];
int n,q;
int sum[250005],l[250005],cnt[250005];
vector<ll> sb[250005];
typedef long long ll;
inline void solve(){
    cin>>n;
    for(int i=1;i<=n;i++)for(int j=1;j<=n;j++) cin>>w[i][j];
    for(int i=1;i<=n;i++)for(int j=1;j<=n;j++) cin>>p[i][j],p[i][j]++;
    for(int i=1;i<=n*n;i++) sum[i]=l[i]=cnt[i]=0,sb[i].clear();
    for(int i=1;i<=n;i++)for(int j=1;j<=n;j++){
        sum[p[i][j]]+=w[i][j];cnt[p[i][j]]++;
        if(i<n)
            if(p[i][j]!=p[i+1][j]) l[p[i][j]]++,l[p[i+1][j]]++;
        if(j<n)
            if(p[i][j]!=p[i][j+1]) l[p[i][j]]++,l[p[i][j+1]]++;
    }cin>>q;
    unordered_set<int> v;
    for(int i=1;i<=n*n;i++)if(cnt[i])v.insert(l[i]),sb[l[i]].push_back(sum[i]);
    for(auto x:v) sort(sb[x].begin(),sb[x].end());
    while(q--){
        int x,y,z;ll A,B,C;cin>>x>>y>>z>>A>>B>>C;z++;
        auto del=[&](int z){
            int a=l[z];ll b=sum[z];
            if(!cnt[z]) return;
            // cout<<"DEL "<<z<<' '<<a<<' '<<b<<'\n';
            assert(!sb[a].empty());
            assert(v.count(a));
            sb[a].erase(lower_bound(sb[a].begin(),sb[a].end(),b));
            if(sb[a].empty()) v.erase(a);
        };
        auto add=[&](int z){
            int a=l[z];ll b=sum[z];
            if(!cnt[z]) return;
            // cout<<"ADD "<<z<<' '<<a<<' '<<b<<'\n';
            sb[a].insert(upper_bound(sb[a].begin(),sb[a].end(),b),b);
            if(sb[a].size()==1) v.insert(a);
        };
        if(z!=p[x][y]){
            int dx[4]={0,1,0,-1},dy[4]={1,0,-1,0};
            int w=p[x][y];
            for(int d=0;d<4;d++){
                int xx=x+dx[d],yy=y+dy[d];
                if(xx<1||yy<1||xx>n||yy>n) continue;
                del(p[xx][yy]);
                if(w!=p[xx][yy])l[p[xx][yy]]--;
                if(z!=p[xx][yy])l[p[xx][yy]]++;
                add(p[xx][yy]);
            }
            del(w),del(z);
            for(int d=0;d<4;d++){
                int xx=x+dx[d],yy=y+dy[d];
                if(xx<1||yy<1||xx>n||yy>n) continue;
                if(w!=p[xx][yy])l[w]--;
                if(z!=p[xx][yy])l[z]++;
            }cnt[w]--,cnt[z]++;
            sum[w]-=::w[x][y];
            add(w);
            p[x][y]=z;
            sum[z]+=::w[x][y];
            add(z);
        }
        ll ans=-1e18;
        // for(int i=1;i<=n*n;i++) cout<<i<<' '<<l[i]<<' '<<sum[i]<<' '<<cnt[i]<<'\n';
        for(auto x:v){
            ll d=A+C*x;
            // cout<<x<<' '<<sb[x].size()<<'\n';
            // for(auto z:sb[x]) cout<<z<<' ';cout<<'\n';
            assert(!sb[x].empty());
            if(d<0)ans=max(ans,B*x+d*sb[x][0]);
            else ans=max(ans,B*x+d*sb[x].back());
        }
        cout<<ans<<'\n';
    }
}
int main(){
    // string name="A";freopen((name+".in").c_str(),"r",stdin);//freopen((name+".out").c_str(),"w",stdout);
    std::ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
    int t;cin>>t;
    while(t--) solve();
}

Details

answer.code:6:8: error: ‘ll’ was not declared in this scope; did you mean ‘l’?
    6 | vector<ll> sb[250005];
      |        ^~
      |        l
answer.code:6:10: error: template argument 1 is invalid
    6 | vector<ll> sb[250005];
      |          ^
answer.code:6:10: error: template argument 2 is invalid
answer.code: In function ‘void solve()’:
answer.code:12:56: error: request for member ‘clear’ in ‘sb[i]’, which is of non-class type ‘int’
   12 |     for(int i=1;i<=n*n;i++) sum[i]=l[i]=cnt[i]=0,sb[i].clear();
      |                                                        ^~~~~
answer.code:21:62: error: request for member ‘push_back’ in ‘sb[l[i]]’, which is of non-class type ‘int’
   21 |     for(int i=1;i<=n*n;i++)if(cnt[i])v.insert(l[i]),sb[l[i]].push_back(sum[i]);
      |                                                              ^~~~~~~~~
answer.code:22:30: error: request for member ‘begin’ in ‘sb[x]’, which is of non-class type ‘int’
   22 |     for(auto x:v) sort(sb[x].begin(),sb[x].end());
      |                              ^~~~~
answer.code:22:44: error: request for member ‘end’ in ‘sb[x]’, which is of non-class type ‘int’
   22 |     for(auto x:v) sort(sb[x].begin(),sb[x].end());
      |                                            ^~~
In file included from /usr/include/c++/13/cassert:44,
                 from /usr/include/x86_64-linux-gnu/c++/13/bits/stdc++.h:106,
                 from answer.code:1:
answer.code: In lambda function:
answer.code:29:27: error: request for member ‘empty’ in ‘sb[a]’, which is of non-class type ‘int’
   29 |             assert(!sb[a].empty());
      |                           ^~~~~
answer.code:31:19: error: request for member ‘erase’ in ‘sb[a]’, which is of non-class type ‘int’
   31 |             sb[a].erase(lower_bound(sb[a].begin(),sb[a].end(),b));
      |                   ^~~~~
answer.code:31:43: error: request for member ‘begin’ in ‘sb[a]’, which is of non-class type ‘int’
   31 |             sb[a].erase(lower_bound(sb[a].begin(),sb[a].end(),b));
      |                                           ^~~~~
answer.code:31:57: error: request for member ‘end’ in ‘sb[a]’, which is of non-class type ‘int’
   31 |             sb[a].erase(lower_bound(sb[a].begin(),sb[a].end(),b));
      |                                                         ^~~
answer.code:32:22: error: request for member ‘empty’ in ‘sb[a]’, which is of non-class type ‘int’
   32 |             if(sb[a].empty()) v.erase(a);
      |                      ^~~~~
answer.code: In lambda function:
answer.code:38:19: error: request for member ‘insert’ in ‘sb[a]’, which is of non-class type ‘int’
   38 |             sb[a].insert(upper_bound(sb[a].begin(),sb[a].end(),b),b);
      |                   ^~~~~~
answer.code:38:44: error: request for member ‘begin’ in ‘sb[a]’, which is of non-class type ‘int’
   38 |             sb[a].insert(upper_bound(sb[a].begin(),sb[a].end(),b),b);
      |                                            ^~~~~
answer.code:38:58: error: request for member ‘end’ in ‘sb[a]’, which is of non-class type ‘int’
   38 |             sb[a].insert(upper_bound(sb[a].begin(),sb[a].end(),b),b);
      |                                                          ^~~
answer.code:39:22: error: request for member ‘size’ in ‘sb[a]’, which is of non-class type ‘int’
   39 |             if(sb[a].size()==1) v.insert(a);
      |                      ^~~~
answer.code: In function ‘void solve()’:
answer.code:71:27: error: request for member ‘empty’ in ‘sb[x]’, which is of non-class type ‘int’
   71 |             assert(!sb[x].empty());
      |                           ^~~~~
answer.code:72:43: error: invalid types ‘int[int]’ for array subscript
   72 |             if(d<0)ans=max(ans,B*x+d*sb[x][0]);
      |                                           ^
answer.code:73:42: error: request for member ‘back’ in ‘sb[x]’, which is of non-class type ‘int’
   73 |             else ans=max(ans,B*x+d*sb[x].back());
      |                                          ^~~~