自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

随风的专栏

程序编制梦想,梦想引领飞翔!

  • 博客(53)
  • 收藏
  • 关注

原创 hdu4267--A Simple Problem with Integers(树状数组)

题目链接:点击打开链接题目大意:有一个n个数的序列,有两种操作1 a b k c 在区间[a,b]内的i,如果满足(i-a)%k == 0 那么第i个数就加上c,2 a问第a个数的值是什么,首先给出n个数的初始值,然后是q次操作,完成每次操作,如果是询问的话,输出那个值。第一次考虑用线段树,如果一次操作1 a b k c中[a,b]能覆盖当前线段树的一个小段[l,r]的话,那么对于这个

2015-08-26 08:53:31 2099

原创 hdu5412--CRB and Queries(整体二分)

题目链接:点击打开链接题目大意:给出n个数的初始序列,有两种操作,1 l v将第l个数换成v,2 l r k 问在区间[l,r]内的第k大是多少,并输出经典的题目,但是树状数组+主席树(TLE)伸展树(MLE),听说他们用的块状链表,zhazha表示不会,后来补题,发现整体二分是一个好方法。首先,这个整体二分是将数据范围和操作放到一起,不断二分数据的范围,可以得到有某些操作可以被完成,

2015-08-26 08:27:43 1752

原创 poj1066--Treasure Hunt(规范相交)

题目链接:点击打开链接题目大意:一个正方形的墓葬内有n堵墙,每堵墙的两个顶点都在正方形的边界上,现在这些墙将墓葬分割成了很多小空间,已知正方形内的一个点上存在宝藏,现在我们要在正方形的外面去得到宝藏,对于每个小空间,我们可以炸开它的任意一条边的中点,现在给出每堵墙的两个节点的坐标和宝藏的坐标,问如果要得到宝藏,需要炸的墙数最少是多少。枚举正方形边界上的点作为进入正方形的节点,由这个点向宝藏

2015-08-24 15:31:36 1478

原创 codeforces 571A--Lengthening Sticks(组合+容斥)

A. Lengthening Stickstime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputYou are given three sticks with positi

2015-08-24 14:28:12 1203

原创 codeforces 571B--Minimization(贪心+dp)

D. Minimizationtime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputYou've got array A, consisting of n integer

2015-08-24 10:14:14 1490 1

原创 hdu5419--Victor and Toys(枚举)

题目链接:点击打开链接题目大意:有n个值a[i],排成一排,编号为1到n,现在有m个区间[lj,rj],任意从m个区间里挑选出三个i,j,k,统计编号在[ max(li,lj,lk) , min(ri,rj,rk) ]内的数的和,问最终和的期望是多少。和的期望 = (∑任意一种挑选方式的和)/(总的挑选方式) = x / y ;首先y = m*(m-1)*(m-2)/6 ;至于x,

2015-08-24 08:36:49 1241

原创 hdu5418--Victor and World(floyd+状压dp)

题目链接:点击打开链接题目大意:有n个城市,在n个城市之间有m条双向路,每条路有一个距离,现在问从1号城市去游览其它的2到n号城市最后回到1号城市的最短路径(保证1可以直接或间接到达2到n)。(n首先用floyd跑出任意一点到其他点最短路。从n小于等于16就可以看出用状压,从1点开始,dp[i][j]当前经过了i中为1的城市,最后经过的城市是j,不断维护,最后得到dp[1#incl

2015-08-24 08:30:17 2173

原创 poj2280--Amphiphilic Carbon Molecules(扫描线+极角排序+转换坐标)

题目链接:点击打开链接题目大意:给出n个点的坐标,每个点有一个值0或者1,现在有一个隔板(无限长)去分开着n个点,一侧统计0的个数,一侧统计1的个数,如果点在板上,那么都被统计到,问最多可以统计到多少个点。对每个点都做一次极角排序,然后按照排序后的点进行遍历板的位置,统计出在板上的点的个数,两侧的0和1的个数。然后求最大值。但是极角排序的基准点只能是最左下角的点,所以还要进行坐标转化,

2015-08-22 15:50:27 1465

原创 hdu5414(2015多校10)--CRB and String(字符串匹配)

题目链接:点击打开链接题目大意:有A,B两个字符串,现在有一种操作可以在A的任意一个字符x后面增加一个字符y(x!=y),问能不能将A变为B。首先如果A可以变成B,那么A就一定是B的一个子序列,这个可以在O(n+m)的时间内算出。如果A是B的子序列之后,判断增加的字符中是不是含有不能增加的情况,我们只需要判断B从开始的一段连续的相同的字符串,是不是在A的开头也存在,如果存在,那么就是可

2015-08-21 10:11:37 813

原创 hdu5410(2015多校10)--CRB and His Birthday(背包问题)

题目链接:点击打开链接题目大意:有m块钱,有n种货物,每种货物都有一个wi的价钱,假设买了x个i中货物,会花wi*x的钱,同时老板还会赠送a*x+b的糖果,问怎么样买礼物,可以让糖果数最多。dp[i][j][0]当买到第i种的时候,花钱是j且没有买过i能得到最多的糖果数。dp[i][j][1]当买到第i种的时候,花钱是j且买过i能得到的最多的糖果数。按照货物数遍历从1到n,那么就可

2015-08-21 09:00:42 825

原创 poj1095--Trees Made to Order(卡特兰数)

题目链接:点击打开链接题目大意:按照图中给的编号方式,节点数逐渐增加,所有的点尽量在右子树上,问第m颗树是什么样子的,按照给的模式输出 (左)x(右),如果没有就缺省。首先对于n个节点的二叉树一共有多少种形态,这刚好符合卡特兰数的值。h(n) = C(2n,n)/(n+1) = C(2n,n) - C(2n,n-1) = h(n-1)*(4n-2)/(n+1) (递推公式)。按照递推公

2015-08-21 08:37:24 2235

原创 poj1870--Bee Breeding(模拟)

题目链接:点击打开链接题目大意:给出一个蜂窝,也就是有六边形组成,从内向外不断的循环(如图),给出两个数的值u,v按六边形的走法,由中心向六个角走。问由u到v的的最小步数。首先处理处每一个数的坐标,让1点位(0,0)其他的点预先处理出来。然后计算两个数的距离时,我们可以计算两个数的位置横坐标差位x,纵坐标差位y,当x 当x>=y的时候,可以先斜线走走到相同的行,然后横正走,一直找到

2015-08-19 15:23:55 821

原创 poj3296--Rinse(三分)

题目链接:点击打开链接题目大意:有一个酒桶容量为Vc,里面还有Vw的酒,现在用Vb的水去刷酒桶,每次酒桶的内壁上会留下Vr的液体,最多可以刷k次,问怎么样刷酒桶,可以让酒桶里面的就最少。如果Vb+Vw 那么其它情况就保证了一定可以向外倒水。所以最终的桶里面剩余的液体是Vr,只要保证Vr内的酒的浓度最小,那么剩余的酒也就是最少的。可以假设用的水是x1,x2,x3,,,,计算每次刷通后

2015-08-19 10:37:28 831

原创 hdu5396(2015多校9)--Expression(区间dp)

题目链接:点击打开链接题目大意:有n个数,和n-1个符号('+','-','*')形成一个表达式,现在问对于不同的运算序列,得到的结果的总和是多少(结果为非负整数,对1e9+7取余)dp[l][r]记录在区间l到r内的各种不同的运算序列的结果的和。首先长度len是1的时候,dp[i][i] = a[i]之后dp[l][r] = ∑ ( dp[l][j] 和 dp[j+1][r] 合

2015-08-19 08:36:10 621

原创 hdu5399(2015多校9)--Too Simple

题目链接:点击打开链接题目大意:有m个映射,从1到n映射到1到n,记为f1,f2,f3,,,fm,并且这些映射满足f1( f2( f3(,,,,fm(i) ) ) ) = i现在已知几个映射的值,还有几个映射是不知道的,问不知道的映射一共有几种可能的组合方式。输入n m,之后m行,如果一行的第一个数为-1,代表这一个映射fi是不知道的,否则一行有n个数,第i行的第j个数字x代表fi(j)

2015-08-18 20:19:26 636

原创 poj3286--How many 0's?(数位dp)

题目链接:点击打开链接题目大意:给出m和n(n>=m),求m到n区间内的0的个数和。数位dp,注意统计前缀为0的,和要求的数的高位存在0,对低位的影响。#include #include #include using namespace std ;#define LL __int64LL dp[12][10] , num[12] ;void init() { int

2015-08-18 10:03:51 872

原创 hdu5379(2015多校7)--Mahjong tree(构造+dfs)

题目链接:点击打开链接题目大意:给出一棵n个节点的树,1节点是根,现在有1到n,n个数放到每个节点上,要求每个子树中数字是连续的,同一个父节点的节点数字是连续的,问有多少种。如果对于一个节点u来说,如果子节点vi数目是sum,子节点是叶子节点的数目是num,如果sum-num>2那么不能被构造,如果sum-num==2,那么方案是dp[u] = ∏dp[vi]*(num!),如果小于2,那

2015-08-18 09:00:37 783

原创 poj2454--Jersey Politics(随机化算法)

题目链接:点击打开链接题目大意:给出3*n个地方,每个地方有1000票,现在有每个地方的得票数,问如何分成3个区域(每个区域n个城市),使得每个区域的总票数过半数。首先对于所有地方由大到小排序,选择前2*n个,划分到两个区域,这样是能得到和最大的方法,然后随机交换两个不同区域的城市,一直到这两个区域的和都大于3*500#include #include #include #inc

2015-08-17 20:29:01 1523

原创 poj3101--Astronomy(分数的最小公倍数)

题目链接:点击打开链接题目大意:有n个行星,给出每一个行星的旋转的周期,问最少多少时间后n个行星会在一条直线上,初始点在一起,不存在所有的行星都有同一个周期假设A行星的周期是t1,B行星的周期是t2(t2>t1),要在一条直线上,一定会运行的相差半个周期的倍数,时间(t/t2 - t/t1) % (1/2) = 0,也就是t*(t1-t2)/(t1*t2)%(1/2) = 0,要是时间最小

2015-08-17 19:52:18 706

原创 hdu5392--Infoplane in Tina Town(置换群+质因子分解求最小公倍数)

题目链接:点击打开链接题目大意:给出一种操作a[1],a[2],,,,a[n],代表每交换一次,1位置的数到a[1]位置,2位置的数到a[2]位置,,,问最终交换多少次可以恢复初始的情况。题目给出一个置换,要求置换的次数,也就是所有轮换个数的最小公倍数。首先求出所有轮换的个数,然后求最小公倍数的时候不能用gcd,因为Mod的取余太大,所以用质因子分解,统计每个质因子出现的最多次数,计算

2015-08-17 15:57:31 1075

原创 hdu5381(2015多校8)--The sum of gcd(线段树)

题目链接:点击打开链接题目大意:f(l,r)=∑ri=l∑rj=igcd(ai,ai+1....aj),给出初始的n个值,q次询问,每次询问输出f(l,r)的值 大多都是说莫队算法,没有想出肿么用,,,,本题用两个线段树完成首先对于任意一个a[i],每次gcd减小至少一半,所以它向后的gcd最多下降log(a[i])次,可以求出对于每一个a[i]来说的gcd相同的各个区间。用线段树

2015-08-17 14:57:43 1139

原创 hdu5385(2015多校8)--The path(贪心,搜索)

题目链接:点击打开链接题目大意:给出一个有向图,求1到其它点的最短距离,要求dis[1] dis[n-1] > dis[n] (1 给出符合条件的每条边的边长(1设置vis标记点是否已经存在,从左边开始逐个搜索,如果点已经存在那么继续遍历,否则换方向遍历(从右开始遍历),因为题目保证存在输出,所以一定可以遍历完所有的。按照被遍历到的时间也就是dis的值,然后在按照(u,v) =

2015-08-15 18:52:21 668

原创 hdu5386(2015多校8)--Cover

题目链接:点击打开链接题目大意:给出一个n*n的矩阵的初始值,和最终的值,现在有m个操作 L i j ,将第i列的值重置为j,H i j,将第i行的值重置为j。问m个操作应该怎么执行,可以完成矩阵的变化。从最终的值向前找寻方案,每次找行和列中剩余的颜色全部相同的,看是否存在没被使用的操作可以完成它,如果有就记录下来,那么最终按照记录的逆序输出,就是可以完成变化的序列啦#include

2015-08-15 15:49:47 497

原创 hdu5387(2015多校8)--Clock(模拟)

题目链接:点击打开链接题目大意:给出一个时间,问在钟表上这个时间的时候,时针和分针的角度,时针和秒针的角度,分针和秒针的角度,如果不是整数以分数的形式输出。如果按照最小的格来算,那么:1s对于秒针来说走1格,分针走12/720格,时针走1/720格。1m对于分针来说走一个,时针走60/720格。1h对于时针来说走5格。计算给出的时间中时针,分针,秒针走的格数,相减得到差,每

2015-08-14 15:27:44 709

原创 hdu5389(2015多校8)--Zero Escape(dp)

题目链接:点击打开链接题目大意:有A和B两个门,每个门上有一个数字,现在有n个人,每个人手里也有一个数字,现在n个人都要选择一个门进去,要求计算门内的人的数字每一位的和,一直累加到一位。这个数和门代表的数字是相同的。问n个人有多少种走法。例如 65536 -> 25 -> 7输入n A B,之后一行输入n个数字代表n个人手中的数字。每个数字都是大于0的输出种类个数。对于累加每一

2015-08-14 11:07:15 658

原创 hdu5384(2015多校8)--Danganronpa(AC自动机)

题目链接:点击打开链接题目大意:给出n个字符串主串,和m个模式串,定义f(A,B)为B串在A串中出现的次数,现在对每一个A串都计算∑f(Ai,Bj) (1 对m个模式串建立AC自动机,然后每个主串都放入自动机中,统计主串包含多少B内的串,并输出。注意:标记的时候直接累加值,可能会有多个模式串相同。统计的时候,使用fail一直要回到根。#include #include

2015-08-13 21:10:53 685

原创 poj3318--Matrix Multiplication(随机算法)

题目链接:点击打开链接题目大意:给出三个n*n矩阵的矩阵a,b,c问a*b是否等于c,等于输出YES,否则输出NOn的最大值是500,计算矩阵乘法的话需要O(n^3)的复杂度,很明显超时。随机出一列k,计算a*(b*k) 和c*k,计算出一列的值,这样的如果a*b==c那么a*(b*k) 和c*k也一定会相等的,因为是随机的数,所以可以多测试几次。#include #includ

2015-08-12 16:17:37 991

原创 hdu5372(2015多校7)--Segment Game(树状数组)

题目链接:点击打开链接题目大意:存在一个横轴,有n此操作,0代表在横轴上新增加一条边,1代表删除1条边,其中0 x代表在从x位置开始增加一条边,当第i次加边时,边的长度为i,1 x代表删除第x次加的边。问每当新加入一条边是,这条边能完整的包含几条边。为什么当时没做这个题,,,已经泪奔,,,问的是新加的那条边能覆盖多少条边,统计已加入的边的左端点大于或等于新边左端点的个数x,统计已加入的

2015-08-12 15:25:31 880

原创 hdu5361(2015多校6)--In Touch(变形的dijkstra)

题目链接:点击打开链接题目大意:给出一个n个数的序列,标号为1到n,对于第i个数,它可以移动到距离i为[ li,ri ]的位置,花费为c[i],输入三行,第一行l[i],第二行r[i],第三行c[i],现在问对于第一个数来说,它移动到第i个位置的最小花费。(1这是一个每个点可以移动到一段中任意一个点,并且花费一样,这样就不适用与已有的四种最短路,但是可以对dijkstra进行变形,dij是

2015-08-12 10:38:21 610

原创 hdu5334(2015多校4)--Virtual Participation(构造)

题目链接:点击打开链接题目大意:给出一个数字k,要求做出一个长度小于等于10^5的序列,该序列中不相同的连续子序列有k个。构造啊,,,,,,一点辙都没有使用连续的数字做成序列,可以省事的计算出不相同的子序列有多少个。使用n个1,那么不相同子序列有n种。使用n个1和m个2,那么不相同的子序列有n+m+n*m种。使用n个1,m个2和l个3,那么不相同的子序列有n+m+l+n*m

2015-08-12 09:25:01 893 2

原创 hdu5375(2015多校7)--Gray code(dp)

题目链接:点击打开链接题目大意:给出不完全的二进制编码,其中包含'0','1','?',‘?’可以是0也可以是1,同时给出格雷码中每一位对应的权值,将二进制编码转化为格雷码后,对应位如果是1,那么累加权值,求权值最大是多少?将二进制编码转化为格雷码的方法:二进制码:a[n-1]  a[n-2]  ,,,, a[2]  a[1]  a[0]格雷码:   b[n-1]   b[n-2]

2015-08-11 19:42:09 667

原创 hdu5371(2015多校7)--Hotaru's problem(Manacher+线段树)

题目链接:点击打开链接题目大意:定义一个子串,子串由三部分组成,其中第一部分和第三部分相同,第一部分和第二部分对称。给出一个n个数的序列,问序列中最长的符合要求的子串的长度。例如2 3 4 4 3 2 2 3 4,第一部分2 3 4,第二部分4 3 2 ,第三部分2 3 4,符合条件。题目的大意可以转化成求两个回文串,其中第一个回文串的右侧和第二个回文串的左侧重叠。首先使用Mana

2015-08-11 19:31:30 1233

原创 hdu5358--First One(双指针)

题目链接:点击打开链接题目大意:给出一个序列,其中S(i,j)代表a[i]到a[j]的和,然后计算的和。其中包含了向下取整,所以我们可以想到,log(2,S(i,j))向下取整后最大也就是33,所以我们可以寻找log值相同的段,对于以每一个数为起点,都有可能存在一段连续的序列,他们的log值是相同的,,,一开始的做法是枚举起点i,然后对每一段log值计算一个区间(r1,r2),通过二分

2015-08-10 16:18:12 860

原创 hdu5360--Hiking(优先队列)

题目链接:点击打开链接题目大意:邀请n个人去旅游,给出每个人同意邀请时对人数的限制条件:最小人数和最大人数,一旦接收邀请就不会再退出,求一个序列,在这个序列中可以邀请到最多的人去旅游。首先对n个人的最小人数限制由小到大排序,记录当前已经接受邀请的人数,然后将满足最小人数的人加入优先队列,优先队列按照最大人数由小到大排列,每次吐出的都是最大人数限制的最小值,如果当前的人数小于等于最大的人数就

2015-08-10 10:22:58 694

原创 hdu5355--Cake(构造)

题目链接:点击打开链接题目大意:给出n块蛋糕,现在有m个人要分蛋糕,要求分的大小是一样的,并且蛋糕不能切开,问能不能分成,并输出可以分成的方法。计算蛋糕的和sum,如果sum不能整除m,或者sum/m同样也就得到n >= 2*m-1,就是可以的,所以可以先计算出(n-2*m+1)%(2*m)+2*m-1,先拿出2*m-1个来,那么剩下的蛋糕中,每连续2*m个都可以组成一个相同的数值(小

2015-08-10 09:48:06 835

原创 hdu5353(2015多校6)--Average(贪心)

题目链接:点击打开链接题目大意:有n个人围城一个环,每一个人手里都有一些糖果,第i个人有ai块。现在有三种操作:第i个人给第i+1个人一块。如果i有第i+1个人给第i个人一块。如果i+1有什么都不做。第i个人和第i+1个人之间,可以选择一种操作并执行,问最终能不能让所有人手里的糖相等。当n = 1 时,永远是YES当n = 2 时,注意1和2之间只能有一种操作,不存

2015-08-07 16:00:27 1178

原创 codeforces(567D)--D. One-Dimensional Battle Ships

D. One-Dimensional Battle Shipstime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputAlice and Bob love playing o

2015-08-07 10:09:45 1300

原创 codeforces(567C)-- Geometric Progression

Geometric Progressiontime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputPolycarp loves geometric progressions

2015-08-07 09:47:09 1060

原创 codeforces(567A)--A. Lineland Mail--B. Berland National Library

A. Lineland Mailtime limit per test3 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputAll cities of Lineland are located on the 

2015-08-07 09:32:20 1304

原创 poj3301--Texas Trip(最小正方形覆盖)

题目链接:点击打开链接题目大意:给出n个点的坐标,现在要求一个正方形,完全包围n个点,并且正方形面积最小,求最小的正方形面积。表示不能理解为什么面积随着角度的变化是一个单峰的函数,等待大牛告诉一下,,,如果面积随角度变化是单峰的函数,那么自然就可以想到是三分,按照题目要求求正方形最小的面积,如果正方形是平行于x轴的,那么正方形面积是x的最大距离*y的最大的距离。然后旋转正方形,在0到9

2015-08-06 19:14:01 3287

空空如也

空空如也

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

TA关注的人

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