QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#427258 | #8780. Training, Round 2 | ucup-team2279# | RE | 0ms | 0kb | C++20 | 849b | 2024-06-01 11:29:57 | 2024-06-01 11:29:57 |
answer
#include <bits/stdc++.h>
using namespace std;
const int N=5005;
int n,f[N][N],g[N][N],a,b;
int main(){
scanf("%d%d%d",&n,&a,&b);
memset(f,0xcf,sizeof f);
memset(g,0xcf,sizeof g);
f[0][0]=0,g[0][0]=0;
for(int i=1; i<=n; i++){
int xl,xr,yl,yr;
scanf("%d%d%d%d",&xl,&xr,&yl,&yr);
xl-=a,xr-=a,yl-=b,yr-=b;
for(int j=0; j<i; j++){
if(xl<=j&&j<=xr&&f[i-1][j]>=yl&&f[i-1][j]<=yr){
f[i][j]=max(f[i][j],f[i-1][j]+1);
f[i][j+1]=max(f[i][j+1],f[i-1][j]);
}
if(xl<=g[i-1][j]&&g[i-1][j]<=xr&&yl<=j&&j<=yr){
g[i][j]=max(g[i][j],g[i-1][j]+1);
g[i][j+1]=max(g[i][j+1],g[i-1][j]);
}
}
for(int j=0; j<=i; j++)
g[i][f[i][j]]=max(g[i][f[i][j]],j),
f[i][g[i][j]]=max(f[i][g[i][j]],j);
}
int ans=0;
for(int i=0; i<=n; i++) ans=max(ans,f[n][i]+i);
printf("%d\n",ans);
return 0;
}
詳細信息
Test #1:
score: 0
Runtime Error
input:
3 0 0 0 1 0 1 1 1 0 1 1 1 1 1