自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Enmity_Dark

残霞撕破绯红的黄昏,期待下一个新的黎明。

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

原创 [dp] hdu 5492 Find a path

题意:从左上角走到右下角,路径的最小方差是多少,要求输出方差*(N+M-1)思路:首先我们化简一下方差公式发现答案为(n+m-1)*Σai^2-sum^2  sum为路径取的数的和因为a[i]我们设dp[i][j][k]代表走到(i,j)位置和为k的最小平方和是多少然后转移就好了。代码:#include"cstdlib"#include"cstdio"#in

2015-09-28 15:18:31 499

原创 [思路题] hdu 5491 The Next

题意:找一个最小的比D大的且二进制数含有1的个数在 s1~s2 之间。保证输出的D的二进制数也在s1~s2之间思路:因为D符合题意,所以我们先考虑如果D%2==0,那么加个1会不会超过s2,不会的话 答案就是D+1那么如果会或者不是1,那么肯定D要发生进位了。因为要比D大,所以我们把D二进制最后一个1之前的第一个0变成1,这之后都为0然后从最后开始补1直到符合s1为止

2015-09-28 15:06:45 452

原创 [思路+组合数] hdu 3398 String

题意:给你n个1和m个0,让你拼成n+m长度的并且所有前缀的1都不少于0的个数的串,问有多少种方法。思路:将构造字符串的过程转化到二维坐标上去,1用y表示,0用x表示,从坐标(0,0)出发,0代表向右走(x增加),1代表向上走(y增加),因为0有m个,1有n个,所以最后到达的坐标为(m,n) ,单纯考虑从0,0走到m,n一共有C(n+m,m)种方法,又因为任意前缀中1的

2015-09-25 14:09:12 479

原创 [dp] hdu 5282 Senior's String

题意:学姐姐非常喜欢字符串,所以学弟送给了她两个字符串作为礼物。两个字符串分别为X,Y。她非常开心,但在开心之余她还想考考学弟。她定义L为X与Y的最长公共子序列的长度(子序列在字符串内不一定连续,一个长度为L的字符串有2L个子序列,包括空子序列)。现在学姐姐取出了X的所有长度为L的子序列,并要求学弟回答在这些子序列中,有多少个是Y的子序列。因为答案可能很大,所以

2015-09-17 17:38:33 463

原创 [思路题] hdu 5414 CRB and String

题意:给S,T两个串,可以无限次选择在S串里一个字符后面添加一个字符,但是添加的这个字符不能和选择的字符相同,问S串能不能变成T串。思路:经过观察发现,如果S和T长度一样直接判。如果不一样的话,只要满足1、S里面的所有字符的顺序都在T串里出现过2、T前面相同的字符和S的前部分能匹配这里两个条件,就能构成。代码:#include#include#include

2015-09-15 15:43:01 439

原创 [卢卡斯定理+中国剩余定理] hdu 5446 Unknown Treasure

题意:给你N,M,K,求C(N,M)对K个素数的乘积取模的结果。思路:因为每个素数都不超过10^5,所以我们可以用lucas求出对于每个素数的答案然后再用中国剩余定理求最后的答案。这里要注意的就是中国剩余定理中会爆long long 所以需要用快速乘法。代码:#include#include#include#include#include#include#i

2015-09-15 15:05:05 475

原创 [思路题] cf 571A Lengthening Sticks

题意:给a,b,c问以a+x、b+y、c+z为三边且x+y+z思路:因为l为10^5,所以肯定是一遍过的枚举我们可以假设哪条边是最长的,然后去枚举长度。这时候我们要想到正难则反。我们计算出不能够成三角形的数量,再用总共的减去就好了。总共的话,我们假设x+y+z=n(0对于每个n,我们看成长度为n的尺子,每个刻度可以切2刀。所以就是(n+1)+n+(n-1)+..

2015-08-23 16:19:05 816

原创 [概率dp] hdu 5378 Leader in Tree Land

题意:给你一颗以1位根节点的树,我们定义对于每个子树,节点权值最大的权值记为这个子树的权值,为你将1~n放到这个树里满足最大权值只有k个的组合数是多少。思路:我们可以知道以每个节点为子树,且根节点权值最大的概率是多少,不是的概率是多少。那么其实问题就变成了 我们在n个物品里面,每个物品拿的概率是pi不拿的概率是1-pi问你拿k个物品的概率是多少然后最后乘n!就好了。中间

2015-08-12 20:08:03 608

原创 [单调栈] poj 3250 Bad Hair Day

题意:一排母牛站成一排,给出牛的身高,每只牛都只能往右看,对于每只母牛有一个c[i]c[i]代表i能看见多少只牛,矮的牛看不见高的牛,问所有c[i]的和是多少。思路:我们转换一下,其实就是求对于每只母牛能被看见多少次,显然是对于它往左单调递增的牛都能看见它那么我们维护一个这样的单调栈,每次都将小于等于它的出栈,那么栈中的元素的个数就是能看见它的个数这样再把该元素插入栈就

2015-08-10 15:29:40 555

原创 [字典树] Codeforces 557E Ann and Half-Palindrome

题意:给一个长度为5000的ab串,问你第k大的半回文子串是什么所谓的半回文串就是下标是奇数的位置前后相等就好了。思路:首先发现串的长度只有5000,可以做一个类似区间dp的预处理处理出dp[i][j]代表第i到j子串是不是半回文子串然后依次把原串的所有子串插入字典树,并在节点标记个数然后最后dfs一下k个就好了代码:#include"cstdlib"#inc

2015-08-05 13:25:08 668

原创 [单调队列] hdu 3415 Max Sum of Max-K-sub-sequence

题意:给n和k,再给你n个形成环的数问你连续不超过k个数的最大和是多少并输出区间,和一样以左端点最小,再一样以长度最小思路:我们记录前缀和sum[i]开一个单调队列维护sum[i-1]的值最小因为对于到当前位置的和为sum[i]-sum[j] 如果sum[j]越小,那么sum[i]就越大所以里面维护的就是到当前位置符合要求最小的sun[j]代码:#inclu

2015-07-27 13:31:16 621

原创 [多校2015.01.1010 容斥+迭代] hdu 5297 Y sequence

题意:给你一个n和一个r,求Y序列的第N项是多少。所谓的Y序列就是,从1开始,去掉能表示成a^b(2例如r=2序列就是:2,3,5,6,7,8,10,11,12,13,14,15,17....思路:我们应该能想到需要一个函数fun(x) 求的是1~x内在Y序列里的数有多少个这个其实不难,我们可以运用容斥原理,通过63以内的素数进行计算,并且最多做三遍,因为2*3*5*7

2015-07-26 14:59:48 760

原创 [多校2015.01.1002 单调队列] hdu 5289 Assignment

题意:给你n个人和一个k问你把这n个人分成多少个连续的子区间,要求区间每个数两两相差绝对值小于k思路:我们仅仅只需要对于当前位置,最左边那个和它绝对值相差大于等于k 的位置在哪假设对于i这个位置,最左边的位置是tep,不存在的话tep=0那么当且位置的贡献就是 sum[i]=min(i-tep,sum[i-1]+1);那么对于这个位置怎么求的话,我是使用了两个单调队列

2015-07-26 14:45:37 720

原创 [单调队列] poj 2823 Sliding Window

题意:给你n个数和一个k把n分成连续的n-k+1个区间第一行按顺序输出每个区间的最小值,第二行是最大值。思路:单调队列的模板题,这里注意的是插入队尾的时候需要二分加速代码:#include"stdio.h"#include"algorithm"#include"string.h"#include"iostream"#include"queue"#include

2015-07-25 10:40:12 600

原创 [多校2015.01.1012 博弈] hdu 5299 Circles Game

题意:在无限大的平面内给你n个圆,两个圆之间只可能是包含或者相离A和B每次选择一个圆,删除这个圆连通它所包含的所有圆谁不能选择圆删除了,谁就输了思路:所有圆可以构造成一棵树,然后按树上SG博弈来做就好了。树的删边游戏规则如下:    给出一个有 N 个点的树,有一个点作为树的根节点。    游戏者轮流从树中删去边,删去一条边后,不与根节点相连的部分将被移走。

2015-07-24 20:10:38 721

原创 [多校2015.02.1006 高斯消元] hdu 5305 Friends

题意:给你n个人m条关系每条关系包含a,b代表a和b可以是线上朋友也可以是线下朋友然后保证每个人的线上朋友数和线下朋友数相等问你有多少种组成方法思路:官方题解是爆搜+剪枝,然而并不会写。。比赛的时候想到用高斯消元来剪枝最后枚举自由元因为关系的话到了最后肯定有些关系是确定的。这样一定会消掉一些部分最后G++AC C++TLE。。代码:#incl

2015-07-24 14:54:15 578

原创 [多校2015.02.1004 dp] hdu 5303 Delicious Apples

题意:在一个长度为L的环上有N棵苹果树,你的篮子容量是K个苹果。每棵苹果树上都有a[i]个苹果。问你从0点出发最少要走多少距离能拿完全部的苹果。思路:我们考虑dp,dp[0][i]代表顺时针取i个苹果的最短距离。dp[1][i]代表逆时针取i个苹果的最短距离。那么设苹果的总是为sum那么ans=dp[0][i]+dp[sum-i]  (0代码:#include"

2015-07-24 14:42:09 757

原创 [多校2015.02.1009 构造] hdu 5308 I Wanna Become A 24-Point Master

题意:给你n个数,每个数都是n,然后把这n个数加减乘除,每个数都必须用一次,且只能一次,并且运算完的数也都得用一次。也就是做n-1次,问能不能得到24,输出过程 xi ? xj  第i个数与第j个数做?运算 这种形式思路:因为n有可能很大,那么肯定需要一种完美的构造最简单的方法是构造出4*6构造出4需要5个数,构造出6需要7个数也就是最少需要12个数,剩下的数就是相

2015-07-23 20:54:23 841

原创 [DLX重复覆盖] hdu 4735 Little Wish~ lyrical step~

题意:在一棵树上有n个节点,n-1条边,每条边有距离。每个节点会给你原来是男孩还是女孩。问最少要交换多少次,使得每个女孩都能被保护到。保护到的条件是女孩和最近的男孩的距离小于等于D思路:首先要求一下mp[i][j],就是任意两个点之间的距离这个方法随意都可以的。因为男孩只能放在树上,所以行为树,列也为树这样每次求出的cnt就是每次最多要有多少个男的在指定的树上

2015-07-23 10:39:17 732

原创 [DLX精确覆盖+打表] hdu 2518 Dominoes

题意:就是给12种图形,旋转,翻折,有多少种方法构成n*m=60的矩形思路:裸的精确覆盖,就是建图麻烦个人太挫,直接手写每个图形的各种形态需要注意的是最后的答案需要除以4代码:#include"stdio.h"#include"algorithm"#include"string.h"#include"iostream"#include"queue"#inclu

2015-07-22 19:22:53 667

原创 [DLX精确覆盖] hdu 4210 Su-domino-ku

题意:首先给你N块板(2*1或1*2)的,数字以及位置再给你9个单个的板,1~9,分别的位置然后问你如何放其他板(1*2或2*1)使得成为数独注意的是对于板子来说,含有的数字是唯一的也就是含有数字1和2的板有且只有1块思路:感觉自己太挫的,写了超级麻烦的建图列是5*9*9的前面的4*9*9就和普通的数独一样后面的9*9是代表放的板的数字 就是对于(i,j)这

2015-07-22 15:54:56 907

原创 [DLX精确覆盖] hdu 1603 A Puzzling Problem

题意:给你n块碎片,这些碎片不能旋转、翻折。问你能不能用其中的某些块拼出4*4的正方形。思路:精确覆盖裸题了建图就是看看每个碎片在4*4中能放哪些位置,这个就作为行。列就是4*4=16个位置再加上n个碎片也就是16+n然后注意下成立的判定就好了代码:#include"stdio.h"#include"algorithm"#include"string.h"

2015-07-22 13:33:11 613

原创 [DLX重复覆盖] hdu 2828 Lamp

题意:有N个灯M个开关每个灯的ON和OFF状态都能控制一个灯是否亮给出N行,代表对于每个灯哪些开关的哪个状态可以使得第i个灯亮思路:这里需要注意一个问题 如果开关1的ON 状态和开关2的ON状态能使得1号灯亮那么开关1、2同时处于ON的时候 1号灯也是亮的。意思就是只要有一个开关使得灯亮,灯就亮了。简单的DLX 重复覆盖行为每个开关的两个状态2*m行,列为n

2015-07-22 11:38:42 649

原创 [DLX精确覆盖] hdu 3663 Power Stations

题意:给你n、m、d,代表有n个城市,m条城市之间的关系,每个城市要在日后d天内都有电。对于每个城市,都有一个发电站,每个发电站可以在[a,b]的每一个连续子区间内发电。x城市发电了,他相邻的城市也有电,并且每个发电站只能启动一次,或者不启动。现在问,如何安排发电站的启动,保证每个城市d天都有电。输出发电方案,不发电的话输出0 0思路:一个简单的精确覆盖问题,就是建图比

2015-07-22 09:22:48 629

原创 [思路题] hdu 5288 OO’s Sequence

题意:非常纠结的题意。其实是把这n个数分成若干个长度任意的连续区间。对于每个区间,取一个数,如果这个区间里剩下的数中没有一个数是这个数的约数。那么说明这个数可取。问你对于所有的区间,一共能取多少个数。思路:类似的计算方式。比如 5 4 1 2 3 这5个数看成55 445 4 14 115 4 1 (2)4 1 (2)1 (2

2015-07-21 20:54:36 446

原创 [DLX重复覆盖] hdu 3957 Street Fighter

题意:每组数据输入有几个人,每个人有至多两种模式。每个人你选择的话只能选择一个人并且一种模式。但是要打败剩下所有人的所有模式。问最少要选几次。思路:以每个人的每个模式编号为行和列。然后需要记录一下,因为一个人的一个模式如果被选了那么这个人的另一个模式也不能选了。然后dance的时候判断一下就好了。代码:#include"stdio.h"#include

2015-07-21 20:39:07 467

原创 [DLX重复覆盖] hdu 3656 Fire station

题意:N个点,再点上建M个消防站。问消防站到每个点的最大距离的最小是多少。思路:DLX直接二分判断TLE了。这时候一个很巧妙的思路我们求的距离一定是两个点之间的距离因此我们把距离都求一遍排序一下。然后用下标二分  这样就AC了。代码:#include"stdio.h"#include"algorithm"#include"string.h"#inclu

2015-07-21 10:24:25 602

原创 [DLX重复覆盖] hdu 3498 whosyourdaddy

题意:给N个怪,M个关系。每个关系代表a和b是邻居。然后问每次攻击你可以攻击一个怪以及它的全部邻居问最少需要几次攻击能把怪全部杀死。思路:怪为行和列,然后对面每个怪的邻居都是这个怪的列建图。也是比较裸的重复覆盖。代码:#include"cstdlib"#include"cstdio"#include"cstring"#include"cmath"#inc

2015-07-21 09:19:52 686

原创 [DLX重复覆盖] hdu 3529 Bomberman - Just Search!

题意:给你N*M的图,*是破坏不了的墙,#是需要你破坏的前,.是可以放炸弹的地方。每个点只能放一个炸弹,同时放炸弹,炸弹是四个方向无限距离,能被墙挡住。问你最少放多少个炸弹,能把所以#炸掉。思路:对每个.进行编号,以及每个#进行编号。.为行,#为列建图。跑DLX重复覆盖即可。代码:#include"cstdlib"#include"cstdio"#inclu

2015-07-20 21:48:47 515

原创 [DLX重复覆盖] poj 1084 Square Destroyer

题意:n*n的矩形阵(n求在已经拿走一些火柴的情况下,还需要拿走至少多少根火柴可以把所有的正方形都破坏掉。思路:对于每个位置遍历所有可能的边长,确定这个边长下的正方形的边对应的都是数字几,并且把正方形从1开始编号。然后根据编号,把正方形和数字建边记录方便下面建图。然后以火柴棍为行,正方形为列,建立dancing link然后求解。这里注意的是,需要强行插入某些行。

2015-07-20 20:41:26 987

原创 [数位dp] hihoCoder 1033 交错和

题意:问你[l,r]区间内的所有满足各个位一加一减最后和是k的全有数的和。思路:数位dpdp[site][sum][p][k] 代表site位,和是sum,当前是加还是减,最后和是k的数的和以及个数也就是存成结构体。然后求的时候ans.cnt=(ans.cnt+cur.cnt)%mod;ans.sum=(ans.sum+cur.sum+cur.cnt*tep)%mod

2015-07-20 19:35:21 894

原创 [DLX重复覆盖] fzu 1686 神龙的难题

题意:中文题思路:想到是一个重复覆盖的问题,然后就是最少放多少个能覆盖满。建图的话就是先标记一下哪些点有怪物,最多就是n*m个怪物。然后就是行。行的话就看输入的x和y能框住多少的范围了。然后四重循环遍历一遍建边就ok了。代码:#include"stdio.h"#include"algorithm"#include"string.h"#include"ios

2015-07-20 17:44:30 589

原创 [DLX+bfs] hdu 4069 Squiggly Sudoku

题意:给你9*9的矩阵。对于每个数字,能减16代表上面有墙,能减32代表下面有墙。。。最后剩下的数字是0代表这个位置数要求,不是0代表这个数已知了。然后通过墙会被数字分成9块。然后做数独,这里的数独不是分成9个3*3的小块而是通过墙分成的。思路:首先通过数字作出墙。然后bfs求连通块,dfs也可以。目的是分块。然后就是dlx数独模板题了。这里要注意的是如果找到答

2015-07-20 16:19:32 930

原创 [DLX] hust 1017 Exact cover

题意:给你N个包,要拿到M个东西(编号1~M每个只能有一个)然后每个包里有k个东西,每个东西都有编号。思路:舞蹈连模板题代码:#include"stdio.h"#include"algorithm"#include"string.h"#include"iostream"#include"queue"#include"map"#include"vector"#i

2015-07-20 15:19:55 564

原创 [AC自动机+dp] whu oj 1572 I - Cyy and Fzz

题意:给你n个串,求长度为l的串包含n个串个数的期望。思路:自动机dp[i][j][k] 长度为i在节点j状态为k的概率。然后遍历一遍求期望。代码:#include"cstdlib"#include"cstdio"#include"cstring"#include"cmath"#include"queue"#include"algorithm"#include"

2015-05-13 23:52:32 668

原创 [贪心+后缀数组] poj 3623 Best Cow Line, Gold

题意:给N个字符,每次只能取第一个或者最后一个,问构成最小字典序的串是什么。思路:贪心,每次取字典序最小的串,的首字符。其实就是l和r比较一下构成的串那个字典序小。这里运用后缀数组要实现O(1)的查询。将原串反拼进串内做da。然后根据ra判断。代码:#include"cstdlib"#include"cstdio"#include"cstring"#inc

2015-05-07 14:57:57 921

原创 [区间dp] poj 3280 Cheapest Palindrome

题意:给出增加或减少某个字符的代价。给你一个串,求让它变成回文串的最小代价。思路:和求次数一样。然后注意的是其实增加和减少的性质是一样的。所以对于每个字符,取修改代价最小的就行了。意思就是取增加和减少的最小值。其他就同求次数的区间dp了。代码:#include"cstdlib"#include"cstdio"#include"cstring"#includ

2015-05-07 14:27:06 556

原创 [思路题] poj 3663 Costume Party

题意:给n个数,和m,问从n个数中选出两个数x,y使得x+y思路:预处理所有的数,默认x对于一个x,使得满足条件的y一定是 [x,m-y]范围内的。就算一下有多少个数。然后单独算一下相等的情况。代码:#include"cstdlib"#include"cstdio"#include"cstring"#include"cmath"#include"queue"#

2015-05-07 14:23:16 694

原创 [贪心] poj 2376 Cleaning Shifts

题意:给n个线段,问你覆盖满[1,T]内的每个点,最少需要多少条线段。思路:贪心,按照x坐标升序,y坐标降序排。默认先放入第一条。然后根据从属关系继续放线段。注意的一点是 [1,2]和[3,4]就可以覆盖满[1,4]了。然后注意因为默认放入了第一条,所第一条的状态要特判。包括 第一条如果是[1,T]的话 输出1.代码:#include"cstdlib"#i

2015-05-07 14:17:07 612

原创 [水+bfs] poj 3669 Meteor Shower

题意:一个迷宫内有有M个炸弹,分别在(xi,yi) 处并在ti时刻爆炸,爆炸包括本身和四周一个单位。也就是说爆炸完点就不能走了。然后人在(0,0)点,为走多少步能到达一个永远安全的点,否则输出-1.思路:首先预处理所有炸弹,标记每个点在哪个时刻之前是可以通过的。然后人走一遍bfs就ok了。代码:#include"cstdlib"#include"cstdio"#

2015-05-07 14:12:02 647

空空如也

空空如也

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

TA关注的人

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