自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(60)
  • 资源 (3)
  • 收藏
  • 关注

原创 洛谷 P3382

题目:点击打开链接题意:如题,给出一个N次函数,保证在范围[l,r]内存在一点x,使得[l,x]上单调增,[x,r]上单调减。试求出x的值。分析:三分法逼近。二分求解的时候要求是一个单调的函数,而三分则要求是个凸性函数  大概就是长这个样子 我们要求解的也就是最高的极值点取到的横坐标 如何求解呢? 简单来讲呢,就是函数中存在一个点x是最大(小)值,对于x的左边,满足单调上升(下...

2018-08-30 16:25:45 253

原创 HDU 4609 3-idiots

题目:点击打开链接题意:给定n(n<=100000)个火柴棍的长度l(l<=100000),问任选三根能组成三角形的概率。分析:这道题实际上就是问能组成多少三角形。注意到每根火柴棍的长度都小于等于10^5,所以可以把火柴棍的长度写成多项式的形式,比如说现在有四根火柴棍长度为1,3,3,4,那么多项式的系数为{ 0, 1, 0, 2, 1},表示长度为0的火柴有0个,长度为1的火...

2018-08-30 14:21:57 152

原创 FWT模板(洛谷P4717)

Fast Walsh-Hadamard Transform,即FWT,用来解决形如一类的卷积,其中⊕表示位运算(xor/or/and)。参考博客:https://www.cnblogs.com/cjyyb/p/9065615.html大体结构和FFT、NTT差不多。代码:#pragma GCC optimize(2)#pragma GCC optimize(3)#pragma...

2018-08-29 21:36:32 276

原创 NTT多项式乘法模板(HUD 1402)

FFT虽然能快速处理卷积,但是它也有很大的弊端。精度问题有时会导致一些错误。而且,有许多题目涉及了取模,比如 998244353,复数域下的 DFT精度更是暴露无遗。于是考虑是否有模意义下的这种算法。于是,便出现了快速数论变换(Fast Number−Theoretic Transform, FNT)。NTT和FFT基本上一样,只不过用原根代替了复数根。参考博客:https://www.c...

2018-08-29 20:48:28 1309

原创 FFT多项式乘法模板(HDU1402)

这几天学了下FFT,入门推荐算法导论第三十章,话不多说,上板子。递归版:#pragma GCC optimize(2)#pragma GCC optimize(3)#pragma GCC optimize(4)#pragma comment(linker, "/STACK:102400000,102400000")#include<unordered_map>#in...

2018-08-29 14:50:16 268

原创 Pollard-Rho算法模板(POJ 1811 Prime Test)

题目:点击打开链接题意:给定一个64位整数,问是否为质数,如果不是,则输出其最小因子。分析:miller_rabbin素数判定+pollard_rho分解质因子模板题。Pollard_rho算法的大致流程是 先判断当前数是否是素数(Miller_rabin)了,如果是则直接返回。如果不是素数的话,试图找到当前数的一个因子(可以不是质因子)。然后递归对该因子和约去这个因子的另一个因子进行...

2018-08-28 10:17:25 577

原创 计算几何-判断两条线段是否相交模板

给定两个点:typedef  struct {  double  x, y;} Point;Point A1,A2,B1,B2;首先引入两个实验:a.快速排斥实验设以线段A1A2和线段B1B2为对角线的矩形为M,N;若M,N 不相交,则两个线段显然不相交;所以:满足第一个条件时:两个线段可能相交。 b.跨立实验 如果两线段相交,则两线段必然相互跨...

2018-08-27 20:17:58 7587

原创 FZU 2273 Triangles

题目:点击打开链接题意:判断两个三角形的位置关系。分析:先判断两个三角形的线段是否相交,再判断是否在存在包含关系,剩下的就是相离,相交可以用叉积判断,点是否在三角形内可以用面积恒等式判断,计算几何尽量避免除法,防止精度丢失,千万注意精度问题!!!代码:#include<algorithm>#include<iostream>#include<fs...

2018-08-27 20:13:11 242

原创 POJ 2409 Let it Bead

题目:点击打开链接题意:用k种颜色对n个珠子构成的环上色,旋转、翻转后相同的只算一种,求不等价的着色方案数。分析:polay定理模板题。代码:#pragma GCC optimize(2)#pragma GCC optimize(3)#pragma GCC optimize(4)#pragma comment(linker, "/STACK:102400000,1024...

2018-08-26 23:50:27 143

原创 洛谷 P4549 【模板】裴蜀定理

题目:点击打开链接题意:给出n个数(A1...An)现求一组整数序列(X1...Xn)使得S=A1X1+...AnXn>0,且S的值最小分析:裴蜀定理:对于两个数 a,b有 ax+by=gcd(a,b) 存在解推广: 对于多于 2个的数, 有 ax+by+cz+...=gcd(a,b,c,...)故此题直接求解全部数的 gcd即可可以理解为扩展欧几里得的扩展代码:...

2018-08-26 21:42:22 310 1

原创 HDU 6441 Find Integer

题目:点击打开链接题意:已知a^n+b^n=c^n,给出n和a,求b,c,如果无解输出−1 −1。 分析:必须scanf才能过,时间卡的比较紧。费马大定理 1. a^n+b^n=c^n,n>2时无解。 2. 当a为奇数时, a=2⋅k+1c=k^2+(k+1)^2b=c−1当 a 为偶数a=2∗k+2c=1+(k+1)^2b=c−2手动列个方程...

2018-08-26 20:38:47 179

原创 HDU 6438 Buy and Resell

题目:点击打开链接题意:给出 n ,表示 n 天。给出 n 个数,a[i] 表示第 i 天,物品的价格是多少。每天可以选择买一个物品,或者卖一个已有物品,也可以什么都不做,问最后最大能赚多少钱,最少操作次数是多少?分析:贪心好题!cf原题(CodeForces - 867E),对每一个元素产生的贡献可以先计算出暂时的最优值,注意是暂时的最优,应为后面可以出现更加优的答案,所有下次遇到更优的...

2018-08-26 19:56:56 216

原创 c++中使用hash_map

1.需要加上头文件#include<ext/hash_map>2.需要加上名称空间using namespace __gnu_cxx;3.当hash_map中使用string或者long long为key时(key为int时不需要),需用户扩展命名空间代码示例:#include<bits/stdc++.h>#include<ext/hash_map...

2018-08-26 17:06:39 2945

原创 Codeforces Round #506 (Div. 3) C. Maximal Intersection

题目:点击打开链接题意:给出数轴上的一些线段,可以任意删掉其中的一条线段,求最大的删除后所有线段的重合处的长度。分析:容易知道n条线段的相交部分一定是(Lmax,Rmin),那么我们可以暴力删除每一条线段,然后查询最大的左端点和最小的右端点,更新答案。用multiset维护就行,它可以维护重复的元素,注意删除的时候用find(x)函数找到元素值为x的第一个元素,如果直接用erase(x)会...

2018-08-26 15:17:12 141

原创 Codeforces Round #506 (Div. 3) D. Concatenated Multiples

题目:点击打开链接题意:给你n个数,求任意两个数组合而成能整除k的对数。分析:根据除法的定义暴力就行了,用map或者unordered_map存一下余数就行。主要通过这题,对map和unordered_map有了一个新的认识,当用键值访问的时候就插入了,然后mp[key](unordered_map[key])自动赋值为0,导致查询的节点变多了效率变低了,所以可以用count函数先判断键是...

2018-08-26 09:10:13 135

原创 HDU 6430 TeaTree

题目:点击打开链接题意:给出一颗树,给出每个点的val,要求输出树上所有点的最大价值,最大价值定义为 ans[X]=max(gcd(val[i],vaj[j])) i,j 满足 lca(i,j) = X。分析:把子树的因子压到bitset,假如存在因子n,那么bitset的第n位为1,如果要求两个子树之间节点的最大gcd,那么就是要找最大的因子,两个子树的bitset与一下找最大的1的位置...

2018-08-24 13:14:02 285

原创 hdu 6432 Cyclic

题目:点击打开链接题意:(题目描述有点问题,导致看了半天)给你一个n,1-n个数排列成环要求后一个不能刚好比前一个大一(不能包含有 [i, i + 1] 或 [n, 1] 这样的子串),问你有多少种排列方式。分析:之前都不知道有环排列这个东西,学到了,环排列,顾名思义,一个排列首尾相连成环,长度为n的环排列个数为(n-1)!,因为一个正常的排列对应n个环排列。又是容斥啊,发现容斥还是有套路...

2018-08-23 22:47:46 214 2

原创 hdu 6299 Balanced Sequence

题目:点击打开链接题意:给你n个串,让你重新排列组合这n个串(每个串内部顺序不变),使得匹配的括号长度最大。分析:贪心好题,先把每个括号序列用栈来使得中间的都括号都匹配,使得右括号都在左边,左括号都在右边然后排序,我们先把右括号小于等于左括号的排在前面,然后对于右括号小于等于左括号的情况,我们按右括号从小到大排序(因为最左边的右括号都是被浪费掉的,浪费的越小越好),然后把右括号大于左括号的...

2018-08-23 21:29:26 164

原创 HDU 6435 CSGO

题目:点击打开链接题意:有n个主武器,m个副武器,(n < 1e5,m < 1e5)每个武器有个主属性S和一个 K(K < 5)个副属性,现在要求以下值最大 分析:对应两个属性值绝对值之差,|a-b|=a-b或者b-a,k小于等于5,所以两个武器的和的可能情况最多是2的k次方,32种情况。每一种状态,取n个主武器,属性和与s之和,中的最大值,与对应状态的m个副武器,属性和...

2018-08-23 10:27:47 186

原创 HDU 6415 Rikka with Nash Equilibrium

题目:点击打开链接题意:给个n*m矩阵,用1~n*m填进去,使得Nash equilibriums至多一个,Nash equilibriums值某个数在所在行和列是最大的。分析:从大到小填进去,dp[i][j][k]表示填了i个数占了j行k列的方案数,显然新填一个数要么j+1要么k+1要么都不加,不可能j和k都加,然后递推下去,加一些判断优化更快。用记忆化搜索或者直接推出公式n!∗m!∗(...

2018-08-21 23:34:34 206

原创 牛客网暑期ACM多校训练营(第十场) Rikka with Prefix Sum

题目:点击打开链接题意:给一个数组a,一开始的值全为0。一共有三个操作: 1. 对区间[L,R]的每个数都加上w。 2. 将数组a用其前缀和数组代替。 3. 将询问区间[L,R]的区间和。分析:好题,加深了对差分数组的理解。操作有两种,1操作是给l-r区间内的数都加w,2操作是让这个数列变为它的前缀和序列,我们知道,2操作之后得到的新的序列差分之后就是操作前的序列,所以如果只有2...

2018-08-21 21:12:29 256

原创 HDU1556

一、差分数组的定义及用途1.定义:对于已知有n个元素的离线数列d,我们可以建立记录它每项与前一项差值的差分数组f:显然,f[1]=d[1]-0=d[1];对于整数i∈[2,n],我们让f[i]=d[i]-d[i-1]。2.简单性质:(1)计算数列各项的值:观察d[2]=f[1]+f[2]=d[1]+d[2]-d[1]=d[2]可知,数列第i项的值是可以用差分数组的前i项的和计算的,...

2018-08-20 23:27:39 583

原创 hdu3625

题目:点击打开链接题意: 就是给你N个房间,然后每个房间1把钥匙,你最初手里没有任何钥匙,要靠破门而入!这里只有第一个房间不能破门进去,其他都可以,给你房间数N,和最多能破门的个数,让你求能全部把房间打开的概率。分析:首先这题其实让我们求的是给 N个元素,让我们求K个环排列的 方法数。斯特林第一类数的递推公式:S(N,0)=0;S(N,N)=1;S(0,0)=0;S...

2018-08-19 21:34:55 373

转载 生成函数(母函数)入门详解

在数学中,某个序列的母函数(Generating function,又称生成函数)是一种形式幂级数,其每一项的系数可以提供关于这个序列的信息。使用母函数解决问题的方法称为母函数方法。母函数可分为很多种,包括普通母函数、指数母函数、L级数、贝尔级数和狄利克雷级数。对每个序列都可以写出以上每个类型的一个母函数。构造母函数的目的一般是为了解决某个特定的问题,因此选用何种母函数视乎序列本身的...

2018-08-19 20:32:24 893

原创 HDU 1398

题目:点击打开链接题意: 硬币种类有1^2,2^2,3^2,4^2...17^2,这几种;输入n;求出能够组合成n的组合有多少种。分析:可以用完全背包做,也可以用母函数来做,构造母函数G(x)=(1+x+x^2+x^3.....)(1+x^4+x^8+...)(1+x^9+x^18+.....).....,最后所得多项式x^n的系数即时答案。代码:#pragma commen...

2018-08-19 20:31:05 342

原创 hdu1028

题目:点击打开链接题意: 给定整数n,求n有多少种划分方式。(对于4来说,1+3和3+1是同一种划分方式)分析:以前是用dp做的,现在发现可以用母函数来做,对于整数n,可令G(x)=(1+x+x^2+x^3+...+x^n)(1+x^2+x^4+...)(1+x^3+x^6...)...,1+x+x^2+x^3+...+x^n的第i位x^i表示1取i次的情况,(1+x^2+x^4+...)...

2018-08-19 20:07:11 426

转载 卡特兰数

什么是Catalan数说到Catalan数,就不得不提及Catalan序列,Catalan序列是一个整数序列,其通项公式是我们从中取出的就叫做第n个Catalan数,前几个Catalan数是:1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012, 742900, 2674440, 9694845, 35357670, …咋...

2018-08-19 18:51:18 113

原创 The Triangle Division of the Convex Polygon

题目:Description A convex polygon with n edges can be divided into several triangles by some non-intersect diagonals. We denote d(n) is the number of the different ways to divide the convex poly...

2018-08-19 16:38:56 227

原创 Codeforces Round #504 (rated, Div. 1 + Div. 2, based on VK Cup 2018 Final) E

第一次做交互题,了解一下交互题的套路。平常的题都是系统给你一个输入,你的程序输出一个答案,然后就完了。交互题就是在这之后,系统还会再给你一个输入,你再输出,系统再输入....(如此循环n次)To flush you can use (just after printing an integer and end-of-line): fflush(stdout) in C++; ...

2018-08-18 21:49:49 139

原创 广义二项式定理

 当 −1≤x≤1−1≤x≤1,且n为正整数时 推导过程如下:f(x)=f(a)+f'(a)/1!*(x-a)+f''(a)/2!*(x-a)^2+...+f(n)(a)/n!*(x-a)^n(泰勒展开式)现在f(x)=1/(1-x)那么求导得到f'(x)= -1/(1-x)^2 *(-1)=1/(1-x)^2f''(x)= -2/(1-x)^3 *(-1)=2/(1-x)^3...

2018-08-17 20:53:17 12507

转载 容斥原理详解

翻译:vici@cust对容斥原理的描述容斥原理是一种重要的组合数学方法,可以让你求解任意大小的集合,或者计算复合事件的概率。描述       容斥原理可以描述如下:         要计算几个集合并集的大小,我们要先将所有单个集合的大小计算出来,然后减去所有两个集合相交的部分,再加回所有三个集合相交的部分,再减去所有四个集合相交的部分,依此类推,一直计算到所有集合相交的部分。...

2018-08-17 17:39:17 16626

原创 HDU 6397 Character Encoding

题目:点击打开链接题意: 假设有 0 到 n-1种数字,随机选取(可以重复),得到的和为k组合数量有多少种。分析:可以用容斥或者生成函数来做。容斥做法:如果每个箱子里可以装的小球数量没有上限的话,答案就是(隔板法),设为有至少有i个箱子不合法的情况(最多会有k/n个箱子不合法),答案就是    ,容斥原理可参考点击打开链接,讲的很好。生成函数做法:我们先不看k,只看n...

2018-08-17 17:36:46 251

原创 HDU 6390 GuGuFishtion

题目:点击打开链接题意: 分析:展开欧拉函数化简得到,我们要处理的就是gcd(a,b)=igcd(a,b)=i时的G(a,b)值G(a,b)值,以及有多少对a,b的gcd为i,G(a,b)=ϕ(i)/i,G(a,b)=ϕ(i)/i,预处理欧拉函数和逆元即可。对于一个数i,在a∈[1,n],b∈[1,m]的范围内,设f[i]为gcd为(i,2i,3i...)的对数,显然 : f[i]=[n/i...

2018-08-16 20:20:34 247

原创 HDU 6406 Taotao Picks Apples

题目:点击打开链接题意: 有n个苹果按顺序排列,每个苹果都有一个高度 hi。由于陶陶有一种奇怪的癖好,他希望按照给出的顺序(输入顺序)摘苹果,且每一次摘的苹果的高度都严格大于上一次摘的苹果的高度。神奇的是这棵树上的苹果会移动,能够改变其中一个苹果的高度,求改变后陶陶最多能够摘多少个苹果。分析:改变苹果树高度的位置,前面摘的苹果数量不会发生变化,关键考虑改变位置之后的变化情况,假设当前位置为i...

2018-08-16 15:49:40 171

原创 hdu 6400 Parentheses Matrix

题目:点击打开链接题意: 给一个只含'('和')'的矩阵,只考虑从行和列上的括号序列,构造一个矩阵使得合法括号序列的总数最多。分析:构造,分类讨论。首先奇数行或奇数列内是不存在合法括号序列的,所以如果n或m是奇数,则最多有n/m个括号序列(即把行/列直接填充为合法序列),需要分析的是偶数行和偶数列的情况。首先贪心一下,起点位于第一行和第一列,所以应该尽量在这些位置填'(',首先想到的是把矩...

2018-08-15 23:07:26 192

原创 HDU 6395 sequence

题目:点击打开链接题意:  分析:分块递推,矩阵加速递推,比如p=16,i按照p/(p/i)+1来递增,得到:1,2,3,4,5,6,9,17.滑动的区间中每个数对于p来说除数一样,比如【9,17)这部分对于16来说除数都是1,那么观察如果后面的p/n是个常数,就是赤裸裸的矩阵快速幂了,如果加上p/n,就要利用分块的思想,思路大体是这个思路,但实现起来有很多细节考虑,n与p的大小关系要界...

2018-08-14 23:10:16 193

原创 hdu 6396 Swordsman

题目:点击打开链接题意:打小怪兽的题目,主角有k个技能,每个技能有对应的攻击力ai,怪兽有k个防御值bi,k个强化能量ci。只有所有的ai > = bi,这只小怪兽才会被打死。然后主角的技能就会被强化,新的ai = 打死怪兽前的ai + ci。问能打死多少怪兽,并且最后的ai是多少。分析:开k个优先队列。每个队列都满足从小到大那种。首先将所有的怪物加入到第一个队列中。然后对于v[i]&...

2018-08-14 20:43:42 193

转载 C++中的inline用法

1. 引入inline关键字的原因在c/c++中,为了解决一些频繁调用的小函数大量消耗栈空间(栈内存)的问题,特别的引入了inline修饰符,表示为内联函数。栈空间就是指放置程序的局部数据(也就是函数内数据)的内存空间。在系统下,栈空间是有限的,假如频繁大量的使用就会造成因栈空间不足而导致程序出错的问题,如,函数的死循环递归调用的最终结果就是导致栈内存空间枯竭。下面我们来看一个...

2018-08-14 19:56:42 76

原创 读入挂模板

一般读入挂(数据流不是太大的时候 (<10^6))inline ll read(){ ll x=0;int f=1;char ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();} while(ch>='0'&&ch<='9'){x=x*10+...

2018-08-14 19:39:19 271

原创 牛客网暑期ACM多校训练营(第七场) E.Counting 4-Cliques

题目:点击打开链接题意:给出一个K(1~1e6),要求构造一个图G满足一下条件:75个点以内,不存在重边,且刚好存在K个(4点完全图).分析:构造好题,首先看到这道题都会先暴力跑一波C(n,4),因为这是n个点的完全图存在4点完全图的数量,观察发现当n>=72时C(n,4)才大于1e6我的做法是先取一个K以内的最大T个点的完全图,然后剩下的数量就是K-C(T,4),还有一点可以发现就是...

2018-08-14 09:59:20 170

acm训练体系

acm训练方案,从入门到精通,包括每个阶段该学的知识和对应知识点的题目,题目都是精心筛选过的,质量绝对有保证。

2019-05-07

acm知识思维导图

acm知识图谱,包括了acm竞赛设计的所有数据结构与算法,还有一些技巧和方法。

2019-05-07

音乐播放器

项目功能点: 1.从本地导入歌曲(单个文件导入或者文件夹批量导入)。 2.播放歌曲、暂停、停止、上一首、下一首、删除歌曲。 3.音量调节。 4.音乐进度调节。 5.歌词的展示,可以同步进度条的变化,呈现对应时间的歌词。 6.网上爬取歌词,如果本地存在歌词文件,直接使用本地文件,不存在则从网上爬取。 7.播放MV。 8.音乐分享。 9.音乐评论。 10.音乐收藏。 11.用户歌单。(保存到mysql) 12.后台播放。(隐藏到任务栏) 13.最近播放。 14.任意选择播放模式。(单曲循环、随机播放、列表循环) 15.登录注册。(正则验证)

2017-12-14

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除