陌尘缘_怜 @ 2018-10-29 17:03:45
感谢@Chen_Py大佬的数据
4 4
1 0 1 0
0 1 0 0
1 0 1 0
0 0 0 1
输出为3
dp在转移时,若是失败,不应直接跳过,应接着枚举可行长度
for(int i=1;i<=n;i++)//错误代码
{
for(int j=m;j>=1;j--)
{
if(dp2[i][j] and i+1<=n and j-1>=1 and a[i+1][j-1])
{
int l=dp2[i][j];
int re1=f[i][j-1]-f[i][j-2]-f[i-l][j-1]+f[i-l][j-2];
int re2=f[i+1][j+l-1]-f[i+1][j-1]-f[i][j+l-1]+f[i][j-1];
if(!re1 and !re2) dp2[i+1][j-1]=l+1,maxn=max(maxn,l+1);
}
}
}
for(int i=1;i<=n;i++)//正确代码
{
for(int j=m;j>=1;j--)
{
if(dp2[i][j] and i+1<=n and j-1>=1 and a[i+1][j-1])
{
for(int l=dp2[i][j];l>=1;l--)
{
int re1=f[i][j-1]-f[i][j-2]-f[i-l][j-1]+f[i-l][j-2];
int re2=f[i+1][j+l-1]-f[i+1][j-1]-f[i][j+l-1]+f[i][j-1];
if(!re1 and !re2)
{
dp2[i+1][j-1]=l+1,maxn=max(maxn,l+1);
break;
}
}
}
}
}
不用问我为什么要告诉你们这些
我只是希望大家可以在讨论中互助一下,
(一份代码卡1个小时真的很烦)
by sdxjzsq @ 2018-10-29 19:28:48
@陌尘缘_怜 让我少浪费了1个小时的时间!
数据好评!
by 谁是鸽王 @ 2018-11-04 15:52:43
非常nice,感谢lz,我做法和你一样,但是我想问一下,这样不就是
by shuyingte @ 2018-11-09 07:28:54
太神了
by Thaumaturge @ 2019-04-18 15:44:46
@谁是鸽王 他是从答案开始循环的,如果答案特别大才会被卡住
by lytqwq @ 2019-07-20 10:35:07
感谢
by wfffwwwww @ 2019-08-10 18:39:58
感谢大佬
by lemir3 @ 2019-08-27 21:26:01
然而过了大佬的这个hack数据依旧WA#4和#12...
by NickCX @ 2019-10-25 18:59:53
orz%%%,感谢大佬
by youlv @ 2023-10-18 13:29:46
感谢
by zhanglh @ 2024-07-03 21:40:46
万分感谢!!