题意:给定数N(1<=N<=1e9),k(1<=k<=1e9),求对N的任意两位数交换至多k次能得到的最小与最大的数,每一次交换之后不能出现前导零. 因为N最多只有10位,且给了2500ms,当时觉得可以枚举全排列,再判断前导零和最少交换次数. 最少交换次数是(每个循环节中的个数-1)之和. 当时想的是全排列N的每位数,但是这样会出现一个问题:N中可能出现相同的数,这样求循环节中元素个数就会很困难.‘ 其实应该对下标进行全排列,因为下标是不可能相同的,这样就可以O(len) 地计算…
2018 Multi-University Training Contest 5 6351.Beautiful Now 题意就是交换任意两个数字,问你交换k次之后的最小值和最大值. 官方题解: 哇塞,C++竟然自带全排列的函数,头文件为#include<algorithm> 全排列 next_permutation() 函数.随便传送两篇博客: 1.[算法]——全排列(Permutation)以及next_permutation 2.next_permutation 代码: //1002-63…
Beautiful Now HDU - 6351 Anton has a positive integer n, however, it quite looks like a mess, so he wants to make it beautiful after k swaps of digits. Let the decimal representation of n as (x1x2⋯xm)10 satisfying that 1≤x1≤9, 0≤xi≤9 (2≤i≤m), which m…
Redraw Beautiful Drawings Time Limit: 3000/1500 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Problem Description Alice and Bob are playing together. Alice is crazy about art and she has visited many museums around the world. She has…
思路来自 某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…