2021.10.05PM
预期 | 实际 | |
---|---|---|
A | 100 | 100 |
B | 0 | 0 |
C | 10 | 0 |
S | 110 | 100 |
数学自信爆零人
A [HNOI2011] 数学作业 \(\blacktriangle\!\blacktriangledown\)
- 属于是非常离谱一道题。
- 从数据范围看出两点:要开unsigned long long,要 \(O(\log n)\) 的算法。
- 而每个数之间是有一定递推关系的。对于K位数的情况(一位数,两位数···),显然有 \(A_{i+1}=A_i*10^{k}+i+1\),而联想到对时间的要求那就得用矩阵乘法快速幂了。从递推关系式能找到初始矩阵:
- 再通过矩阵乘法性质,能得到转移方程。
- 这道题最离谱的地方就是这个 k,我们对于不同的位数要用不同的转移矩阵,得到一个总的转移矩阵(总转移矩阵要放在乘号右边)。
- 由由于初始矩阵矩阵前两项都是0,所以输出答案只需要输出总转移举证第一列第三行的数即可。记得取模。
B [HNOI2011]勾股定理 \(\blacktriangle\!\blacktriangledown\!\blacktriangle\)
- 昨天的 \(a*b \mod 12=0 和 a*b*c \mod 50 = 0\) 用通式分类讨论 \(m,n\) 的取值情况就容易得出。
- 通式推导过程:
-
由于要求互质,那首先有$ \gcd(m,n)=0 $,其次有 \(n,m\) 奇偶性不同(如果奇偶相同,则 \(m^2-n^2\) 为偶数,显然不互质)
-
判断是否有互质的勾股数,枚举m和n,找到 \(1000000\) 以内的互质勾股数,出现矛盾关系就建边。找互质勾股数时间复杂度不会太高,大概是\(O(n\log n)\)。
-
接下来就是跑\(树形DP\) 吗?
-
并不见得,因为可能会有环,并且可能有环共用同一个点。(不可能是同一条边,因为不存在两个直角三角形两直角边相同而斜边不同),所以这是棵仙人掌,并且由于图会是很多个连通块,所以其实是沙漠图····。
-
而这显然是个NP问题,只能猜测数据比较良心····
-
仙人掌DP也没有什么办法,只能找到环后拆开强行设两端的状态进行DFS,连通块内所有矛盾点设完状态确认未出现矛盾两端同时选上后树形DP。
-
转移方程(1代表选,0代表不选):
\[dp[fa][0]=\prod dp[son_i][0]+dp[son_i][1]\\ dp[fa][1]=2^{v[fa]-1}\prod dp[son_i][0]\\ 若fa被强制设了状态\\ sit[0]\to dp[fa][0]=1,dp[fa][1]=0\\ sit[1]\to dp[fa][0]=0,dp[fa][1]=2^{v[fa]-1} \] -
对于每个连通块内不同DFS的情况答案进行累加。(对象没变,状态变了),对于不同连通块进行累乘。(不同对象)最后要除去全不选的情况。
C XOR和路径 \(\blacktriangle\!\blacktriangledown\!\blacktriangle\)
- 这次考试离谱在后面两道题都对主要算法进行了隐藏。B看着像数学,实际上主体是树形DP;再像这道看着像数学,实际上主体是数学·····
- 由于我太蒟了,期望题做到只能摆烂,特别是这种自己可以到自己的,更是懵得一批,然而对于这种非常难处理的题,可以设立方程组解方程。
- 由于期望的是异或和,那我们可以把它每一个二进制位分别拆开分别算。
- 那我们便可以得到这样一个方程(f[x] 表示x的第 k 位为1的概率:
- 像这样的式子有n个,而有n个元,显然肯定有解。
D 总结
- 这次考试其实不应该只拿第一道的分,后面两道只打暴力。而且没有认真读题也是一个大问题,导致 B 建模失败呜呜呜·····
\(\cal {Made} \ {by} \ {YuGe}\)