QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#886613#10019. Gold Coinsrotcar07WA 0ms3584kbC++231.0kb2025-02-07 10:04:162025-02-07 10:04:25

Judging History

This is the latest submission verdict.

  • [2025-02-07 10:04:25]
  • Judged
  • Verdict: WA
  • Time: 0ms
  • Memory: 3584kb
  • [2025-02-07 10:04:16]
  • Submitted

answer

#include<bits/stdc++.h>
using namespace std;
constexpr int N=305;
int n,m,a[N][N],dp[N][N],s[N][N],mx[N];
int sr[N],sc[N];
int main(){
    ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    cin>>n>>m;
    for(int i=1;i<=n;i++)
    for(int j=1;j<=m;j++){
        cin>>a[i][j];
        if(a[i][j])mx[i]=max(mx[i],j);
    }
    for(int i=n;i>=1;i--) mx[i]=max(mx[i],mx[i+1]);
    for(int i=1;i<=n+1;i++)
    for(int j=1;j<=m+1;j++)s[i][j]=s[i-1][j]+s[i][j-1]-s[i-1][j-1]+a[i][j];
    auto f=[&](int a,int b,int c,int d){return s[c][d]-s[c][b]-s[a][d]+s[a][b];};
    auto cmin=[&](int&x,int y){(x>y)&&(x=y);};
    for(int i=n;i>=1;i--)
    for(int j=m;j>=1;j--){
        sr[i-1]=sc[j-1]=0;
        for(int x=i;x<=n;x++) sr[x]=sr[x-1]+(!!f(x-1,j-1,x,m));
        for(int x=j;x<=m;x++) sc[x]=sc[x-1]+(!!f(i-1,x-1,n,x));
        dp[i][j]=1e9;
        for(int x=i;x<=n;x++){
            int y=max(j,mx[i]);
            cmin(dp[i][j],dp[x+1][j]+dp[i][y+1]+sc[y]*sr[x]-f(i-1,j-1,x,y));
        }
    }
    cout<<dp[1][1]<<'\n';
}

詳細信息

Test #1:

score: 0
Wrong Answer
time: 0ms
memory: 3584kb

input:

2 3
1 0 0
0 1 1

output:

2

result:

wrong answer expected '1', found '2'