自定义博客皮肤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)
  • 资源 (1)
  • 收藏
  • 关注

转载 关于HDU-4373 Mysterious For 中结论的证明

题目链接这个题本身是一个很简单的Lucas定理加上中国剩余定理,不过这个题的结论很有意思。题中给出了这种类型的嵌套循环:for(int i=0;i<n;++i) for(int j=i;j<n;++j) for(int k=j;k<n;++k) ...也就是每一层循环都是从上一层循环的当前位置开始。结论是,循环上限为...

2017-06-27 15:48:00 76

转载 CodeChef-MOU2H Mountain Holidays 2 【DP】

题目链接题意有一座山,给出山中每一点的高度。现定义爬山的方法,可以从一个点传送到另一个点,也可以移动到相邻的一个点,但两种走法都必须向右。定义爬山的一个方案是爬山的过程中在相邻点移动时产生的高度差的序列。求爬山的不同方案数。分析将这个题的模型抽象出来,这个题就等价于:不相同子序列的计数问题设数列为\(A[i]\),状态\[dp[i] \leftrightarrow 以A[i]...

2017-04-25 17:30:00 103

转载 CodeChef-ANDMIN Range Minimum Queries 【线段树】

题目链接题意对数列进行RMQ操作,同时要求支持一种修改操作:将L到R间的所有数A[i]变成A[i]&X。分析关键是如何对线段树的更新操作进行优化。首先因为按位与操作并不能直接影响一个区间的性质,因此也就没有很好的方法用懒标记来记录。但是考虑按位与操作本身的性质,与操作的操作数中只有为0的位才会对原数可能造成影响,而若原数该位本身就为0则不会造成影响。因此我们可以以此性质判...

2017-04-22 17:52:00 89

转载 关于《训练指南》中的“翻棋子游戏”

刘汝佳的《训练指南》组合游戏部分中写了“翻棋子游戏”这样一个问题:一个棋盘上每个格子有一个棋子,每次操作可以随便选一个朝上的棋子(x,y),代表第i行第j列的棋子,选择一个形如(x,b)或(a,y)(其中b < y,a < x)的棋子,然后把它和(x,y)一起翻转,无法操作的人输。对于该问题,书上的分析如下:把坐标为(x,y)的棋子看成大小分别为x和y的两堆石子,则本题转化...

2017-04-21 21:26:00 262

转载 CodeForces-796E Exam Cheating 【DP】

题目链接题意在两个数轴上有一些整数(n<1000),用p个(p<1000)个长度小于等于k(k<=50)的区间去覆盖这些整数,求最多多少个整数能够被覆盖(相同的不重复计数)分析易想到这个四维DP的状态:\[dp[n][p][r1][r2] \leftrightarrow 到n用了p个区间,上面覆盖的最后一个区间的长度为r1,下面的覆盖的最后一个区间的长度为r2...

2017-04-12 18:48:00 141

转载 ZOJ-3953 Intervals 【贪心】

题目链接题意给N个区间,删掉其中一些区间,使得不存在任何三个互相相交区间。求删掉区间的最少数量以及哪些区间。分析贪心思路:先将所有区间按左端点从小到大排序(右端点无所谓)。选择当前左端点最小的三个区间,如果互相相交,删除右端点最大的区间;若不互相相交,将其中右端点最大的两个区间再与下一个区间进行判断。正确性分析:由于是从左到右扫描,当前三个相交,去掉右端点最大的能够最大的减少对...

2017-04-10 20:56:00 55

转载 ZOJ-3956 Course Selection System【0-1背包】

题目链接题意有n种课可供选择,每一种课有一个H值(1<=H<=10000)和C值(1<=C<=100),每种课只能选一次。现要求选一些课使得下式的值最大:\[(\sum^m_{i=1}H_{x_i})^2-(\sum^m_{i=1}H_{x_i}) \times (\sum^m_{i=1}C_{x_i})-(\sum^m_{i=1}C_{x_i})^2 \]...

2017-04-10 19:29:00 63

转载 HDU-3045 Picnic Cows 【DP+斜率优化】

题目链接题意有N只奶牛,每只奶牛有一个满意度,如果把一些奶牛分到一个组内,那么这些奶牛的满意度都会下降到组中满意度的最小值。现在规定每个组至少T只奶牛,求总的满意度变化的最小值分析从这个题中我学到了斜率DP中规定了转移距离的最小值时的处理方法(也就是i必须从小于等于i-T的状态转移而来) 状态不难想出,先对奶牛的满意度排个序,设dp[i]为前...

2017-03-11 16:31:00 48

转载 HDU-3480 Division 【DP+斜率优化(二维)】

题目链接题意定义一个集合的花费是这个集合中的最大值减最小值的平方。然后给定一个集合S,求对这个集合的一个覆盖,使得所有子集的花费和最小。分析本身这个题是非常简单的,只是今天看了别人的题解,我发现我以前写的二维斜率优化都写复杂了。直接外层循环用未被优化的那一维就行了,不用像我以前那样维护一个k维的单调队列……我说怎么不对劲,每次看别人的代码都那么...

2017-03-11 15:26:00 82

转载 POJ-1180 Batch Scheduling 【逆向DP+斜率优化】

题目链接题意一台机器有N个物品要处理,每个物品的处理时间是Ti,花费系数是Fi,可以把这N个物品分包处理,打包需要花费时间S,机器每处理完一包物品就会把当前时间显示出来(刚开始处理时时间为0),那么这包中每个物品的花费就是显示的这个时间乘以其花费系数。求处理完所有物品的最小花费。分析朴素的想法设状态为处理前i个物品的最小花费,但是单考虑前i个物...

2017-03-05 15:21:00 56

转载 HDU-2829 Lawrence 【斜率优化DP】【四边形不等式优化】

题目链接题意背景故事大概是说一战时一个英国间谍Lawrence要指挥突击队去炸毁奥斯曼帝国的一些铁轨。铁轨上有n个火车站,按线性排列,每个火车站上有一个权值,最后整个铁路的价值就是每一段联通铁路段上的火车站权值两两相乘的和加起来(联通段上只有一个车站就是0)。Lawrence有m次炸毁两个车站之间铁路的机会,求Lawrence最终可以使得这段铁路价值变成的...

2017-02-26 15:31:00 68

转载 POJ-1260 Pearls 【DP】

题目链接题意某公司需采购c种珍珠,知道每种珍珠的价格和需要的量。购买时,若要买某种珍珠,需额外支付10个该种珍珠的价钱。同时价格低的珍珠可以用价格高的珍珠代替。求最少能花多少钱完成采购。分析解决本题关键要想到这一点:若第i种珍珠可以被第j种珍珠代替(i< j且珍珠价格递增),则第i~j-1种珍珠都应当被第j种珍珠代替。证明很简单,...

2017-02-25 15:25:00 58

转载 CodeForces 449D Jzzhu and Numbers 【DP+容斥】

题意给定一个n元集,元素为ai,求其有多少个子集,使得其中的元素ai1,.....aik满足 ai1&ai2&⋯&aik=0 (1⩽n,a⩽106)分析要是n和a的范围小一些自然可以直接用01背包做,然而这里a与n都达到了1e6的范围,则要另寻他法。 先求有多少种情况使得与出来的结果不为0,考察有多少元素在某些二进制位上为...

2017-01-19 15:06:00 49

转载 CodeForces-450E Jzzhu and Apples 【数学+贪心构造】

题意将1到n的数分成不互质的数对,问最多能分出多少对?分析贪心构造,先打出小于等于n的所有素因子,从最大的素因子开始(因为越大的因子,在数列中的倍数越少),两两匹配其倍数。若刚好是奇数个,则将其2倍留下,因为若能匹配出至少一对,其二倍必在数列中,同时,其二倍除了其本身以外必然只有2这个因子,最后组合2的倍数时,必然可以将其考虑进去。AC代码...

2017-01-19 10:41:00 153

转载 HDU 5800 To My Girlfriend 【DP】

题意有n个物品,每个物品的重量是ai,求以下式子: ∑ni=i∑nj=1∑nk=1∑nl=1∑sm=1f(i,j,k,l,m)(i≠j≠k≠l) 其中f(i,jk,l,m)表示在所有物品中必选i和j,且必不选k和l,重量总和为m的选法总数。分析设状态dp[i][j][x][y]为选到第i个数时,总重量为j,必选了x个和必不选y个的选法总数。则在这个...

2017-01-19 10:04:00 65

转载 HDU 5726 GCD 【GCD】【ST表+二分】【线段树+暴力枚举】

题意给一串数列,求区间GCD和整个数列中与该区间GCD相等的区间数分析首先区间GCD易求,用能求RMQ的方法都可以,比如ST表、线段树。关键是如何求第二个问题,这里有两种做法: 方法一 利用GCD的性质,若固定区间左端点,增大右端点,区间GCD必然非递增。因此我们可以遍历区间左端点,用二分求出以该端点起始的区间的所有gcd的情况及其对应的区间个数,...

2017-01-17 19:35:00 66

转载 HDU 3401 Trade 【DP+单调队列优化】

题意给出接下来T天每天卖出、买入股票的价格,每天买入、卖出的上限,持有的股票的总上限,并且两次股票操作之间有时间间隔,求T天之后最多能赚多少钱。分析很容易可以写出状态转移方程: dp[i][j]↔第i天持有j的股票能获得的最大利益 dp[i][j]=max(dp[i−1][j],max(dp[pre][j+k]+BP[i]∗k),max(dp[pre]...

2017-01-16 23:32:00 45

转载 POJ 3017 Cut the Sequence 【DP+单调队列优化+平衡树】

题意给定一串数列,要求把它划分成一些小段,每个小段的和不超过M,找到一种分段方法使得每一段的最大值的和最小,求这个最小值分析易得转移方程 dp[i]=min(dp[k]+max(num[k+1],⋯,num[i])) 其中∑ij=k+1num[j]<=M,朴素的做法显然是O(n2)的。观察可得dp数组是递增的,然后对于一个确定的分段最大值,以...

2017-01-16 10:14:00 93

转载 CodeForces 342D Xenia and Dominoes 【DP+容斥】

题目链接题意在一个3*n的桌子上放一些1*2的多米诺骨牌(横竖放都可以),桌子上有一些不能放置的格子,除了这些不能放置的格子以外,还要求一个指定的格子不能被多米诺骨牌覆盖,同时这个空位可以通过移动附近的骨牌来转移到其他地方,剩下的格子要被全部覆盖,求放置的种数。分析先不管哪个预留的空位,对于一个已知的棋盘,一列一列转移状态。设状态: dp[i...

2016-11-27 16:46:00 92

转载 HDU 4348 To the moon 【主席树+区间修改】

persistent segment tree 题目链接题意给一串初始序列An,并且初始的时间是0,定义以下操作: 1. 给一个区间内的数加上一个值,并且时间加一 2. 查询当前某区间的区间和 3. 查询过去某个时间的某个区间和 4. 回到某个时间序列大小和查询数量级为1e5分析SPOJ上也有这个题,但HDU卡内存严格一些,所以...

2016-11-16 00:25:00 65

转载 SPOJ 3267(DQUERY) D-query 【主席树】【离线树状数组】

题目链接 persistent segment tree题意给一串数列,有q个(1e5的数量级)询问,求i到j间的不同数字的个数分析这个题有几种做法,可以用主席树、离线树状数组,还可以直接用莫队。这里写一下主席树和离线树状数组的做法主席树做法若用线段树,父子节点之间存的状态不好合并,这时先考虑一个简化的问题:对于一个序列,它的某个...

2016-10-26 19:44:00 47

转载 POJ 3225 Help with Intervals 【线段树】

题目链接 segment tree题意给定集合S,S最初是空集。现对其进行一些操作:与一个集合求交、并、补、对称差。用区间表示出最终的S分析这个题有许多注意的地方(当然可能是我写法不太好),肝了一上午…… 那么首先想到用线段树来解决这个区间覆盖的问题。虽然是实数区间,但注意到区间端点始终是整数。于是我们整体乘2,用偶数来代表整数点,用奇数来...

2016-10-26 12:00:00 65

转载 HDU 4288 Coder 【线段树】

题目链接segment tree, single-point update题意维护一个集合,这个集合可进行以下操作: + 向其中添加一个数(保证之前没有这个数) + 向其中删除一个数(保证集合中有这个数) + 求所有下标%5==3的数的和(从小到大排列) 完成给定的操作,返回sum的值分析求区间和问题,尝试使用线段树。然而是求的有步长的和,...

2016-10-20 21:04:00 61

转载 HDU 1542 Atlantis 【线段树+扫描线】

题目链接 segment tree, scanning line题意矩形面积的并分析最基础的扫描线求矩形面积并的题,离散化后用线段树,这个思想很简单,不再赘述。记录在这里主要是这个线段树的写法,适用于区间反复覆盖,RE了很多次,记在这里方便以后查看。AC代码//HDU 1542 Atlantis//AC 2016-10-19...

2016-10-19 22:41:00 64

转载 Codeforces 732D Exams【二分+贪心】

题目链接 binary search, greedy题意在接下来的n天要通过m门课程,给出每门课程需要复习的天数,然后给出每天能够参加哪门考试(0代表没有考试),每天可以选择复习任意一门课程,或者参加考试(前提是已经复习了应有的天数,可以不连续)或者什么都不做,求最短通过所有课程的时间分析当时做这题时贪心都想出来了,居然没想到用二分…… 贪心的思路...

2016-10-19 20:00:00 35

转载 HDU 2795 Billboard 【线段树】

题目链接 Segment Tree, single-point update题意有一块h*w的告示板,要向上面贴一些广告,每张广告都想被贴得尽量靠顶端,然后再尽量靠左。现有n块尺寸分别是1*wi的广告(高度都为1)依次贴上去,问没张广告贴得位置。分析首先实际贴得行数肯定是min(h,n),开始没注意这个,被数据范围吓到了。然后这个问题只要记录每一...

2016-10-16 15:25:00 48

转载 2015-2016 ACM-ICPC, NEERC, Northern Subregional Contest Problem J 【二分+DP+单调队列】

题目链接题意有n个地铁站,全部成线性排列,有n-1种地铁票,第i种地铁票的价格为p_i,并且能坐i站(也就是在第k个站能够到达[k-i,k+i]中的站)。现在想从起点站坐到终点站,地铁在相邻两个站之间运行花费1s(这里原文是“get from a stop to the next one in just one minute.”有歧义,坑了好久),给出在每个站...

2016-09-11 15:04:00 70

转载 HDU 5521 Meeting 【拆点+最短路】

题目链接题意给m个由图中结点组成的点集,点集中的点两两连通且距离为相等的ti。现有两人分别从1和N点处同时出发吗,问能否相遇以及相遇的最短时间。分析很容易想到直接分别以点1和点N为起始点求最短路,再遍历各个点即可求得最短相遇时间。然而建图上却有问题:这个题中的边是以点集的形式给出,极端情况下可能会出现有1E12条边的稠密图。 这时就要利用点集中的...

2016-08-13 10:03:00 47

转载 POJ 3255 Roadblocks 【次短路】

题目链接题意给N个节点,R条双向边求从结点1到N的次短路径分析通过这个题学习了一下次短路的求法。求K短路可以用A*+Dijkstra,有机会再学一发。 求次短路可以改进一下求最短路的Dijkstra,对每个结点不仅记录最短距离,同时也记录其严格的次短距离(不能等于最短路),同时再把松弛的条件改为满足次短的情况。具体来说,首先入队的条件有两个:...

2016-08-13 09:23:00 54

转载 LightOJ 1013 Love Calculator 【DP(LCS变形)】

题目链接题意给两个字符串,求长度最短的字符串的长度以及个数,使得给出的两个串都是这个串的子串。分析LCS的变形,首先长度自然是len(s1)+len(s2)-len(LCS)。关键是有多少个这样的字符串。现在知道有两种DP的方法。题意给两个字符串,求长度最短的字符串的长度以及个数,使得给出的两个串都是这个串的子串。分析L...

2016-08-09 16:51:00 63

转载 LightOJ 1017 Brush (III) 【DP】

题目链接题意墙上有N个污点,知道它们的坐标(xi,yi)。现有一把宽度为w的刷子,将刷子固定在一个高度就可以沿着平行于x轴的方向刷除污点。总操作次数最多为k,求最多能够刷除掉多少污渍分析我们以刷子底部的y坐标来刻画刷子的位置。首先既然刷子会沿着平行x轴的方向刷出这个高度所有的污点,那么可以不管污点的x坐标。 先预处理一下,把污点高度从大到小排个序(因...

2016-08-09 15:31:00 42

转载 POJ 3666 Making the Grade 【DP+离散化】

题目链接题意有N个平台,它们的高度分别为Ai。先想把这些平台的高度变得非严格单调,改变一个平台的高度的花费就是高度的改变量,问最小的花费是多少。分析定义状态: dp[i][j]↔前i个平台高度变成单调递增并且第i个平台高度为j所需的最少花费所以状态转移:dp[i][j]=max(dp[i−1][1→j])+|Ai−j|但是Ai...

2016-08-09 14:59:00 63

转载 POJ 1065 Wooden Sticks 【贪心】

题目链接题意给n个整数对,定义数对间的大于关系是(w1,l1)≤(w2,l2)↔w1≤w2andl1≤l2,求用这些数对最少能组成几组非递减序列分析LIS的变形,但考虑到原来给的这些数对并没有顺序,可以随便选择,因此没有必要用DP求LIS。可以倒序排序(先按第一个数排序,再按第二个数排序)后,贪心,即从左到右遍历,选择当前还没有被选择的数对中的最小...

2016-08-09 14:41:00 55

转载 HDU 1058 Humble Numbers 【DP】

题目链接题意定义“Humble Numbers”是素因子只含有2,3,5,7的数,求第n个Humble Number是多少。分析显然直接求出某个范围以内所有的humble Numbers,关键是如何枚举才能保证枚举出来的数是递增的。 这里用DP来实现,记录当前没有乘以某个因子中的最大数再乘以这个因子得到的数中的最小值,这样说很抽象,看代码:...

2016-08-09 14:21:00 63

转载 LightOJ 1021 Painful Bases 【状压DP+数位DP】

题目链接题意求由一些B进制的数的全排列中能被K整除的数的个数分析题中B最高达到16,直接枚举排列显然不可能。考虑数位DP,但同时取得每个数要不同,所以需要记录用过哪些数,因此要用到状压DP状态dp[S][r]↔用了数集{S}中的数后除以K余数为r的数的个数转移方程dp[S][r]=∑a∈{S}dp[S−{a}][r′]其中 (r...

2016-08-04 18:21:00 46

转载 POJ 3280 Cheapest Palindrome 【区间DP】

题目链接题意给你一串字符串,并给出添加以及删除(在任意位置)每种字符的花费,问把这个字符串变成回文串所需的最少花费分析经典的区间DP状态设 dp[i][j]⇔将子串S(i,j−1)变成回文串的最小花费习惯设成前闭后开区间状态转移方程如果当前子串最前面和最后面的字符本来就相同,当前的最小花费就等于里面的子串的最小花费。而若不...

2016-08-02 21:37:00 51

转载 Aizu 0513 Paint Color【离散化+BFS】

题目链接 (日语题……(:зゝ∠))题意在直角坐标系的第一象限中有一块m*h的板子,在上面贴上了一些矩形的胶带,现在告诉每个胶带的左下坐标和右上坐标,求板子上有多少个不连通的空白区域(没有贴胶带)分析坐标范围太大,1e6左右,直接按坐标来BFS显然不可能。但考虑到胶带数量只要1e3,可以根据胶带的位置对坐标离散化处理。离散化方法x和...

2016-08-02 17:09:00 72

转载 POJ 2566 Bound Found 【Two Pointers】

题目链接题意给一串数列,再给一个目标值(非负),求这个数列中最接近目标值的区间和的绝对值分析原数列中的数有正有负,用Two Pointers不能保证向左向右移动一定会使区间和变大或变小,而排序又会打乱数列的顺序。同样,如果先算出前缀和,在前缀和上移动同样不能保证向着期望的方向变化。但是,对前缀和排序不影响结果,只要记录某个前缀和对应的原下标,排序后...

2016-08-01 14:56:00 63

转载 POJ 3679 Median 【二分】

题目链接题意给N(N小于等于1e6)个数,求出由它们每个数的差组成的数列的中位数(若有偶数个,取左边的一个)分析1e6的数据量,直接算是O(n2)的数据量,肯定T。考虑用二分来枚举中位数。然后二分中的判断有不同的方法:1.O(nlog2n)做法: 用两次二分。先把原来的所有数排序,排序之后,选定一个数,其后面的数与其的差就是递增的...

2016-08-01 11:35:00 44

转载 UVA 1616 Caravan Robbers 【二分+贪心+枚举分母】

题目链接题意给n个互不相包含的区间,求出一个长度的最大值,使得可以在每个区间中选出这样一个长度的子区间,这些子区间互不相交。结果用分数表示分析先考虑如果给定了区间长度能不能选出这样的区间。因为题中说了区间互不包含,所以可以直接把所有区间先按左端点排序再按右端点排序,每个区间都尽量取靠近左端点的子区间。(如果没有说区间不相互包含的话,就要维护优先队列...

2016-08-01 09:32:00 166

DSPLCD1602.c

以DSP芯片TMSF2812为核心控制1602显示字符

2015-05-11

空空如也

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

TA关注的人

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