思路   如果进制为p    那么当x<p时 (p-1)*(p-x)=(p-(x+1))  *p +x     因为x<p  所以没有进位  所以高位上的数字为    p-(x+1). 根据上面所述. 只要我们能找出 p-1   那么我们根据(p-1)*(p-1)的高位为p-2 就能找出p-2 .找出p-2根据  (p-1)*(p-2)的高位为(p-3) 就能找出p-3.....任务就转化成找出p-1. 我们会发现 从0-(p-2)  都会出现在高位.唯有p-1不会出现.那么就知道要出高位没出…
链接:http://acm.hdu.edu.cn/showproblem.php?pid=4951 题意:给一个P进制的乘法表.行和列分别代表0~p-1,第i行第j*2+1和第j*2+2列代表的是第i行的数x和第j列的数的乘积.只是这个乘法表被人弄乱了,原来的0~p-1被映射到了一个新的0~p-1的permutation(曾经在CF上看见的permutation表示1~P.所以稍有迷茫),分别代表了新的不同的数.乘法表上的数也都被映射了.如今要找出映射到了什么新的数. 思路:毫无疑问.出现最多的…
思路来自 某FXXL 不过复杂度咋算的.. /* HDU 6091 - Rikka with Match [ 树形DP ] | 2017 Multi-University Training Contest 5 题意: 给出N个点的树,求去边的方案数使得 去边后最大匹配数是M的倍数 限制: N<=5e4, M<=200 分析: 设 DP[u][i][0] 表示 以点 u 为根的子树 最大匹配数模 m 为 i 时,且 u 点没有匹配的方案数 DP[u][i][1] 表示 以点 u 为根的子树 最大…
思路来自这里 - - /* HDU 6125 - Free from square [ 分组,状压,DP ] | 2017 Multi-University Training Contest 7 题意: 不超过N的数字中选K个,其乘积不是平方数的倍数 限制 N,K <= 500 分析: 小于根号N的质因子至多只有8个,而大于根号N的质因子任意两个乘积大于N 所以N以内的完全平方数只有两种 1. 没有大于根号N的质因子 2. 有且只有1个大于根号N的质因子 对于小于根号N的质因子,可以直接按集合状…
比赛时脑子一直想着按位卷积... 按题解的思路: /* HDU 6129 - Just do it [ 规律,组合数 ] | 2017 Multi-University Training Contest 7 题意: 给定数组 a[N],一次操作为 a[N] 求前缀异或和,问 M 次操作后的数组 限制 M <= 1e9, N <= 2e5 分析: 设 dp[i][j] 为 a[i] 经 j 次操作后的序列 易得递推式 dp[i][j] = dp[i-1][j] ^ dp[i][j-1] 进一步可…
思路和任意模数FFT模板都来自 这里 看了一晚上那篇<再探快速傅里叶变换>还是懵得不行,可能水平还没到- - 只能先存个模板了,这题单模数NTT跑了5.9s,没敢写三模数NTT,可能姿势太差了... 具体推导大概这样就可以了: /* HDU 6088 - Rikka with Rock-paper-scissors [ 任意模数FFT,数论 ] | 2017 Multi-University Training Contest 5 题意: 计算 3^n * ∑ [0<=i+j<=n]…
JAVA+大数搞了一遍- - 不是很麻烦- - /* HDU 6093 - Rikka with Number [ 进制转换,康托展开,大数 ] | 2017 Multi-University Training Contest 5 题意: 求L,R之间的好数的个数,好数要求在某个d(>=2)进制下数位是0到d-1的 分析: d 进制下好数的个数为 d!-(d-1)! ,且满足 d^(d-1) <= K <= d^d 可知 若 N > d^d 则 1-N 包含前 d-1 个进制的所有…
看了标程的压位,才知道压位也能很容易写- - /* HDU 6085 - Rikka with Candies [ 压位 ] | 2017 Multi-University Training Contest 5 题意: 给定 A[N], B[N], Q 个 k 对于每个k, 求 A[i] % B[j] == k 的 (i,j)对数 限制 N, Q <=50000 分析: 对于每个 B[i] 按其倍数分块,则对于 A[j] ∈ [x*B[i],(x+1)*B[i]) , A[j]%B[i] = A…
/* HDU 6057 - Kanade's convolution [ FWT ] | 2017 Multi-University Training Contest 3 题意: 给定两个序列 A[0...2^m-1], B[0...2^m-1] 求 C[0...2^m-1] ,满足: C[k] = ∑[i&j==k] A[i^j] * B[i|j] m <= 19 分析: 看C[k]的形式与集合卷积的形式接近,故转化式子时主要向普通的集合卷积式方向靠 与三种位运算都相关的结论是 : i^j…
每次NTT都忘记初始化,真的是写一个小时,Debug两个小时- - /* HDU 6061 - RXD and functions [ NTT ] | 2017 Multi-University Training Contest 3 题意: 给定多项式 F(x) = ∑[0<=i<=n] f(i)*x^i 求多项式 G(x) = F(x-a) n <= 1e5 分析: 设 G(x) = ∑ g(i)*x^i 将 F(x-a) 按二项式定理展开后易得: g(x) = ∑[x<=y&l…