2019hdu多校 Minimal Power of Prime】的更多相关文章

题目 将 $n$($1 < n \leq 10^{18}$)质因数分解,求质因数幂的最小值. 分析 直接质因数分解,不太行. 可以这样想,对小区间质因数分解,n变小了,再枚举答案. 打印1-10000之间的素数表然后质因数分解,分解完剩下的那个数, 两种质数(肯定大于 $10^4$)相乘,最多二次,合起来也是一个平方数: 三种或以上质数相乘,只可能为一次,不用考虑. 一种质数,最多为四次方,枚举四.三.二次方,如果都不是,就是单个质数 要注意:先看是4次方再看2次方(因为如果满足4次方一定满足2…
题目链接:Click here 题目大意:求一个数分解质因数后的最小幂指数 Solution: 首先,我们肯定是不能直接暴力求解的 我们先考虑筛出1e4范围以内的所有质数,把x所有这个范围内的质因子筛掉 那么现在它的数值范围就变成了1e14了,考虑此时他还存在没有被筛掉的质因子的情况 因为我们已经筛掉了1e4以内的质数,所以此时它的质因子的大小是大于1e4的,那么它的指数大小最大为4 我们可以直接对此时的x开根来判断指数是否为2.4,对于指数为3的情况我们则二分判断,若都不满足,则他为质数 Co…
Minimal Power of Prime 题目传送门 解题思路 先打\(N^\frac{1}{5}\)内的素数表,对于每一个n,先分解\(N^\frac{1}{5}\)范围内的素数,分解完后n变为m,如果m等于1,那么答案就是\(N^\frac{1}{5}\)内分解的素数里的最小数量k.否则,继续分解,此时用来分解的质数都是大于\(N^\frac{1}{5}\)的,所以最多有4个质数相乘,所以只有三种情况:\(P^4\),\(P^3\),\(P^2\),\(P^2*Q^2\),以及答案为1的…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6623 题目大意为求一个数的唯一分解的最小幂次.即120=23*31*51则答案为1. 因为数字太大不能直接分解,所以可以先分解1e4内的素因子,这样所有幂次可能>=5的数都被分解了,然后判断剩余的数是否是一个数的4次方如果是的话ans=min(ans,4), 如果不是的话再判断是不是一个数的3次方,如果是的话ans=min(ans,3). 如果不是的话就判断是不是一个数的平方,如果是ans=min(…
Time limit 1000 ms Memory limit 65536 kB OS Windows 中文题意 给一个数n,设将n质因数分解后可以得到 \[n=\prod_{i=1}^{\omega(n)} a_i^{p_i}\] 其中\(\omega(n)\)意思是n的不同质因子个数,\(a_i\)是n的质因子. 要求输出最小的\(p_i\). 题解 看完题解感觉很妙啊-- Let's first factorize \(N\) using prime numbers not larger…
传送门 •题意 给你一个大于 1 的正整数 n: 它可以分解成不同的质因子的幂的乘积的形式,问这些质因子的幂中,最小的幂是多少. •题解 定义 $ans$ 表示最终答案: ①如果 $ans \ge 5$: 那么,肯定有 $n=p^{ans}\ ,\ p \le \sqrt[{ans}]{n}$,也就是说 $\ p \le 10^{\frac{18}{5}}$: 所以,我们可以提前预处理出 $[1,10000]$ 内的素数,筛出 $n$ 中属于 $[1,10000]$ 内的质因子: 如果在这个过程…
传送门 •题意 给你一个大于 1 的正整数 n: 它可以分解成不同的质因子的幂的乘积的形式,问这些质因子的幂中,最小的幂是多少. •题解 把[1,10000]内的素数筛出来,然后对于每个素$P$数遍历找$P_{k}$的$k$,用$ans$来维护最小的$k$ 对于大于10000的素数,$(10^{4})^{4}<10^{18}<(10^{4})^{5}$,所以最大是4次方 先看4次方: 若$x^{4}==n$,则$x$一定是素数,为什么是素数? 根据欧拉定理,一个数可以分成若干个素数乘积的形式.…
题意: 已知任意大于\(1\)的整数\(a = p_1^{q_1}p_2^{q_2} \cdots p_k^{q_k}\),现给出\(a \in [2,1e18]\),求\(min\{q_i\},q \in [1, k]\).即求质因数分解后,最小指数是多少. 思路: 因为\(a \in [2,1e18]\),所以我们现打一个\(1e4\)以内的质数表,然后直接求出\(1e4\)以内的情况. 上面弄完了,那么现在最多只有\(4\)个质因子,情况如下: \(n = p^4\),这种情况就是\(4\…
http://acm.hdu.edu.cn/showproblem.php?pid=6623 题意,给50000个1e18级别的数N,求它质因数分解里面的最小的指数(不算0) 比赛的时候给划了一个1e6以内的暴力判断,判断失效之后开平方根看看是不是质数平方,是则2不是则1.这个是题解的最后一步. 可惜没办法沿着这个思路走,就开始自闭了. 其实先暴力判断掉N的1/5次方内的质因数的指数,假如是1则直接退出了,否则要么不出现要么出现至少是2,记录剩余的数字为M.显然M是与N同级别的. 由于暴力掉了N…
题意:给定大整数n,求其质因数分解的最小质数幂 n<=1e18 思路:常规分解算法肯定不行 考虑答案大于1的情况只有3种:质数的完全平方,质数的完全立方,以及p^2*q^3,p,q>=1三种形式 前两种可以暴力判 第三种必定有一个小于10^(18/5)的因子,大概是3800 迭代分解,用vector存一下具体的情况 #include<bits/stdc++.h> using namespace std; typedef long long ll; typedef unsigned…
题目链接 题意:输入n,求所有质因子幂的最小值.n奇大无比. 思路:先对n所有n开五次方根的质因子约完,然后如果没有除尽的话,因子最多也就4个了,所以幂数大于1的情况有p1^4,p1^3, p1^2  对于其他情况肯定有幂为1的. 然后注意一下精度问题. #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #include<cmath> #define…
题面 T ≤ 50   000 T\leq50\,000 T≤50000 组数据: 输入一个数 N N N ( 2 ≤ N ≤ 1 0 18 2\leq N\leq 10^{18} 2≤N≤1018),输出一个数,表示 N N N 质因数分解后,每个质因数的幂的最小值. 题解 妙妙题! 一种神奇的做法: 我们把 N 5 < 3   982 \sqrt[5]{N}<3\,982 5N ​<3982 以内的质数都筛出来,以便把 N N N 的 ≤ N 5 \leq\sqrt[5]{N} ≤5…
1001.AND Minimum Spanning Tree 传送门:HDU6614 题意:给你一个又n个点的完全图,点编号从1~n,每条边的权值为被连接的两点编号按位与后的值.现在要你找到最小生成树,输出这个最小生成树的值 和 从2~n每个点相连的点(要求字典序最小). 题解:因为是进行二进制操作,我们把数写成二进制形式可以发现,对于一个数x我们找到其从最低位开始第一个0位i,&上只有这一位是1其他位为0的数时与的结果为0.显然,只有n为2的次方-1时最小生成树的值为1,其他情况下每个点都能找…
HDU6578 2019HDU多校训练赛第一场 1001 (dp) 传送门:http://acm.hdu.edu.cn/showproblem.php?pid=6578 题意: 你有n个空需要去填,有m个限制,每次限制要求在区间[l,r]内不同的点的个数是为x个,问你填完这n个空的并且满足限制的方案数 题解: 定义\(dp[i][j][k][t]\)表示在区间填完前t个位置后,{0,1,2,3}这四个数字最后一次出现的位置为i,j,k,t的方案数 滚动数组优化掉第一维后,我们转移如下 dp[p]…
HDU6579 2019HDU多校训练赛第一场1002 (线性基) 传送门:http://acm.hdu.edu.cn/showproblem.php?pid=6579 题意: 两种操作 1.在序列末尾添加一个数 2.查询区间异或最大值 强制在线 题解: 暴力的做法可以用数据结构维护区间线性基,但肯定过不了. 贪心地维护序列的前缀线性基 (上三角形态),对于每个线性基,将出现位置靠右的数 字尽可能地放在高位,也就是说在插入新数字的时候,要同时记录对应位置上数字的出现位 置,并且在找到可以插入的位…
2019HDU多校第一场1001 BLANK (DP) 题意:构造一个长度为n(n<=10)的序列,其中的值域为{0,1,2,3}存在m个限制条件,表示为 l r x意义为[L,R]区间里最多能有x个不同的数字,计算序列构造方案数 思路 1.首先考虑最暴力的做法,直接dfs暴力构造,碰到区间的右端点就开始判断当前构造是否满足,如果不满足就回溯,很显然,复杂度爆炸O(4^n) 2.考虑怎么优化暴力算法,从(n<=100)不难猜出这是一个dp,考虑这种字符串构造形式的dp,肯定是一位一位有序构造,…
Problem Description Farmer John keeps a website called 'FansBlog' .Everyday , there are many people visited this blog.One day, he find the visits has reached P , which is a prime number.He thinks it is a interesting fact.And he remembers that the vis…
题意:有一个n * n的网格,每个网格中间有一颗树,你知道每棵树的高,你可以选择一个矩形区域把里面的树都围起来,但是矩形区域里面任意两棵树的高度差的绝对值不超过m,问这个矩形的最大面积是多少? 思路:前两天的牛客多校有一个最大子矩形问题,当时用的扫描线 + 单调栈过的,结果场上想了半天灭结果QAQ.这个题有限制条件就不好那么做.注意到题目中的信息,可以用O(n ^ 3)的算法做,如果我们枚举矩阵的左上角和右下角是O(n ^ 4),而且没什么优化手段,不行.但是我们转化一下思路,我们枚举矩形的上边…
\[ 求\sum_{i=1}^{n}(\sqrt[3]i,i)\\ 首先转化一下这个式子,考虑对于i\in[j^3,(j+1)^3-1],\sqrt[3]i=j\\ 所以可以枚举所有j,然后对i\in[j^3,(j+1)^3-1]区间的(i,j)求和即可 那么我们把n分成两部分,分别求和:\\ \sum_{i=1}^{n}(\sqrt[3]i,i)=\sum_{i={\lfloor \sqrt[3]n\rfloor}^3}^{n}(\sqrt[3]n,n) +\sum_{j=1}^{\sqrt[…
这个题本来有希望在比赛里面出了的 当时也想着用递推 因为后面的数明显是由前面的推过来的 但是在计算的时候 因为判重的问题 ...很无语.我打算用一个tot[i]来存i的总种树,tot[i]+=tot[j]//j为可以由j推到i的一系列数,但这样是不对的,会产生大量重复计算... 看了下标程才发现要用二维来计算出种类总数,f[i][j]+=sum(f[i-j][k]) 表示在推i数的时候,第一个素数为j的种类数,注意j一定为素数,而且k不能大于j...标程里面处理的比较简练,就学了下他的写法. 至…
题意 设 $$g_m(n)=\begin{cases}& g_m(i) = 0,     \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 0 \leq i \leq m\\& g_m(i) = i-1 + \frac{1}{i}\sum _{j=1}^i(g_m(j) + g_m(i-j)), \ \  i > m\\\end{cases}$$ 现给出 $n…
题意 假设现在你在准备考试,明天的考试有 $n$ 道题目,对于分值为 $i$ 的题目至少复习 $i+1$ 小时才能做对,已知总分为$m$,求确保完成 $k$ 道题的最少时间. 分析 手动尝试一下,发现答案都是 $aabbbb$ 这样的形式.例如, $5 \ 18 \ 3 \Rightarrow 6 \ 6 \ 7 \ 7 \ 7,$ $5 \ 19 \ 3 \Rightarrow 6 \ 7 \ 7 \ 7 \ 7,$ $5 \ 20 \ 3 \Rightarrow 7 \ 7 \ 7 \ 7…
题意 给定一个 n 个元素的数列,从前 k 个元素中取5次不下降子序列,求取得的和的最大值(k从1至n) 分析 考虑将数字 a[i] 拆成 a[i] 个 a[i],比如 “4,1,2”→“4,4,4,4,1,2,2”,则问题转化为:找到最多 5 个不共享元素的不下降子序列,使得这些子序列包含的元素总量最多.可以证明,这等于杨氏图表前 5 层的长度之和.(手动模拟一下就能发现) 考虑杨氏图表求解答案的过程: 从 1 到 n 依次考虑序列中的每个数,将其插入杨氏图表的第一层中. 插入 x 时,如果…
题意 设 $f(n, m)$ 为大于 $n$ 且与 $n$ 互质的数中第 $m$ 小的数,求满足 $(f(n, m) - n) \oplus n = k$ 的最小正整数 $n$ 分析 因为 $m \leq  100$,很容易感觉到 $f(n, m) - n$ 是一个比较小的数,打表发现最多就300多.所以只对 $n$ 的低位有影响.而 $n$ 本身应该是与 $k$ 比较接近的数. 乱写一下,就AC了. #include<bits/stdc++.h> using namespace std; t…
题目 设 $ab^{-1} = x(mod \ p)$,给出 $x,p$,要求最小的 $b$,其中 $0< a < b, \ 1 < x<p,\ 3 \leq x\leq {10}^{15}$. 分析 比赛中,首先就想用扩展欧几里得解出一个可行 $b$,然后枚举 $kb \% p$ 的最小值,然后发现复杂度爆炸. 看题解,用了一种非常巧妙地方法, $\because 0 < a=bx-pt < b$ $\therefore \frac{p}{x} < \frac{…
题目 给出一个 $n$ 个顶点 $m$ 条边的图,要求阻塞一些边,使得从 $1$ 到 $n$ 的最短路变长,求阻塞的边长度和的最小值,不必保证阻塞后可达. 分析 很显然,要阻塞的边肯定在最短路图上,先跑一遍单源最短路,求出最短路图. 要使最短路变长,肯定要同时切断原有的所有最短路,又要是长度(相当于流量)和最小,很容易想到就是求最小割. 简而言之,就是在最短路图上求最小割. 两个模板拼起来就好了(难得写抄这么长的能一遍AC) #include<bits/stdc++.h> using name…
题意 给定 $n$ 个数,接下来有 $q$ 次询问,每个询问的 $l, r, p, k$ 要异或上一次的答案,才是真正的值(也就是强制在线).每次询问,输出 $[l, r]$ 内第 $k$ 小的 $|p-a[i]|$. 分析 通常主席树用来求区间第K大,其实它的实际作用是统计某个区间内值的个数.所以, 对于每次询问,对答案进行二分,对于可能的答案 $x$,对 $R_l \sim  R_r$ 的线段树查找 $[p-x, p+x]$ 的是否为 $k$. 主席树中在值上建立的,这题数据范围为 $10^…
理论基础 轮换与对换 概念:把 $S$ 中的元素 $i_1$ 变成 $i_2$,$i_2$ 变成 $i_3$ ... $i_k$ 又变成 $i_1$,并使 $S$ 中的其余元素保持不变的置换称为循环,又称轮换,记为 $(i_1, i_2,...,i_k)$,$k$ 称为循环长度,特别地,循环长度为2的循环称为对换. 定理: (1)任一置换可表示成若干个无公共元素的循环之积 (2)任一置换可表示成若干个对换之积,且对换个数的奇偶性不变. 八数码中的置换 若一个置换可以分解成奇数个对换之积称为奇置换…
题意 给定一个整数 $P$($10^9 \leq p\leq 1^{14}$),设其前一个质数为 $Q$,求 $Q!  \ \% P$. 分析 暴力...说不定好的板子能过. 根据威尔逊定理,如果 $p$ 为质数,则有 $(p-1)! \equiv p-1(mod \ p)$. $\displaystyle Q! = \frac{(P-1)!}{(Q+1)(Q+2)...(p-1)} \equiv  (p-1)*inv\ (mod \ P)$. 根据素数定理,$\displaystyle \pi…
题意 给定一个 $n$ 个整数的数列,从中至多选取 $k$ 个上升子序列(一个元素最多被选一次),使得选取的元素和最大. 分析 考虑这个问题和经典网络流问题“最长不下降子序列”相似,我们考虑对这个建图并用网络流解决.因为求得费用和,则使用费用流做法. 具体建图见代码,主要考虑拆点和建立超级源点和超级汇点. (然后SPFA版的会超时,换成Dijkstra版的 #include<bits/stdc++.h> using namespace std; #define il inline typede…