- 博客(78)
- 收藏
- 关注
原创 2018牛客多校第一场A题
题意:矩阵由0、1、2组成,并且满足、,给定矩阵的大小n、m,问能有多少种这样的矩阵思路:整个矩阵可以看成由三部分组成,可以看成在0、1和1、2之间各有一条轮廓线,如果我们把左下角的点设为(n,0)把右上角的点设为(0,m,那么从左下到右上的所有的路径数为 ,就相当于在这些路径中取出两条路径来,并且这两条路径不能有穿过,穿过是指可以有的边重合,但不能有相交,所以问题就变得复杂了一些,所以把其中...
2018-07-20 16:50:12
413
1
原创 LightOJ 1236 Pairs froming LCM 素因子分解
题意给定一个数nnn,问在小于等于nnn的数中,有多少数对(a,b)满足lcm(a,b)=nlcm(a,b)=nlcm(a,b)=n,其中a<ba<balcm=nlcm=nlcm=n的数对中的两个数一定是n的因子 我们从因子的角度来看LCM: 对n进行素因子分解 n=pa11pa22pa33...pakkn=p1a1p2a2p3a3...pkakn=p_1^{a_1}p_2^...
2018-04-26 15:18:45
212
原创 hdu4921 A Short problem 循环节 矩阵快速幂
传送门题意:求思路:这个题让我对循环节有了新的认知QAQ:我们首先考虑g(n)对1e9+7的循环节,这个确实不大好找……可以猜测一下这个循环节应该是在1e7、1e8的范围,可以多分几次范围,然后慢慢找到这个循环节ll a=0,b=1,c;for(ll i=2;i<=300000000;i++){ c=(3*b+a)%mod1; a=b%mod1; b=c%m
2018-04-23 21:38:48
202
原创 nefu15 八阵图
题意:有n个好路,m个坏路,经过好路就一定能走出去,经过坏路会经过一段时间后走回原地,现在给出n个好路各个通过的时间,m个坏路各个的时间,求最后走出去的时间的期望求n个好路的总时间sum1,记作a=sum1/n,记作b=sum2/m记作选择好路的概率为n/(n+m) 选择坏路的概率为m/(n+m)那么就是一个几何分布QAQ所以E=p1*a+p1*p2*(a+b)+p1*p2*p2*(a+2b)*....
2018-04-19 21:42:38
301
原创 n个相同的球放进k个不同的盒子中方案数
……不知道为啥这个高中学过的知识,每次提起来都得认真的重新想一遍,所以记录下…………可以看做n+k个球放到k个盒子中,每个盒子都至少一个球,所以隔板法……C(k-1,n+k-1)...
2018-03-31 19:53:21
8700
2
原创 CodeForces - 697E 找递推、快速幂
http://codeforces.com/problemset/problem/697/E E. PLEASE time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard output As we all know Barney’s job is “P
2018-03-18 13:51:07
274
原创 Kattis aplusb A+B Problem FFT
传送门题意给出nn个[−50000,50000][-50000,50000],问有多少个三个数的排列满足aia_{i}+aja_{j}=aka_{k},值得注意的是这个题说的是排列即{1,2,3}、{2,1,3}算是两种方案思路我们可以用FFT来优化,假设nn个数是这样的: 2,3,3,4,5,5{2,3,3,4,5,5},那么就相当于一个多项式: x2+2x3+x4+2x5x^{2}+2x^{
2018-01-31 11:26:55
253
原创 poj 1222 高斯消元入门 开关问题
传送门题意有5*6=30个的灯,每次拨动某个灯的开关,那么这个灯的上下左右的灯以及它本身的状态会发生变化,现在给出初始状态,要求也输出一个5*6的矩阵,1表示这个灯的开关被操作过,0表示没有,问能使灯全灭的操作是怎么样的思路首先一定要清楚一点:如果一个开关按动两次,那么就相当于没有操作假设初始状态是全灭的,我们的目标状态是到题目中的初始状态,那么相同的操作是可以将题目中
2018-01-29 16:57:40
245
原创 带权求切比雪夫距离和最短
即求,我们还是要先把切比雪夫距离转化为曼哈顿距离,其实跟hdu4312的求法很相似了……,只是加上了权值,如果我们还是只看横坐标方向上的:先对横坐标排序,得到一个序号那么横坐标比i个点小的与第i点的横坐标的差的和为其中sumwx[]数组为对x坐标排序了以后权值的前缀和,sumx[]是xi*wi的前缀和横坐标比i个点大的与第i点的横坐标的差的和为同样y坐标上也是相同的算法代码
2018-01-27 14:02:55
473
原创 hdu4312 求最小切比雪夫距离和
传送门题意:与hdu4311差不多...不过变成了从八个方向来,这样就转化成了求最小的某个点到其他点的切比雪夫距离和思路:将切比雪夫距离转化成曼哈顿距离来做:我们设x3、x4,这样,我们求x1、x2的切比雪夫的距离:,带入x3、x,这实际是x3、x4曼哈顿距离的二分之一,这样我们就可以按照hdu4311的做法,先对坐标处理一下,求出最小的曼哈顿距离和,最后结果除以2就是想要的答案了
2018-01-27 13:41:34
334
原创 hdu4311 Meeting point-1 求最小的曼哈顿距离和
曼哈顿距离:两个点在标准坐标系上的绝对轴距总和可以表示为:传送门本题的题意:给定n个点,每个点到其他的点都可以取得曼哈顿距离和,求最小的距离和思路:分别对x坐标、y坐标排序,我们可以先对x坐标排序,得到一个坐标序号,每个点的序号i的意义是:有i-1个点的横坐标比它小,有n-i个点的横坐标比它大,所以如果我们还可以求得一个x坐标的前缀和sumx的话,那么就是比第i个点横坐标小
2018-01-27 12:56:42
759
原创 求n对小于等于它的数取余的和
即求:我们可以先对原式转化一下:,在i的一定区间上会保持一个固定的值比如,我们求一下13对小于等于它的数相除后取地板:13、6、4、3、2、2、1、1、1、1、1、1、1在这里[5,6]上都是一个固定值2,[7,13]上都是一个固定的值1,在这些区间上是等差数列所以我们只需要找到每个区间的首项和末项就可以求出来,那么也就很容易得到了仔细想一想可以发现,每个区间的最后一项是,把这
2018-01-27 11:40:17
398
原创 hdu6061 推公式 FFT
传送门公式推导参考自http://blog.csdn.net/ZLH_HHHH/article/details/76576544?locationNum=1&fps=1题意:相当于求的每项系数思路:这样就可以用NTT优化来计算代码:#include #include #include #include #include using namespace st
2018-01-23 11:34:09
259
原创 hihocoder 1388 Periodic Signal FFT
最近做了几个FFT的题,实在是如果不记录一下就转头忘了 T T传送门题意:求思路:将上式拆开,那么就变成了,前两项都是固定的值那么我们求的最大值就可以了,n的数据范围为6*1e4,所以要用FFT优化下面是我现在的理解,如果有错还恰巧被大佬看到了,求指出T T如果有两个数组:A:1到n-1;B:1到m-1那么得到的卷积C:1到m+n-2,其中,注意这里
2018-01-22 21:14:05
217
原创 poj2151 概率dp
传送门题意:给定t个队伍、m场比赛,每个队伍做对每个题的概率,问每个队都至少做对一个题并且第一名做对的题目至少有n道的概率思路:每个队至少做对1道题的概率很容易求,这个概率记作p,即每个队能做出题的概率的乘积,假设计算第i个队能做出题的概率,也就是1减去这个队做不出题的概率设p2为每个队都做出1到n-1道题的概率,那么p-p2就是最后的答案了那么关键就是怎么算p2我们设dp[i
2018-01-22 11:34:15
230
转载 HDU 5119 Happy Matt Friends(母函数)
转载地址Happy Matt FriendsTime Limit: 6000/6000 MS (Java/Others) Memory Limit: 510000/510000 K (Java/Others) Total Submission(s): 4907 Accepted Submission(s): 1859Problem Description Matt has N friends. T
2018-01-17 20:45:48
214
原创 hdu5114 Collision扩展欧几里得
传送门题意:给出俩球的初始坐标(x1,y1)、(x2,y2),两个球都是往(1,1)方向运动,如果遇到墙壁,两个球会满足反射定律反射,问最后两球相遇的坐标思路:设相遇经历的时间为t1、如果两球的初始坐标相同,那么相遇时间t=02、如果两球的初始横坐标相同,那么在x方向两球是相对静止的,所以只需要考虑y方向,假设y1\frac{y1+y2}{2}3、如果两球的初始纵坐标相同,同理在y方向两球是相对静
2018-01-17 20:11:05
212
原创 hdu5514 容斥或数论
传送门题意:一排编号0-m-1的石头围成一个圈,有编号1-n的青蛙每次可以跳a[i]步,问可以跳到的石头的编号和是多少思路:由于石头是个圈,不难发现每个青蛙最少可以跳的步数差为gcd(a[i],m),也就是说一个每次跳a[i]步的青蛙能跳到gcd(a[i],m)的及其倍数的编号的石头上,我们不难想到用容斥...用枚举子集做了半天,也wa了半天...枚举子集会爆long long,所以不可取
2018-01-15 10:41:42
222
原创 hdu5976 Detachment 逆元 优化
传送门 题意:给定一个数x,我们可以把这个数分解成一个一个的小的数字a1,a2,a3…… 定义s=a1*a2*a3*……. 问如何分解x使得s最大,并且不能有重复的数字 思路:分解成数量多的小的数字,比分解成数量少的大的数字的乘积更大,这一点我不知道怎么证明……并且由基本不等式我们可以知道,相等和的两个数,越接近那么乘积越大 可想而知,如果可以有重复的数字,那我们可以把x分解成2和3的和
2018-01-13 17:31:16
198
原创 hdu6237 素因子
传送门题意:给定n堆石子,每次可以将一个石子从一堆移到另一堆,问最少移动几次,使得最后每一堆石子的个数都为一个大于等于2的数x的倍数思路:首先x一定是n堆石子数和s的因子,所以可以枚举s的因子来对每堆石子进行调整,再找最小的调整数。但是其实不需要找到s的所有因子,只需要找s的素因子即可我们可以枚举每个素因子p[i],记录下每堆石子数距离p[i]的倍数的求模后的值(也就是余数),并对
2017-12-17 16:56:30
275
原创 hdu6050 推公式矩阵快速幂
传送门#include#include#include#include#include#includeusing namespace std;typedef long long ll;const int N=2;const int mod=1e9+7;struct matrix{ ll m[N][N];};matrix mat
2017-12-15 20:33:29
229
原创 hdu4602 Partition 快速幂
传送门记录一下……题意:通过隔板法,可以把一个数n能拆分成2^(n-1)种方式,给定一个k,问n的所有拆分中有几个k,结果模1e9+7思路:相当于有一排1,捆绑了k个数,然后看其他的数有多少种拆分方式,如果k个数在两边,那么另外的n-k个数就有2^(n-k-1)种拆分方式,总共有2种情况;如果k个数在中间,那么其它n-k个数总共有2^(n-k-2)种排列方式,总共有n-k-1种情况,这
2017-12-03 20:32:36
212
原创 hdu4790 Just Random
传送门题意:给出两个区间[a,b],[c,d],各取一个数i,j,求能使(i+j)%p=m的概率思路:总体可以取的数个数为(b-a+1)*(d-c+1),计算能满足条件的个数,如果列出来会发现会形成一个平行四边形,只要保证a+d>b+c时就可以把这个平行四边形分成三部分,然后分开找满足(i+j)%p=m的位置就可以了完整代码:#include #include #include
2017-12-02 14:31:41
190
原创 hdu4810 Wall Painting 二进制组合数学
传送门题意:给定n个数,分别求从这n个数中取1-n个数的异或的和思路:把这n个数都分别用二进制表示,然后统计每一位中1的个数,因为是异或,所以只有奇数个1才能得到这一位是1,把从n个数中选几个数转化成从一定数量的1和0中选择,比如:51 6 8 10 2 这组例子0 0 0 10 1 1 01 0 0 01 0 1 00 0 1 0———2 1 3 1
2017-11-26 19:27:58
195
原创 hdu4454 计算几何 三分
传送门题意:给定一个圆和一个矩形、一个点,求点先到圆再到矩形的最短距离和思路:点是定点,实际上是求圆上的点到这个定点和矩形的最小距离和,所以遍历圆上的点,三分就可以了,在求与矩形的最小的距离的时候,分成八部分(可以说十分特别麻烦了T T)完整代码:#include #include #include #include #include using namespace st
2017-09-24 18:37:33
271
原创 Hdu6198 num num num 找规律+矩阵快速幂
题意:给定斐波那契数列:0,1,1,2,3,5,8,13,21,34,55……输入一个数字k,求k个斐波那契数列中的数不能组成的最小的数字,其中k个数可以重复,比如k=1,那么1个斐波那契数列中不能组成的最小的数字为4,结果再对一个素数取余思路:思路比较简单..归纳找规律..多写几组数据来找一下规律:若k=2,注意2=1+1,我们知道1个数字
2017-09-14 16:42:06
350
原创 hdu4035 概率dp
传送门记录……记录……题意:给定n个点,n-1个连接点,保证n个点都能连接起来,在每个点都有ki的概率回到第一个点,有ei的概率找到出口,问从1出发到出口的期望是多少思路:实际是连成了一个树,那么分别考虑叶结点,非叶结点设E[i]为当前在i结点到走出迷宫的期望,那么E[1]就是我们所求的叶结点:E[i]=ki*E[1]+(1-ki-ei)*(E[father[i]]+1)=ki
2017-08-24 12:25:06
219
原创 poj3301 三分
传送门题意:给定n个点,求能覆盖住这些点的最小的正方形的面积思路:这个题的想法我觉得还是很巧妙的,一般来说我们考虑点不动,来找这个正方形,然而就算计算个凸包好像也不好实现。这个题通过旋转点,而正方形都是水平竖直的,旋转点寻找最大最小的横坐标之差与最大最小的纵坐标之差的最大值就是当前旋转角度下得到的正方形的边长(表达力为负啊……),每个角度都对应一个正方形的边长,并且是一个单峰函数,所以用三
2017-08-23 15:45:25
297
原创 51nod 1678 容斥原理
传送门题意:输入一个数A,为1时,将a[i]改成b;为2时,求gcd(i,j)=1的j对应的a[j]的和思路:求i与1-n中互质的数,这个很眼熟,是一个经典的容斥,即将n素因子分解,对n的素因子及素因子的组合进行容斥,最后用a[i]的和减去容斥的结果就是最后的结果了,但是如果直接求 某个素因子或者素因子的组合的 倍数和时,很容易超时,所以可以先预处理这些数的倍数和。在修改时也需要修改这些已
2017-08-22 20:00:04
256
原创 hdu 4089 概率dp
照旧记录啊TAT,一个看题解都看了好久才明白的题目传送门题意:仙剑五终于出了,tomato同学抑制不住内心的激动去激活游戏,但像tomato同学一样想玩仙剑五的人太多了,于是排起了队,对于排到的每个人都有如下四种情况:1、激活失败:继续原地等着再激活一次,概率p12、连接失败:比较脸黑,回到队伍最后重新排,概率p23、激活成功:就成功地可以回家玩游戏了,概率p34、服务器崩
2017-08-20 15:39:19
226
原创 hdu6154 规律啊规律
传送门题意:给出一个面积,用一个方格的边长或对角线画,也就是边长只能由1、sqrt(2)组成问至少多少笔可以画出大于等于这个面积的图形这个题倒着想啊,思考4笔以上设为x笔最多能画多大的面积,肯定要尽量多的sqrt(2)为边长,以4为周期,显然四的倍数的时候一定能画一个菱形样的正方形,边长为x/4*sqrt(2),面积也就是为x*x/8,然后依次通过图形就可以找到对4取模余1、余2、余3的公
2017-08-20 12:27:14
770
原创 ZOJ 3329 概率dp求期望
传送门先记录一下这题怎么做……等做多了再归纳总结一下,这个先留个坑……题意:给定三个骰子,分别有k1、k2、k3三个面,1思路:设dp[i]为当前计数为i到目标所需要的次数的期望,那么可以很容易得到:dp[i]=Σdp[i+k]*pk+dp[0]*p0+1 ————————————(1)pk为掷得的点数和为k的概率,p0为正好掷得a、b、c的概率,
2017-08-18 11:16:05
319
原创 poj3071 概率dp
传送门题意:给定一个n,共有2^n个队伍,给出各个队伍击败另一个队的概率,求获胜的概率最大的队思路:设dp[i][j]是第i场第j个队获胜的概率,dp[0][j]都是1,data[i][j]是i队胜过j队的概率,2^n个队伍那么需要比n场,才能得到最后的结果,先拿这个图粗略表示一下那么dp[1][1]=dp[0][1]*data[1][2]dp[2][1]=dp[1][1]*(
2017-08-17 13:33:16
257
原创 hdu5001 概率dp
传送门题意:给定一个无向图,从每个点的出发概率都相等,从每个点到它的连接点的概率也相同,给定固定的步数,求不经过某个点的概率思路:设第i步第一次经过第j点的概率为dp[i][j],那么dp[i][j]=∑dp[i-1][k]*1/temp[k],其中k为与j连接的点,temp[k]为与k点连接的点的个数,那么1减去j点各个步经过的点的概率就是不经过j点的概率了。完整代码:#include<c...
2017-08-17 12:47:13
282
原创 ACdream oj1113 概率dp求期望
传送门题意:一个6个面的骰子,给定一个固定的数,问使掷得骰子的和正好等于这个数的次数的期望,值得注意的是,如果掷得的某个数加上之前的和超过了给定的数,那么这次掷得的结果作废思路:用了一个超级笨的方法做的……先计算了一下前几个数的期望,从1开始,想得到1只能某次掷到1才可以,那么:dp[1]=1*1/6+2*5/6*1/6+3*(5/6)^2*1/6+......=6再计算了一下
2017-08-17 11:23:58
226
原创 hdu4652 概率dp求期望
传送门题意:给定m个面的骰子,m个面上m个数字各不相同,问能得到最后掷的连续n个相同或者连续n个不同的数字,所需要的次数的期望思路:这个题硬解规律真的不好找,上网看了下大家的题解,不知道是哪个大神的思路,真的十分巧妙!首先设dp就很有特点:设dp[i]为从已有的连续i个相同的或者不相同的数字到得到n个相同或者不同的数字的期望,那么我们要求的便是dp[0]了,并且很显然的是dp[n]=0
2017-08-16 15:52:42
327
原创 zoj3435 莫比乌斯反演
传送门题意:给定点(x,y,z)与(1,1,1)确定一个长方体,长方体边上及内部总共有x*y*z个点,问从(1,1,1)总共能看到多少个点思路:点的类型分为三种:(1)在长方体内部、(2)在长方体面上(不包括与(1,1,1)共线的点)、(3)与(1,1,1)共线的点;如果我们把每个坐标都减1,可以发现:(1)如果坐标里有两个0,那么只有另一个数为1才可以看见、(2)如果坐标里有一个0,那么
2017-08-13 10:43:03
345
原创 bzoj2301 莫比乌斯反演
传送门题意:给出a、b、c、d、k,求在[a,b]内取一个数x,在[c,d]内取一个数y,使得gcd(x,y)=k的方法数思路:可以说是hdu1695的升级版了,定义一个solve函数,作用是求[1,m]内取x,[1,n]内取y,使得gcd(x,y)=1的方法数,根据hdu1695的思路,则f(1)=F(1)*mu(1)+...+F(min(x,y))*mu(min(x,y)),但如果还是
2017-08-12 17:03:18
233
原创 无平方因子数
传送门题意:给出一个n求1-n中的无平方因子的个数思路:很明显的容斥原理啊,那么就是n减去4的倍数减去9的倍数减去25的倍数加上36倍数加上100倍数加上225倍数等等等依次来算,前面的符号其实就是开根号后的数的莫比乌斯函数完整代码:#include#include#includeusing namespace std;typedef long long LL ;cons
2017-08-12 15:34:47
2327
原创 hdu1695 gcd 莫比乌斯反演
传送门题意:从1-m中选取x,1-n中选取y,使得gcd(x,y)=k,求选取方法数思路:利用莫比乌斯反演,题目等价于从1-m/k中选取x,1-n/k中选取y,使得gcd(x,y)=1,求选取方法数,我们设f(k)=使gcd(x,y)等于k的选取数F(k)=使gcd(x,y)等于k的倍数的选取数我们可以容易得出F(x)=(m/x)*(n/x)根据莫比乌斯反演公式f(k)=∑
2017-08-10 20:42:36
393
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人