随笔分类 - 数学--------------------------
摘要:【题目】C. Superior Periodic Subarrays 【题意】给定循环节长度为n的无限循环数列,定义(l,s)表示起点为l的长度为s的子串,(l,s)合法要求将子串从该起点开始以s为循环节长度无限循环中每个数字都>=数列中对应位置的数字,求合法(l,s)的数量。0<=l<n,1<=s
阅读全文
摘要:【题意】一开始车上有编号为0~a的红茶,过程中出现的红茶编号仅有[0,b),有三种操作: 1.买进编号未在车上出现过的红茶。 2.丢掉车上指定编号的红茶。 3.将最早丢出去的红茶捡回来。 每次操作后求编号最小的不在车上的红茶。 【算法】单调队列 【题解】本题最重要的性质在于早丢早捡。 因此,当进行丢
阅读全文
摘要:【题意】LibreOJ 【算法】乱搞 【题解】容易发现数列最后一定单调,最后单调递增则最大值赋为最后一个,反之最小值赋为最后一个,然后处理一些细节就可以AC,要注意以下几点: 1.数列连续三项以及数列最后一项>10^7时退出。 2.可能第一要求项就比你枚举的大,需要特判。 3.要求项的枚举不能等于最
阅读全文
摘要:【题意】给定三个长度为n的排列,求在三个排列中顺序相同的数对个数。 【算法】逆序对 【题解】很容易联想到NOIP火柴排队,涉及顺序问题显然和逆序对息息相关。 一个数对如果在三个排列中顺序不同,一定是1+2或2+1,也就是只在两数列之间顺序相同。 所以对三个数列两两求逆序对总数num,则不满足要求的数
阅读全文
摘要:【题意】两列n个火柴,分别有高度ai和bi(同一列高度互不相同),每次可以交换一列中的两个相邻火柴,定义距离为∑(ai-bi)^2,求使距离最小的最少交换次数,n<=10^5。 【算法】逆序对 【题解】∑(ai-bi)^2=∑ai^2+∑bi^2-∑ai*bi,其中∑ai^2和∑bi^2为常数,则要
阅读全文
摘要:【题意】已知n次方程(n<=100)及其所有系数(|ai|<=10^10000),求[1,m]中整数解的个数(m<=10^6)。 【算法】数论 【题解】如果f(x)=0,则有f(x)%p=0。 所以取若干个素数p,将所有数字读入取模并快速计算出所有f(x)%p,若均为0则认为f(x)=0。 优化:利
阅读全文
摘要:【题意】给定有(n+1)*(m+1)个点的网格图,其中指定k个点不合法,求合法的正方形个数(四顶点合法)。 【算法】计数 【题解】斜着的正方形很麻烦,所以考虑每个斜正方形其外一定有正的外接正方形。 也就是,一个边长为x的正放的正方形,同时代表x个正方形(其中1~x-1为斜正方形)。 num0:首先计
阅读全文
摘要:【参考】 浅析竞赛中一类数学期望问题的解决方法 信息学竞赛中概率问题求解初探 WC2018冬令营课件《概率与期望及其应用》曹文 【概率的定义】 基本事件是一次实验可能出现的不可再分解的直接结果,样本空间Ω是全体基本事件的集合,随机事件是若干基本事件组成的集合。 事件的并:事件C=”事件A与事件B至少
阅读全文
摘要:【题意】给定DAG带边权连通图,保证所有点都能到达终点n,每个点等概率沿边走,求起点1到终点n的期望长度。n<=10^5。 【算法】期望DP 【题解】f[i]表示到终点n的期望长度。 f[n]=0 f[i]=(f[j]+e[i].w)/k[i],i-->j,k[i]是i的出度。 因为是点x等概率出发
阅读全文
摘要:【题意】给定n,求∑gcd(i,n),(1<=i<=n),n<=2^32 【算法】数论(欧拉函数,gcd) 【题解】批量求gcd的题目常常可以反过来枚举gcd的值。 记f(g)为gcd(i,n)=g的i的个数,则有ans=∑f(g)*g,g|n。 gcd(i,n)=g即gcd(i/g,n/g)=1,
阅读全文
摘要:第一题 n个m位二进制,求异或值域总和。 【题解】异或值域 >使用线性基,解决去重问题。 m位二进制 >拆位,每位根据01数量可以用组合数快速统计总和。 #include<cstdio> #include<cstring> #include<cctype> #include<cmath> #incl
阅读全文
摘要:【题目】洛谷10月月赛R1 提高组 【题意】求n!在k进制下末尾0的个数,n<=1e18,k<=1e16。 【题解】考虑10进制末尾0要考虑2和5,推广到k进制则将k分解质因数。 每个质因数在n!中的数量,以2为例是n/2+n/4+n/8...这样统计。(含x个就被统计x次) 最后得到凑出的k的个数
阅读全文
摘要:【题目】C. Qualification Rounds 【题意】给定n个问题和K个人,给定每个人知道的问题列表,求能否找到一个非空问题集合,满足每个人知道的集合中问题数量都不超过集合总题数的一半。n<=10^5,k<=4。 【算法】数学结论 【题解】当k<=4时,结论:若存在合法方案,则一定存在选择
阅读全文
摘要:【题意】给定n头牛,k个特色,给出每头牛拥有哪些特色的二进制对应数字,[i,j]平衡当且仅当第i~j头牛的所有特色数量都相等,求最长区间长度。 【算法】平衡树+数学转化 【题解】统计前缀和sum[i][j]表示前i头牛特色为j的数量,则区间i~j平衡需要满足: sum[j][1]-sum[i-1][
阅读全文
摘要:【题意】给定m条边的无向图,起点s,终点t,要求找出s到t恰好经过n条边的最短路径。n<=10^6,m<=100。 【算法】floyd+矩阵快速幂 【题解】 先对点离散化,得到点数N。 对初始边建立初始矩阵,然后考虑每次多跑一条边相当于一次矩阵乘法,即c[i][j]=min(a[i][k],a[k]
阅读全文
摘要:【题意】给定h,w,d,要求构造矩阵h*w满足任意两个曼哈顿距离为d的点都不同色,染四色。 【算法】结论+矩阵变换 【题解】 曼哈顿距离是一个立着的正方形,不方便处理。d=|xi-xj|+|yi-yj| 将矩阵旋转45°,转为切比雪夫距离(正方形)。d=max{|xi-xj|,|yi-yj|} (图
阅读全文
摘要:【算法】DP+数学优化 【题意】把n个1~m的数字分成k段,每段的价值为段内不同数字个数的平方,求最小总价值。n,m,ai<=40000 【题解】 参考自:WerKeyTom_FTD 令f[i]表示把前i个数分成若干段的最小价值。 转移中我们定义,从i开始往前到有j个不同的数的最小位置为b[j]。
阅读全文
摘要:【算法】数学置换 【题意】给定n个数,要求通过若干次交换两个数的操作得到排序后的状态,每次交换代价为两数之和,求最小代价。 【题解】 考虑置换的定义:置换就是把n个数做一个全排列。 从原数组到排序数组的映射就是经典的置换,这样的置换一定能分解成循环的乘积。 为什么任意置换都可以这样分解:原数组的每个
阅读全文
摘要:【算法】动态规划+组合数学 【题意】有一个h行w列的棋盘,定义一些格子为不能走的黑点,现在要求从左上角走到右下角的方案数。 【题解】 大概能考虑到离散化黑点后,中间的空格子直接用组合数计算。 然后解决容斥问题就很重要了。 定义f[i]为走到第i个黑点且不经过其它黑点的方案数。 f[i]=calc(x
阅读全文
摘要:【算法】并查集+平衡树+数学+扫描线 【题解】 经典曼哈顿距离转切比雪夫距离。 曼哈顿距离:S=|x1-x2|+|y1-y2|<=c 即:max(x1-x2+y1-y2,x1-x2-y1+y2,-x1+x2+y1-y2,-x1+x2-y1+y2) 令X1=x1+y1,Y1=x1-y1,则转化为 切比
阅读全文