新人求助,棋盘制作那题,本机WA,提交AC。。。

P1169 [ZJOI2007] 棋盘制作

代码明显有问题,你提交怎么A的。。
by Makise_Kurisu @ 2018-09-27 11:55:07


@[Makise_Kurisu](/space/show?uid=59877) 抱歉发上来才发现有缩进。。。本机我确实是运行通过答案错的啊。。。有问题烦请明示。。 。 我的思路是将它扔到单调栈里,~~xjb搞一下~~ 当然你要吐槽我是“qwq风格的C++”。。。这。。。
by misinclair @ 2018-09-27 12:00:35


你是说1669?我给你一个代码试试 ```cpp #include<bits/stdc++.h> using namespace std; inline int read() { int x = 0, flag = 1; char ch = getchar(); while (ch > '9' || ch < '0') { if (ch == '-') flag = -1; ch = getchar(); } while (ch <= '9' && ch >= '0') { x = x * 10 + ch - '0'; ch = getchar(); } return x * flag; } inline void write(int x) { if (x >= 10) write(x / 10); putchar(x % 10 + '0'); } #define N 2001 #define rep(i, a, b) for (int i = a; i <= b; i++) #define drp(i, a, b) for (int i = a; i >= b; i--) #define ll long long int n, m; bool mp[N][N]; int h[N][N], l[N][N], r[N][N]; int main() { cin >> n >> m; rep(i, 1, n) rep(j, 1, m) { mp[i][j] = read(); if (i == 1) h[i][j] = 1; else if (mp[i][j] != mp[i - 1][j]) h[i][j] = h[i - 1][j] + 1; else h[i][j] = 1; } int ans1 = 0, ans2 = 0; rep(i, 1, n) { rep(j, 1, m) { l[i][j] = j; while (l[i][j] > 1 && h[i][l[i][j] - 1] >= h[i][j] && mp[i][l[i][j]] != mp[i][l[i][j] - 1]) l[i][j] = l[i][l[i][j] - 1]; } drp(j, m, 1) { r[i][j] = j; while (r[i][j] < m && h[i][r[i][j] + 1] >= h[i][j] && mp[i][r[i][j]] != mp[i][r[i][j] + 1]) r[i][j] = r[i][r[i][j] + 1]; } rep(j, 1, m) { int t = r[i][j] - l[i][j] + 1; ans2 = max(ans2, t * h[i][j]), t = min(t, h[i][j]), ans1 = max(ans1, t * t); } } write(ans1), puts(""), write(ans2); return 0; } ```
by 已注销%Jm9VScx @ 2018-09-27 13:19:22


原来你的逻辑是提交过了就是A了啊。。。好像没有什么毛病。。。那就不要调了吧 = =+
by Mr_Spade @ 2018-09-27 13:25:46


最后吐槽一句。。puts("2\n0\n2\n1\n3"),他给的样例输入我本机输出答案是对的啊。。。为什么交上来WA了呢。。
by kitakami @ 2018-09-27 13:57:27


@[AK_583](/space/show?uid=46749) 这对话好熟悉啊……但我想不起来了……莫非是在van梗?
by 一扶苏一 @ 2018-09-27 14:00:48


@[萝莉大法好](/space/show?uid=56251) 数据范围的话数组大小我试过用50000,变量我能想到的只有long int也不行所以上面程序才用的int和b[N][N]; 我整个程序虽然现在无法WA但逻辑肯定有错,我诚心诚意地发问了,你不说也就算了,用个puts吐槽我又是要作甚?
by misinclair @ 2018-09-27 14:01:30


明明是你在敷衍我们好不好。。你不把你改到认为没有问题的代码发上来,倒是发个数组大小只有50的,那我一眼看去觉得这种错误都检查不出来简直就是在玩我们这些可能会帮你改的人,换了别人都懒得理你。。再者标题说“本机AC”,本机AC啊,计算不是下载了数据并且全部通过好歹也是和标准程序对拍过的程序吧,你仅仅通过样例就这么说更让我不爽了。 不过既然我都入坑了,就给你组数据吧,你自己看看哪里错了 1 2000 2000 1 1999 2001 输出应该是maybe,你RE了。
by kitakami @ 2018-09-27 14:09:28


LS 鄙视 @[萝莉大法好](/space/show?uid=56251) 神犇掉rp…… 建议去学单调栈或dp再来捉此题~
by Sino_E @ 2018-09-27 14:10:22


我有一个特别好的毒舌句来吐槽LZ,可惜这里空间太小了我写不下
by Makise_Kurisu @ 2018-09-27 14:13:47


| 下一页