悬赏 5 元求助!

P2730 [USACO3.2] 魔板 Magic Squares

STL的 set 常数太大了,可以用动态开点权值线段树。
by Acoipp @ 2023-01-22 21:48:23


@[dlsk_po](/user/674469) 太强了,我不会动态开点权值线段树,还是看看康托展开怎么用吧![](//图.tk/7)
by oddy @ 2023-01-22 21:51:02


@[oddy](/user/470348) 您的cantor展开写错了,应为: ``` int cantor(char *__s) { int r = 0; for(int i = 0, t; i < 8; i++) { t = 0; for(int j = i + 1; j < 8; j++) if(__s[i] > __s[j]) t++; r += t * fac[7-i]; } return r; } ``` 如此可过。
by Rain_Lyric @ 2023-01-22 21:51:16


fac 数组写反了。
by Acoipp @ 2023-01-22 21:52:36


@[Lyrically](/user/593300) 同时您的队列还要开大一点,开到 10^6 左右
by Rain_Lyric @ 2023-01-22 21:54:00


其实第一份代码能过。 因为你的set只涉及insert和count,完全可以用unordered_map代替,这样能快很多。
by rsrsr @ 2023-01-22 21:55:57


@[Lyrically](/user/593300) 确实可以通过,但是 USACO 的 OJ 上只给大概 16 MB 的运行内存,有没有办法把内存使用量压到这个范围以内?
by oddy @ 2023-01-22 21:58:39


@[oddy](/user/470348) 可以不用手写队列吧,试下呗
by Rain_Lyric @ 2023-01-22 21:59:47


@[oddy](/user/470348) 第一份代码改unordered_map能15.53MB
by rsrsr @ 2023-01-22 22:00:15


字符串完全可以用一个8位数替代,这样应该能减内存和时间
by rsrsr @ 2023-01-22 22:04:26


| 下一页