自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 收藏
  • 关注

原创 bzoj1103[POI2007]大都市meg

链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1103题意:中文题。分析:题目要求的是每次都是从节点1计算到节点x的距离,我们可以利用长度为2*n的dfs序的性质,因为在dfs序中我们会保存节点i进入时间l[i]和出去时间r[i],那么我们可以设置一个树状数组记录前缀和,我们将所有的l[i]位置+1,所有的r[i]位置-1。这样有什么

2016-03-30 23:33:06 646

原创 Codeforces Round #316 (Div. 2)D. Tree Requests

链接:http://codeforces.com/contest/570/problem/D题意:给定一棵n个节点的树(1为根),每个节点上有一个小写字母,m个询问:给定v,h,问在以v为根的子树中深度为h(相对整棵树的深度)的所有点的字符能否组成回文串。分析:我们来将题目分解一下,首先我们确定构成回文串的条件,很显然要求“字母个数为奇数的字母小于等于1”,这里我们可以用异或储存偶数为0奇

2016-03-30 22:36:45 437

原创 51nod1686 第K大区间

链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1686题意:中文题。分析:二分答案就行了。但是!有一个坑,k代码:#include#include#include#include#include#include#include#include#include#include#in

2016-03-30 20:22:39 717

原创 codevs1283等差子序列

链接:http://codevs.cn/problem/1283/题意:中文题。分析:题目要求我们找是否存在等差数列,其实我们可以将条件弱化为是否存在长度为3的等差数列,直接暴力找会超时(但是这个OJ上的数据好弱,暴力可过),我们可以将这n个数慢慢加入到一个计数数组中,比如说加入x我们就令f[x]=1,这样的话我们在加入x的时候只要判断1~x-1是否和x+1~n是否对称(以x为中心对称)。

2016-03-29 21:18:56 590

原创 codevs1282 约瑟夫问题

链接:http://codevs.cn/problem/1282/题意:中文题。分析:约瑟夫问题,用树状数组或者线段树维护一下就行了。代码:#include#include#include#include#include#include#include#include#include#include#include#include#pragma commen

2016-03-29 17:38:10 412

原创 hdu1402A * B Problem Plus(NTT)

链接:http://acm.hdu.edu.cn/showproblem.php?pid=1402题意:大数乘法分析:练习下NTT。学习网站:http://blog.csdn.net/acdreamers/article/details/39026505  http://blog.miskcoo.com/2015/04/polynomial-multiplication-and-fast-

2016-03-28 20:37:03 1113

原创 2016CampDay7problemA.ABBA

链接:https://alpha.icpc-camp.org/submissions/new#(需要账号)分析:求矩阵的秩,直接高斯消元会爆longlong,用浮点会爆精度,所以可以用取多个模做模意义下的高斯消元,然后取最大的秩。代码:#include#include#include#include#include#include#include#include#inc

2016-03-27 19:57:42 401

原创 BestCoder Round #77

链接:http://bestcoder.hdu.edu.cn/分析:1001,子集异或和的异或和,除了n==1的情况外所有元素都会在偶数个子集中出现,所以特判一下即可。O(n)代码:#include#include#include#include#include#include#include#include#include#include#include#inc

2016-03-27 15:53:15 473

原创 bzoj2064: 分裂

链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2064题意:中文题。分析:因为题目给定的n个数的总和和后面m个数的总和一定是一样的,很显然这题的上界是n+m-2(直接将n个数合在一起再拆成m个数即可),在这个基础上我们可以想到一个做法就是将n和m分成若干个子集两两相等,每分出一对子集我们就能ans-2。那么我们可以将其中一类取负数,那

2016-03-26 16:15:00 732

原创 poj2985The k-th Largest Group

链接:http://poj.org/problem?id=2985题意:初始给定n个元素个数为1的集合,然后给定m个操作,有两种操作:C=0时输入a,b表示将a,b所在的集合合并成一个集合,C=1时输入k表示询问当前所有集合中集合大小排序中的第k大的集合的size。分析:集合合并直接用并查集维护就可以了,找第k大的话用树状数组找第k大就好了。代码:#include#include

2016-03-26 14:54:25 373

原创 uva11426GCD - Extreme (II)

链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=18553题意:给定多个n,求所有的gcd(i,j)之和{1分析:因为每一次的gcd必然是j的因子,我们只要对每个j的因子计算贡献即可,比如当前的因子为x,x|j,那么对答案的贡献为phi(j/x)*x,phi()是欧拉函数。O(nlogn)代码:#incl

2016-03-22 21:44:03 319

原创 bzoj1725: [Usaco2006 Nov]Corn Fields牧场的安排

链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1725题意:中文题。分析:裸的状态压缩DP。代码:#include#include#include#include#include#include#include#include#include#include#include#include#pragma

2016-03-22 21:15:56 526

原创 bzoj1076: [SCOI2008]奖励关

链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1076题意:中文题。分析:期望题,顺着做不好判断可行条件,我们倒着做,设dp[i][j]表示在选择第i次奖励要或不要之前的已有状态为j。因为是等概率,记得/n。最后答案就是dp[1][0]啦。代码:#include#include#include#include#incl

2016-03-22 20:56:52 650

原创 uva11825Hackers' Crackdown

链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=18913题意:《算法竞赛入门经典训练指南》算法设计基础例题29。分析:刘汝佳讲得很好了,我就不bb了。需要学习的姿势是二进制集合子集的遍历。剩下就是状态压缩了。O(3^n)代码:#include#include#include#include#in

2016-03-21 22:12:50 377

原创 codevs2800送外卖

链接:http://codevs.cn/problem/2800/题意:中文题。分析:经典的货郎担问题(TSP),只是这题每个点可以多次路过。先跑一遍Floyd,再状压DP即可。O(n^3+n^2*2^n)代码:#include#include#include#include#include#include#include#include#include#include#include#

2016-03-21 21:51:39 940

原创 Educational Codeforces Round 9 E.Thief in a Shop

链接:http://codeforces.com/contest/632/problem/E题意:给定n,k,然后给定n个1000以内的整数,求从中取k个(可重复取同一元素)能组成多少个不同的数,输出所有恰能用k个数组成的情况。分析:很明显这题只要将数x当做指数项直接去FFT即可,最后输出系数非0的项即可,另最大的数为x,mx=x*k,那么暴力FFT是O(mx*k*logmx),这样显然是

2016-03-21 21:08:19 682

原创 hdu1402A * B Problem Plus

链接:http://acm.hdu.edu.cn/showproblem.php?pid=1402题意:计算A*B。分析:由于A,B很大,长度可能达50000,所以一般的高精度乘法是不行的。所以要用FFT,这个叫快速傅里叶变换。算法导论第30章有讲,讲得挺清晰的,还有就是picks的博客也不错:http://picks.logdown.com/posts/177631-fast-fouri

2016-03-20 21:45:39 925

原创 hdu5647DZY Loves Connecting

链接:http://acm.hdu.edu.cn/showproblem.php?pid=5647题意:BC76div1的B题。分析:一个很明显的树DP,我们设tr[i]表示以i为根的子树方案数,sum[i]表示以i为根对答案做的贡献。但是!在计算贡献的时候不能先把tr[i]乘出来,然后分别求各个儿子的贡献,因为可能会出现tr[i]==0的情况,这样逆元是无效的。我们应该在统计儿子x的时候

2016-03-19 22:14:11 742

原创 bzoj1087: [SCOI2005]互不侵犯King

链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1087题意:中文题。分析:因为n特别小,我们可以直接用状态压缩来表示每一行的状态,然后判断是否可行即可。PS:我的程序跑出来有点慢,应该是对于cal函数的多次计算的问题,其实我们可以预处理出来,然后每次O(1)调用即可。代码:#include#include#include

2016-03-19 17:48:19 625

原创 UVA 10253Series-Parallel Networks

题意:给定n,求有n条边的串并联网络的方案数。分析:《算法竞赛入门经典训练指南》数学基础例题7。书中给出的建模思想很好,并且对组合数学求解和dp的边界情况分析都很好。多学习,多积累。代码:#include#include#include#include#include#include#include#include#include#include#include#

2016-03-19 16:42:05 348

原创 UVALive 4123Glenbow Museum

题意:给定一个长度L。求满足'O'.'R'表示的长度为L的边平行于坐标轴的多边形有多少种。并且在多边形内的任意一点都能直接看到每个顶点。分析:《算法竞赛入门经典训练指南》数学基础例题6。在分析完数量差是4之后,我是直接用的组合数求,不是像刘汝佳一样的递推。代码:#include#include#include#include#include#include#include

2016-03-19 14:42:06 722

原创 Educational Codeforces Round 9

链接:http://codeforces.com/contest/632problemA:给定n,p,表示有n个人买了苹果(每次买剩下苹果的一半),p表示苹果的单价且为偶数,接下来n行字符串half表示当时第i个人买的时候苹果数为偶数,halfplus表示第i个人买的时候为奇数个,这个时候卖完之后剩的半个苹果会当礼物送给这个人。求一个卖了多少钱。O(n)分析:逆着算出总苹果数,再顺着算一下

2016-03-16 20:56:33 375

原创 UVA 11361Investigating Div-Sum Property

题意:求在[a,b]这个区间内有多少个数x满足,x%k==0&&x的各个位上的数的和y%k==0。分析:《算法竞赛入门经典训练指南》数学基础例题5。代码:#include#include#include#include#include#include#include#include#include#include#include#include#pragma c

2016-03-16 01:03:49 369

原创 UVALive 3516Exploring Pyramids

题意:给定一个字符串S,这个s串是一棵树的dfs序。求dfs序为s的树有多少种情况。分析:《算法竞赛入门经典训练指南》数学基础例题4。代码:#include#include#include#include#include#include#include#include#include#include#include#include#pragma comment(

2016-03-16 01:01:13 411

原创 UVA 11401Triangle Counting

题意:求在1~n这n个数字中选出3个不同的数字能组成三角形的方案数。分析:《算法竞赛入门经典训练指南》数学基础例题2。代码:#include#include#include#include#include#include#include#include#include#include#include#include#pragma comment(linker,

2016-03-16 00:58:26 273

原创 UVA 11538Chess Queen

链接:uva网站访问好慢,自己去vj上挂题吧。http://acm.hust.edu.cn/vjudge/toIndex.action题意:给定n,m表示在一个n*m的棋盘上,要求放入一白一黑两个国际象棋的皇后,要求两个皇后能互相攻击到,求方案数。分析:《算法竞赛入门经典训练指南》数学基础例题1。代码:#include#include#include#include#inc

2016-03-16 00:54:04 311

原创 hdu5297Y sequence

链接:http://acm.hdu.edu.cn/showproblem.php?pid=5297题意:给定多组n,r。有整数1,2,3...INF。除去其中的a^b的数字,2分析:首先我们可以知道我们只要对b是质数的情况进行处理就好了。但是在除去b==2和b==3的时候将b==6的情况减去了2次,这里要容斥。同时我们可以知道最大的b应该小于64。那么我们只要先预处理出代码:#in

2016-03-14 21:57:05 355

原创 51nod1242 斐波那契数列的第N项

链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1242题意:中文题。。分析:矩阵快速幂加速求斐波那契裸题。代码:#include#include#include#include#include#include#include#include#include#include#inc

2016-03-09 21:58:22 603

原创 Codeforces Round #345 (Div. 2)

链接:http://www.codeforces.com/contest/651problemA:给定两个操作手柄的初始电量a,b,只有一个充电器,每一分钟如果不充电要消耗2%,在这分钟开始时就要消耗1%结束时再消耗1%,如果连上充电器会增加1%的电量。求两个手柄最多能撑多少分钟使得两个都有电。O(n)分析:while下去就行了。。特判一下(1,1)的情况。代码:#include

2016-03-09 19:49:28 444

原创 bzoj3687: 简单题

链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3687题意:中文题。。分析:要求计算子集算术和的异或和。首先我们设dp[i]表示由这n个数能有多少种方案组成i,显然这样dp[1~sum]就将所有的子集和统计完了,那么计算的时候只要判断(dp[i]&1)就有ans^=i。这样的复杂度是sum*n,对于n=10^3,sum=2*10^6是

2016-03-07 20:33:57 1243

原创 BCBestCoder Round #74

链接:BestCoder Round #74A:给定n,接下来是n-1个整数a[i]。a[i]表示在字符串s中从第i个开始的子串和从第i+1个开始的子串的最长公共前缀为a[i]。求字符串s有多少种情况。分析:首先我们处理无解的情况,显然a[i]+i>n是无解的,并且相邻的a[i]如果非0则必然为a[i]-1==a[i+1]。然后就只要算方案数了。O(n)代码:#include#i

2016-03-06 21:17:14 298

原创 hiho[Offer收割]编程练习赛1

链接:http://hihocoder.com/contest/hihointerview3/problemsA:九宫,中文题。分析:3*3的幻方,爆搜即可。代码:#include#include#include#include#include#include#include#include#include#include#include#pragma com

2016-03-06 18:59:11 758

原创 Codeforces Round #344 (Div. 2)

链接:http://codeforces.com/contest/631problemA:给定两个数组A,B。设f(x,l,r)=x[l]|x[l+1]...|x[r],求max(f(A,l,r)+f(B,l,r))。分析:因为是取或是贪心变大,所以我们把整个数组或起来即可,即l==1&&r==n。O(n)代码:#include#include#include#include

2016-03-05 23:31:17 394

原创 UVA 11014Make a Crystal

题意:给定一个N*N*N的立方体,坐标范围为-N/2分析:要求没有PQO共线,但是PQO是可以的,那么就是说可以跨原点共线,那么我们就可以把点分为3部分:(1)坐标轴上的点。(2)8个象限的点。(3)12个四分之一平面中的点。(1)中显然只有6个点。(2)是(3)的三维情况,我们先对(2)进行分析:令g(x)={(a,b,c),gcd(a,b,c)==x}的三元组的个数,令f(x)={(a,b

2016-03-03 23:48:48 462

原创 UVA 12075Counting Triangles

题意:给定多组n,m,求一个边长为n*m的网格表中的网格顶点能组成多少个三角形。分析:网格点组成三角形,直接点求就是C((n+1)*(m+1),3)的总的取三个顶点的情况数减去三点共线的情况,我们能直接减去在平行于x轴和y轴的直线上的情况(n+1)*C(m+1,3)+(m+1)*C(n+1,3),还有就是斜线上的三点共线,我们只算斜率为正的直线上的情况,最后*2即可。我们设dp[i][j]表示

2016-03-03 17:41:09 337

原创 UVA 1393 Highways

题意:给定多组n,m,求在一个n*m的点矩阵中有多少条至少过两个点的直线。分析:我们设dp[i][j]表示在一个边长为i*j的矩形中,有多少条过点(i,j)的满足条件的直线,那么就有dp[i][j]=dp[i-1][j]+dp[i][j-1]-dp[i-1][j-1]+(gcd(i,j)==1),然后我们设在矩形i*j中有多少题目要求的直线为ans[i][j],那么有ans[i][j]=ans

2016-03-03 16:17:22 301

原创 uva11806 - Cheerleaders

题意:给多组n,m,k,求在一个n*m的矩阵中选k个格子放入石子的方案,一个格子最多放一个石子,并且要求在第一行和最后一行,第一列和最后一列中至少要有一个石子。分析:如果直接分类讨论的话比较麻烦,我们反向枚举方案,枚举第一行没有石子的情况,最后一行没有石子的情况等等等。。这样是有16种总情况,然后容斥一下就好了。代码:#include#include#include#includ

2016-03-02 21:34:29 515

原创 51nod1630 B君的竞技场

链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1630题意:中文题。。。分析:首先我们不知道B君的实力,设获胜概率为p,即p的取值范围为[0,1]。设f[i][j]表示胜i场输j场的概率,那么有f[i][j]=f[i-1][j]*p+f[i][j-1]*(1-p)。这样我们就求出了每一种情况的概率是一个关于

2016-03-02 19:20:40 893

原创 51nod1613 翻硬币

链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1613题意:中文题。。。分析:自己找规律找出一些,并不会系统分析,完整的分析在这:https://www.zhihu.com/question/26570175。膜膜膜。代码:#include#include#include#include

2016-03-02 16:25:59 486

原创 bzoj3907: 网格

链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3907题意:中文题。。。分析:用卡特兰数的非常规法证明F[n]=C(2*n,n)-C(2*n,n-1)那种方法可以分析出这题的答案为C(n+m,n)-C(n+m,n+1),详见百度百科,再用高精度处理一下即可。代码:#include#include#include#include#inc

2016-03-01 20:33:00 1388

空空如也

空空如也

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

TA关注的人

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