BuringStraw

BuringStraw

1024程序员日考试总结

1024 程序员日考试总结#

大过节的,考什么试啊

今天的题在洛谷上都能找到,所以就不放题面了。。

数学题(math 1S 128M)#

P3123 贝茜说哞 Bessie Goes Moo

提交的时候电子教室卡死,拿 u 盘拷上去math.cpp又变成了乱码。。。虽然只写了 30 分

首先,这道题直接枚举的复杂度是 $500^7$,是过不了的。

而因为余数可加、可乘的性质,所以只要统计除以 7 的余数的情况就行了,复杂度 $7^7$,跑得飞快

(洛谷 提高+/省选-的难度是认真的吗)

套了 7 个 for 的代码我都不好意思放上来。。。

回文路径(path 1S 128M)#

P3126 回文的路径 Palindromic Paths

打了个 dfs,荣获 8 分

正解是 dp,从左上角和右下角同时开始走,如果当前两个格子相同,状态就能转移。

i表示走了几步,j表示左上角出发的走到了第几行,i表示从右下角出发的走到了第几行

第几列可以通过ijk来计算。

f[i][j][k]=f[i - 1][j - 1][k] + f[i - 1][j][k + 1] + f[i - 1][j][k] + f[i - 1][j - 1][ k - 1]

但是,$500^3$ 的数据规模只有在 512M 以上的内存限制下才不会超(亲测),所以要压位。

因为新的状态只与i - 1,j,k,j - 1,k + 1有关,所以压掉ij倒序枚举,k顺序枚举。

注意j,k的起点与步数的关系。

大都市 (city 1S 128M)#

P3459 MEG-Megalopolis

这道题用沙拉查词带的 Google 翻译翻出来是真的魔性
hbh 大佬说这是dfs序的模板题,学习了一下发现还真是。

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。