本地输入输出正确,求调 UB/bug
查看原帖
本地输入输出正确,求调 UB/bug
217300
Error_Eric楼主2023/11/13 21:32

不知道为什么去了 滑铁卢大学官网 下载的 data 在 windows 上运行没有问题。编译加上 -Wall 没有警告。但是超级低分。

楼主可能要回寝室了,看到答案应该是明天晚上。

#include<iostream>
#include<algorithm>
using namespace std;
const int N=3e3+5,M=105;
int n,m,a[N],b[M],cb[M],f[2][M][M][2][2],ans=-1;
//f i j k 01
// i determined    j 11  k 00 this 0/1
int F(int u,int v,int w,int o,int p){
    if(min({u,v,w,o,p})<0) return -0x7fffffff;
    else if(u==1&&(v!=0||w!=0||o!=p)) return -0x7fffffff;
    else return f[u&1][v][w][o][p];
}
int fun(int xx,int oo,int xaa,int aax){
    int ava=max(0,m-xx),fre=min(ava,oo+2-xaa-aax);
    return cb[fre+(ava-fre)/2];
}
int main(){
    #ifndef LOCAL
    ios::sync_with_stdio(0),
    cin.tie(0),cout.tie(0);
    #endif
    #ifdef LOCAL
    freopen(".\\env\\s5\\s5.9.in","r",stdin);
    #endif
    cin>>n;
    for(int i=1;i<=n;i++)
        cin>>a[i];
    cin>>m;
    for(int i=1;i<=m;i++)
        cin>>b[i];
    sort(b+1,b+n+1),reverse(b+1,b+n+1);
    for(int i=1;i<=m;i++)
        cb[i]=cb[i-1]+b[i];
    f[1][0][0][1][1]=a[1];
    f[1][0][0][0][0]=0;
    for(int i=2;i<=n;i++){
        for(int j=0;j<=m+1;j++){
            for(int k=0;k<=m+1;k++){
                for(int l:{0,1}){
                    f[i&1][j][k][1][l]=max(F(i-1,j,k,0,l),F(i-1,j-1,k,1,l))+a[i];
                    f[i&1][j][k][0][l]=max(F(i-1,j,k-1,0,l),F(i-1,j,k,1,l));
                    if(j==m+1)
                        f[i&1][j][k][1][l]=max(f[i&1][j][k][1][l],F(i-1,j,k,1,l))+a[i];
                    if(k==m+1)
                        f[i&1][j][k][0][l]=max(f[i&1][j][k][0][l],F(i-1,j,k,0,l));
                }
            }
        }
    }
    for(int i=0;i<=m;i++)
        for(int j=0;j<=m+1;j++)
            for(int k1:{0,1})
                for(int k2:{0,1}){
                    //if(f[n][i][j][k1][k2]+fun(i,j,k1,k2)>ans)
                        //printf("f%d,%d,%d,%d,%d=%d\n",n,i,j,k1,k2,f[n][i][j][k1][k2]);
                    ans=max(ans,f[n&1][i][j][k1][k2]+fun(i,j,k1,k2));
                }
    cout<<ans<<endl;
}
2023/11/13 21:32
加载中...