该文被密码保护。 阅读全文
摘要:
快速读入 namespace zdy{ #define ll int #define pob (fwrite(fob::b,sizeof(char),fob::f-fob::b,stdout),fob::f=fob::b,0) #define pc(x) (*(fob::f++)=(x),(fob: 阅读全文
摘要:
这些题目通常比赛中很少见。(有的还很常见,但想法很独特)但是特别有趣。收录于此。 阅读全文
摘要:
这场D还是很有趣的,值得探讨。 首先a|x,b|x是两个数,不相同时不太好做,所以我们能否找到一个x,满足a|x=b|x并且都是d的倍数呢? 然后我们让d特殊一些——我们先解决d是奇数的问题。 只要x包含a,b中所有为1的位,并且是d的倍数就可以了,也就是$x 阅读全文
摘要:
E 一道比较基础的题。 首先就是纵向,走无障碍的格子,无法四联通和横向,走有障碍的格子,八联通是等价的。 也就是,如果我们要让其不存在非法路径,那么应该存在一个从第一列出发,一路都是#的八联通路径,并且根据题意,仙人掌不能上下左右相邻,那么就是右上、右下、左上、左下的四个方向的路径。 那么我们可以在 阅读全文
摘要:
好久没写题解了,现在写一篇。 首先我们可以想到一个O(n2)DP——f(S,i,0/1)表示当前我们考虑字符串集合为S,最后一个字符串为i,是正着还是反着放的。(这类“正反”是相较于第一个字符串而言) 转移时,枚举下一个字符串,减去和i相交的部分长度即可,最后统计答案时,由于是 阅读全文
摘要:
公式: YMD分别是年月日。 C是世纪数减一,如果是公元后,则就是Y的前两位。W为是星期几。 W=[C/4]−2C+Y+[Y/4]+[13∗(M+1)/5]+D−1 []是下取整。 https://www.zhihu.com/question/5199 阅读全文
摘要:
一道很好的题目,运用了很多不同的技巧。 结论1:枚举变换次数k,若Ai对答案有贡献,当且仅当C_{n-i+k-1}^{k-1}\equiv 1 \mod 2。 首先我们可以统计A_{p}对答案进行了多少次异或,这个可以使用DP计算:dp(i,j)为进行k次变换,第j 阅读全文
摘要:
y1s1,G和Ex在推等比数列式子上是相似的。 G 前置知识:BSGS(其实就是根号讨论) 首先我们展开这个递归式: X_{i}\equiv A^{i} S+\sum_{j=0}^{i-1} A^j B \mod P 感觉第一项有些难搞,故我们设F_{i},为: $$ F_{i}\e 阅读全文
摘要:
例题 https://atcoder.jp/contests/practice2/tasks/practice2_c 在O(\log (n+m+k+b))的时间复杂度求: \sum_{i=0}^{n-1} \lfloor{\frac{ki+b}{m}}\rfloor 其中$n,m,k 阅读全文
摘要:
1.std::abs和abs是不同的东西,还有abs在cstdlib中是long,long long,__int128的实现,而在cmath中是float,double,long double的实现,所以建议手写abs。 2.c++负数上下取整和正数不一样。 阅读全文
摘要:
前置知识: 行列式的定义 代数余子式 伴随矩阵 行列式、伴随矩阵和矩阵逆的关系:A^{-1} = \frac{A*}{|A|}。 一、转成行列式表达 设A_{i,j}表示第i个数能否填成j。 那么合法的排列数是$E(A)=\sum_{permutation; :; P} \prod_ 阅读全文
摘要:
有诗意的名字,但这码量也太大了吧。 第一个想法就是我们可以对上下、左右建立两个DAG。从i连向j表示在删掉j前,你要把i删掉才行。 直接建图是O(n^2)的,肯定过不了。 这里我们就要使用扫描线:比如对于上下方向,我们用一条x=i的垂直直线,从左往右扫。当我们加入一个线段$i 阅读全文