师大 2023.04 总结
题目1:P1001
1A
第 1 次提交
-
提交通过。
-
每次减去 \(\max(n - n / 2, x)\),边减边计数。
题目2:P1002
1A
第 1 次提交
-
提交通过。
-
\(cnt\) 表示字符串有 \(cnt\) 对对应的字符不同。对于每组询问,因为只改变一个字符,看改变字符改变前和改变后和对应字符的关系(相同或不同),以改变 \(cnt\) 的值。操作后如果 \(cnt = 0\),输出 \(Yes\),否则就是 \(No\)。
题目3:P1003
10A
第 1 ~ 2 次提交
因为写了个暴力 \(nm\) 的 \(dp\),TLE。
第 3~9 次提交
堆 \(push\) 错东西了,WA。
第 10 次提交
- 提交通过,可以发现选的卡片必须向上的是同一面,如果当前卡面 \(i\) 的 \(a_i > 0\),当选的卡片全是 \(p_i\) 时肯定选 \(i\),否则一定不选。当选的卡片全部是 \(p_i\) 时,如果 \(a_i - b_i > 0\),可能能选当前的,用堆存储下来。所以要开两个堆,从堆里选 \(m\) 个最大的出来。
题目4:P1004
1A
第 1 次提交
-
提交正确。
-
倒着作 \(dp\),令 \(dp_i\) 表示第 \(i\) 天换壁纸的方案数。
- \(dp_i = 1,i + a_i > n\),必须使用至第 \(n\) 天。
- \(dp_i = 1 + \sum\limits_{j = i + a_i}^n dp_j\),从第 \(j\) 天开始可以换,也可以不换。
-
可以发现下面的转移可以用前缀和优化。
题目5:P1005
3A
第 1~2 次提交
数据有问题,导致 WA。
第 3 次提交
- 提交通过, 模拟即可。
题目6:P1006
2A
第 1 次提交
没有考虑可能到达不了的情况,导致WA。
第 2 次提交
- 提交通过。按 \(m_i\) 从小到大排序,如果能到达且 \(k_i > m_i\),则采取矿石,否则跳过。
题目7:P1007
1A
第 1 次提交
因为每次为满足要求的最后一个答案只可能为 \(0/1\),模拟即可。
题目8:P1008
22A
第 1~6 次提交
思路错误,导致 WA。
第 7~21 次提交
少了一个退出条件,数组越界,RE。
第 22 次提交
-
提交正确
-
先做一次背包求出对于每块城墙最多能获得的经验值 \(a_i\)。再做一次区间 \(dp\),令 \(dp_{i,j}\) 表示从 \(i\) 开始长度为 \(j\) 的能获得的最大经验值。\(dp_{i,j} = \max(dp_{i + 1, j - 1} * 2 + a_i,dp_{i,j-1} * 2 + a_{i + j - 1})\)。最后求答案即可。
题目9:P1010
3A
第 1~2 次提交
比较傻的枚举 \(\sqrt n — n 的数\),结果 TLE。
第 3 次提交
第一大的因数为 \(n\),枚举 \(2 — \sqrt n\) 的数,如果 \(n \% i == 0\),答案就是 \(n/i\),退出,如果枚举了所有数都不行,输出 \(1\)。
题目10:P1011
1A
第 1 次提交
- 提交通过,枚举所有数,模拟一遍即可。
题目11:P1012
2A
第 1 次提交
和没考虑负数,RE。
第 2 次提交
- 提交通过,如果将每个 \(a_i\) 都减去 \(1\),则就是在问有多少个字段的和为 \(0\),用个桶标记每个和出现的数量即可。
题目12:P1013
1A
第 1 次提交
提交通过,广搜模板。
题目13:P1009
8A
第 1~5 次提交
思路错误,WA。
第 6~7 次提交
没有注意负数细节,没开 \(long \ long\),WA。
第 8 次提交
提交正确,二分答案 \(x\),看 \(\sum\limits_{i = 1}^n\max(0,\lceil (a_i - x) / (k - 1) \rceil)\) 是否大于 \(x\)。
题目14:P1014
31A
第 1~25 次提交
写了一个超时并错误的搜索,WA 或 RE。
第 26~29 次提交
初始条件写挂了,WA。
第 30 次提交
把 \(m\) 写成了 \(n\),WA。
第 31 次提交
区间 \(dp\),\(dp_{i,j,i',j'}\) 表示 \(S1\) 的第 \(i\) 至 \(j\) 的字符和 \(S2\) 的第 \(i'\) 至 \(j'\) 的字符能否形成回文串,一个回文串一定是在另一个回文串的两端加入一个相同的元素。所以有 4 种转移,左边选的为 \(S1_i\) 或 \(S2_i'\),右边是另两个字符。最开始初始好长度为 \(0,1\) 的回文串。
题目15:P1015
2A
第一次提交
二分的 \(r\) 初始值多了一个 \(1\),WA。
第二次提交
提交正确,先将数量 \(a_i\) 都对 \(m\) 取模,再枚举一堆糖果,要是答案最大,只有两种情况,在所有小于 \(m - a_i\) 的糖果堆中最大的,和大于等于 \(m-a_i\) 中最大的,这个分界线用二分求出即可,注意不能出现选的两堆是同一堆糖果的情况。
题目16:P1016
1A
第 1 次提交
提交通过,设 \(x\) 为当前问题编号,如果当前字符为 \(Y\),\(x = 2x\),否则 \(x = 2x + 1\)。最后输出 \(x - 2^(n - 1) + 1\) 即可。
题目17:P1017
7A
第 1 ~ 6 次提交
最后计数时写错了。
第 7 次提交
若乘积为质数,那么这个乘积一定由一个质数和若干个 \(1\) 组成,令质数数量为 \(x\),\(1\) 的数量为 \(y\) ,答案为 \(x \cdot 2^y\)。
题目18:P1018
1A
第 1 次提交
提交通过,数学智障题。
题目19:P1019
1A
第 1 次提交
求出当前点到下一个点的最短距离为它们之间的最短距离和当前点到最近传送门的距离的最小值,然后模拟一遍即可。
题目20:P1020
1A
第 1 次提交
提交通过,这道题就是均分纸牌,目的是让每个数都变成平均值。
题目21:P1021
2A
第 1 次提交
没开 \(long \ long\),WA。
第 2 次提交
提交正确,用总数方案数减去不合法的数量,令 \(cntA_x\) 为类型为 \(x\) 的问题数,\(cntB_y\) 为难度为 \(y\) 的问题
数。不合法必须从类型 \(a_i\) 中选一个,难度 \(b_i\) 中选一个,所以答案为 \(C_n^3 - \sum\limits_{i = 1} (cntA_{a_i} - 1)(cntB_{b_i} - 1)\)。
问题
-
完全正确的题会变少,会减少三分之一。
-
不一定,做不出来可以用输出调试法,写对拍。
-
没开 \(long \ long\),下标越界,除数为 \(0\)。
-
我擅长写背包,二分,循环节类的题目。应该加强区间 \(DP\),倍增。
-
不一定是第一道,不应该将很多的精力放在一个题上,先浏览一遍题目。
-
写一行检查一行,自己多造一些极端数据。