随笔分类 - 数学--------------------------
摘要:【题目】 " 6392. 「THUPC2018」密码学第三次小作业 / Rsa" 【题意】T次询问,给定正整数c1,c2,e1,e2,N,求正整数m满足: $c_1=m^{e_1} \ \ mod \ \ N$ $c_2=m^{e_2} \ \ mod \ \ N$ 保证$c_1,c_2,e_1,e
阅读全文
摘要:【题目】 " 6395. 「THUPC2018」城市地铁规划 / City" 【题意】给定n个点要求构造一棵树,每个点的价值是一个关于点度的k次多项式,系数均为给定的$a_0,...a_k$,求最大价值。$n \leq 3000,k \leq 10$。 【算法】背包DP+Prufer序 首先每个点度
阅读全文
摘要:【题目】 "BZOJ 2111" 【题意】求有多少1~n的排列,满足$A_i A_{\frac{i}{2}}$,输出对p取模的结果。$n \leq 10^6,p \leq 10^9$,p是素数。 【算法】计数DP+排列组合+lucas 【题解】令i的父亲为i/2,转化为要求给一棵n个点的完全二叉树编
阅读全文
摘要:【题意】给定n个点m条边的无向连通图,每条边有非负边权wi,求从1到n的路径,使得路径上的边权异或和最大。n,m include define int long long using namespace std; const int maxn=100010; int n,m,d[maxn],firs
阅读全文
摘要:【题意】给定k<=123,a,n,d<=10^9,求: $$f(n)=\sum_{i=0}^{n}\sum_{j=1}^{a+id}\sum_{x=1}^{j}x^k$$ 【算法】拉格朗日插值 【题解】参考:拉格朗日插值法及应用 by DZYO 虽然式子很复杂,但一点一点化简有条理的化简后就可以做了
阅读全文
摘要:【题意】求n个点的带标号无向连通图个数 mod 1004535809。n<=130000。 【算法】动态规划+多项式求逆 【题解】设$g_n$表示n个点的无向图个数,那么显然 $$g_n=2^{\frac{n(n-1)}{2}}$$ 设$f_n$表示n个点的无向连通图个数,通过枚举1号点所属连通块大
阅读全文
摘要:【题意】给定只含'a'和'b'字符串S,求不全连续的回文子序列数。n<=10^5。 【算法】FFT+回文串 【题解】不全连续的回文子序列数=回文子序列总数-回文子串数。 回文子串数可以用回文串算法(Manacher,PAM,二分+hash)轻松计算。 设f[i]表示以i为对称中心的对称字符对数,那么
阅读全文
摘要:【题意】给定长度为m的匹配串B和长度为n的模板串A,求B在A中出现多少次。字符串仅由小写字母和通配符" * "组成,其中通配符可以充当任意一个字符。n<=3*10^5。 【算法】FFT 【题解】假设模板串的数组A用0~26代表所有字符,0为通配符,匹配串的数组B同理,那么用表示差异的经典套路: $$
阅读全文
摘要:【题目】F - Many Easy Problems 【题意】给定n个点的树,定义S为大小为k的点集,则f(S)为最小的包含点集S的连通块大小,求k=1~n时的所有点集f(S)的和取模924844033。n<=2*10^5。 【算法】排列组合+NTT 【题解】考虑每个点只会在k个点都在其一个子树时无
阅读全文
摘要:【题意】n位同学(其中一位是B神),m门必修课,每门必修课的分数是[1,Ui]。B神碾压了k位同学(所有课分数<=B神),且第x门课有rx-1位同学的分数高于B神,求满足条件的分数情况数。当有一位同学的一门必修课分数不同时视为两种情况不同。n,m<=100,Ui<=10^9。 【算法】计数DP+排列
阅读全文
摘要:【题目】G. Partitions 【题意】n个数$w_i$,每个非空子集S的价值是$W(S)=|S|\sum_{i\in S}w_i$,一种划分方案的价值是所有非空子集的价值和,求所有划分成k个非空子集的方案的价值和。1<=k<=n<=2*10^5,1<=wi<=10^9。 【算法】斯特林数 【题
阅读全文
摘要:【题意】n个点等距排列在长度为n-1的直线上,初始点1~k都有一辆公车,每辆公车都需要一些停靠点,每个点至多只能被一辆公车停靠,且每辆公车相邻两个停靠点的距离至多为p,所有公车最后会停在n-k+1~n。给定n,k,p,求满足要求的方案数%30031。n<=10^9,k<=p<=10。 【算法】状压D
阅读全文
摘要:【题意】从第0层开始有无穷层,每层有n个房间,给定矩阵A,A[i][j]表示从第x层的房间 i 可以跳到第x+A[i][j]层的房间 j (x任意),A[i][j]=0表示不能跳。初始在第0层第1个房间,求最少跳几次可以到达>=m层。n<=100,m<=10^18。 【算法】矩阵快速幂 【题解】我的
阅读全文
摘要:【题意】给定n个点的有向带边权图,求0到n-1长度恰好为T的路径数。n<=10,T<=10^9,边权1<=wi<=9。 【算法】矩阵快速幂 【题解】这道题的边权全部为1时,有简化版:【BZOJ】1706: [usaco2007 Nov]relays 奶牛接力跑 这道题边权很小,将点x拆成9个点x1~
阅读全文
摘要:【题意】给定n和m,求1~n从高位到低位连接%m的结果。n=11时,ans=1234567891011%m。n<=10^18,m<=10^9。 【算法】递推+矩阵快速幂 【题解】 考虑枚举位数个数k,对于不同的k单独递推,设f[i]表示1~i的答案,则有: $$f_n=f_{n-1}*10^k+i$
阅读全文
摘要:【题目】E. Team Work 【题意】给定n和k,n个人中选择一个大小为x非空子集的代价是x^k,求所有非空子集的代价和%1e9+7。n<=10^9,k<=5000。 【算法】斯特林反演 【题解】枚举非空子集大小,则题目要求: $$ans=\sum_{i=1}^{n}\binom{n}{i}i^
阅读全文
摘要:【题目】H. Ember and Storm's Tree Game 【题意】Zsnuoの博客 【算法】动态规划+排列组合 【题解】题目本身其实并不难,但是大量干扰因素让题目显得很神秘。 参考:Zsnuoの博客 一、首先Ember必胜(考虑n个点连成一条链),故合法的树一定满足先手必胜。当Storm
阅读全文
摘要:【题目】A. A String Game 【题意】给定目标串S和n个子串Ti,Alice和Bob轮流选择一个子串操作,必须且只能在子串末尾添加一个字符使得新串也是S的子串,不能操作即输,求胜利者。|S|<=10^5,n<=100。多组数据,保证Σ|S|<=3*10^7。 【算法】后缀自动机+博弈论S
阅读全文
摘要:【题目】C. Maximum Element 【题意】给定n和k,定义一个排列是好的当且仅当存在一个位置i,满足对于所有的j=[1,i-1]&&[i+1,i+k]有a[i]>a[j],求长度为n的好的排列数。n<=10^6。 【算法】排列组合+动态规划 【题解】设D(n)表示长度为n且满足a[n]=
阅读全文
摘要:【题意】给定一棵树的灯,按一次x改变与x距离<=1的点的状态,求全0到全1的最少次数。n<=100。 【算法】高斯消元解异或方程组 【题解】设f[i]=0/1表示是否按第i个点的按钮,根据每个灯的亮灭可以列出n个方程:a[i][j]表示第i盏灯是否受开关j影响,a[i][n+1]=a[i][i]=1
阅读全文