10 2015 档案

Killer Problem(暴力)
摘要:题意:给定一个序列,每次询问l到r之间两个数差的绝对值的最小值。分析:开始以为是线段树离线处理,实际暴力就好!#include #include #include #include #include #include #include #include #include #include #incl... 阅读全文

posted @ 2015-10-25 22:46 积跬步、至千里 阅读(186) 评论(0) 推荐(0)

Permutation
摘要:题意:求1-k的排列中第n大的序列,题目给出n的计算方法:n = si*(k-1)+s2*(k-2)...+sk*0!已知si分析:si的含义是剩下没用的数中第(si+1)大的数,用线段树,0,1表示处理情况#include #include #include #include #include #... 阅读全文

posted @ 2015-10-25 22:44 积跬步、至千里 阅读(217) 评论(0) 推荐(0)

SKYLINE
摘要:题意:n个建筑,给出其左右坐标和高度,有可能发生覆盖,求每个建筑在多长部分是最高的(覆盖度),求各覆盖度之和。分析:线段树,两个懒惰标记same区间是否同一高度、val区间最高高度#include #include #include #include #include #include #inclu... 阅读全文

posted @ 2015-10-25 22:38 积跬步、至千里 阅读(170) 评论(0) 推荐(0)

RMQ with Shifts
摘要:题意:n个数两种操作,1、给出一组位置,使各位置的数循环移动,2、求给定区间的最小值。分析:单点更新,区间最值#include #include #include #include #include #include #include #include #include #include #incl... 阅读全文

posted @ 2015-10-25 22:28 积跬步、至千里 阅读(160) 评论(0) 推荐(0)

Potentiometers
摘要:题意:线段树的单点修改,区间查询#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include... 阅读全文

posted @ 2015-10-25 22:25 积跬步、至千里 阅读(180) 评论(0) 推荐(0)

Fast Matrix Operations
摘要:题意:二维的区间增、改,求区间最值、和值。分析:把二维化为一维,注意懒惰标记。#include #include #include #include #include #include #include #include #include #include #include #include #in... 阅读全文

posted @ 2015-10-25 22:24 积跬步、至千里 阅读(156) 评论(0) 推荐(0)

Frequent values
摘要:题意:n个数q个询问,每次询问区间[i,j]中数出现最多的数的次数,序列是非降序的。分析:相同的数都是相邻的,把每段相同的数,标记起来,每段的标号id,左右边界left,right,数量num,当查询时,由三部分right[i]-i+1、j-left[j]+1、和编号id[i]+1,id[j]-1数... 阅读全文

posted @ 2015-10-25 22:21 积跬步、至千里 阅读(214) 评论(0) 推荐(0)

Ping pong
摘要:题意:n个人的能力值,任意两个人找第三人能力值位于两者之间,组成一场比赛,问一共能组成几场比赛。分析:对于第i个人,BIT求出前面小于它的人数c和后面小于他的人数d,根据乘法原理,c*(n-i-d)+(i-c-1)*d;#include #include #include #include #inc... 阅读全文

posted @ 2015-10-25 22:15 积跬步、至千里 阅读(459) 评论(0) 推荐(0)

Blocks
摘要:题意:n个带颜色的方块,每次可以选择一段颜色相同的连续方块消除得分为消去块数的平方,消除所有方块得到的最大分数。分析:区间dp,dp[i][j][k] 表示,从i到j块且j后面有k块与第j块的颜色一样。dp[l][r][k] = max(dp[l][r][k],dfs(l,i,k+1)+dfs(i+... 阅读全文

posted @ 2015-10-25 22:08 积跬步、至千里 阅读(162) 评论(0) 推荐(0)

Minimizing Maximizer
摘要:题意:最少需要多少个区间能完全覆盖整个区间[1,n]分析:dp[i]表示覆盖[1,i]最少需要的区间数,对于区间[a,b],dp[b]=min(dp[a...b-1])+1;用线段树来维护区间最小值。#include #include #include #include #include #incl... 阅读全文

posted @ 2015-10-25 22:02 积跬步、至千里 阅读(257) 评论(0) 推荐(0)

Mountain Road
摘要:题意:n个车,过一条路,有不同的方向,路上不允许同时有两个方向的车,给出每个车的起始时间,方向,和经过路花费的时间,车最小间隔10个时间,求最后一个车通过路的最早的时间。分析:dp[i][j][0]表示0方向经过i个车,1方向经过j个车,最后在0方向,最后一个车通过路的最早的时间。dp[i][j][... 阅读全文

posted @ 2015-10-25 21:56 积跬步、至千里 阅读(133) 评论(0) 推荐(0)

Garlands
摘要:题意:n个数分成m段,每段偶数个数,最小化和最大段的半个区间的数字和。分析:先想到了二分,dp求能分成的最小段数。#include #include #include #include #include #include #include #include #include #include #in... 阅读全文

posted @ 2015-10-25 21:47 积跬步、至千里 阅读(172) 评论(0) 推荐(0)

Pitcher Rotation
摘要:题意:n个人m个对手给出每个人能战胜每个敌人的概率,现在有g个比赛,每个人赛完后要休息4天(可重复用),求能获得胜利的最大期望个数。分析:因为只有每个人5天就能用一次,所以对于每个人来说,只有得分前5的会被使用上,所以后4维状态只需要5^4,进行状态转移dp[i][j][k][l][p]表示第i场比... 阅读全文

posted @ 2015-10-25 21:40 积跬步、至千里 阅读(130) 评论(0) 推荐(0)

Chopsticks
摘要:题意:n个数3个相邻是一组,求选k组使得,各组组内较小的两个数的差之和最小。分析:对于每个数选或不选的问题,dp[i][j]表前i个数选了j组得到的最小和。dp[i][j]=min(dp[i-1][j],dp[i-2][j-1]+差)选或不选,数应该降序排列。#include #include #i... 阅读全文

posted @ 2015-10-25 21:30 积跬步、至千里 阅读(244) 评论(0) 推荐(0)

Learning Vector
摘要:题意:给出n组x,y增量,从(0,0)开始以x,y坐标增加后等到的终点坐标,可以构成一个面积,再以这个终点为起点再增加,以此类推,使用增量顺序不同,得到的面积不,求用k组增量能得到的最大的面积。分析:先按(x,y)和(0,0)确定的斜率降序排列(这个贪心好想)dp[j][k]表示用j组增量能达到右边... 阅读全文

posted @ 2015-10-25 21:22 积跬步、至千里 阅读(154) 评论(0) 推荐(0)

Dyslexic Gollum
摘要:题意:求长度是n的二进制串中,不含长度大于等于k的回文串的个数分析:dp[i][j][k]表示长度i,后11位状态是j不含长度大于等于k的回文串的个数(因为k最大是10,所把后11位状态压缩,dp[i][j][k]=dp[i-1][j>>1][k]+dp[i-1][j>>1|(1#include #... 阅读全文

posted @ 2015-10-25 21:09 积跬步、至千里 阅读(148) 评论(0) 推荐(0)

Locker
摘要:题意:有2个数字串,每次可以变化1-3位(每位+1或-1(0-9,9-0)可循环),求由1串变到2串的最小用的次数。分析:dp[i][num]表示变到第i位时最后两位组成的数是num时最小次数(因为dp[i-1][num1],num1肯定是i位数的i-1,i-2位数,dp[i][num]=min(d... 阅读全文

posted @ 2015-10-25 20:59 积跬步、至千里 阅读(287) 评论(0) 推荐(0)

Folding
摘要:题意:给定一个串,求能化成的最短循环节串(把重复字符串转化成循环节形式)分析:不是太好想,如果让求最短长度还好,dp[i][j],表示区间[i,j]化成的最小长度,dp[i][j]=min(dp[i][k]+dp[k+1][j]),即可但现在要求这个串不知怎么做,想着串能不能跟着转移啊,就用str[... 阅读全文

posted @ 2015-10-25 20:37 积跬步、至千里 阅读(194) 评论(0) 推荐(0)

Free Candies
摘要:题意:有4堆东西,每堆有n个每个有一个颜色,现在有一个篮子最多能装5个不同的颜色的东西,每次都从堆顶拿,当篮子出现两个相同颜色,可以获得这两个东西,求获得的最大数量分析:因为就4推,可以把各堆的取得状态表示出来,用记忆化搜索,因为最多可以装5个作为转移的状态。#include #include #i... 阅读全文

posted @ 2015-10-25 20:11 积跬步、至千里 阅读(140) 评论(0) 推荐(0)

Storage Keepers
摘要:题意:n个仓库,m个人申请看管仓库,一个人可以看管多个仓库,一个仓库只能被一个人看管,每个人都有一个能力值,他看管的仓库的安全度U是能力值/看管仓库数,安全线L是U中的最小值,有多少能力公司发多少工资,求在保证安全线最高的情况下,公司花费最小。分析:状态好想dp[i][j],i个人看管j个仓库能达到... 阅读全文

posted @ 2015-10-18 20:56 积跬步、至千里 阅读(206) 评论(0) 推荐(0)

Minimax Triangulation
摘要:题意:按顺序给定一些点,把这些点分割为n - 2个三角形,花费为最大三角形面积,求最小花费分析:区间dp,dp[i][j]表示完成区间[i,j]最小花费,dp[i][j]=min(dp[i][j],max(dp[i][k],dp[k][j],area(p[i],p[j],p[k]);(area表示三... 阅读全文

posted @ 2015-10-18 20:43 积跬步、至千里 阅读(260) 评论(0) 推荐(0)

Stamps and Envelope Size
摘要:题意:容量为s的信封,给n组邮票的面值,求哪一组能组成的连续的面值的最大值最大,若有多组答案,输出面值数量最小的一组,若数量相等,输出最大面值最小的一组,若最大面值相等,输出第二大面值最小的一组,依次类推。分析:可以从小到大枚举面值直到不能组成,dp[i][j]是否能组成面值为i,用邮票数量为j d... 阅读全文

posted @ 2015-10-17 22:33 积跬步、至千里 阅读(155) 评论(0) 推荐(0)

Alibaba
摘要:题意:有n个东西在一条路上,已知他们的位置,和能获得他们的最后期限,求能获得n个东西的最小总时间。分析:想到了求”未来费用问题",dp[i][j][k]表示获得区间长i起点为j的所有东西,k=0最后点在左边界,k=1最后点在右边界,花费最小的费用。dp[i][j][0]=min(dp[i-1][j+... 阅读全文

posted @ 2015-10-17 22:20 积跬步、至千里 阅读(164) 评论(0) 推荐(0)

Cyborg Genes
摘要:题意:给两个字符串,求最短的以两字符串为子序列的字符串和个数分析:最长公共子序列的变形,num[i][j]表示个数#include #include #include #include #include #include #include #include #include #include #in... 阅读全文

posted @ 2015-10-17 22:17 积跬步、至千里 阅读(105) 评论(0) 推荐(0)

Cake slicing
摘要:题意:n*m的方格中有k个点,现在要把方格分开使得每个点在一个部分,每分一次花费边长的费用,求完成花的最小费用分析:dp[sx][sy][ex][ey]表示分割起点(sx,sy)终点(ex,ey)的矩形最小花费,判断一下矩形内有无点,无点置成无穷大(不会被选择),若有一个点则完成分割值为0,若多于一... 阅读全文

posted @ 2015-10-17 22:11 积跬步、至千里 阅读(220) 评论(0) 推荐(0)

Longest Run on a Snowboard
摘要:题意:n*m的矩阵,求矩阵中最长下降的序列的长度。分析:dp[i][j]表示以i,j为起点的最长下降序列,然后记忆化搜索。#include #include #include #include #include #include #include #include #include #include... 阅读全文

posted @ 2015-10-17 22:02 积跬步、至千里 阅读(178) 评论(0) 推荐(0)

Color Length
摘要:题意:给出两个字符串,求把两字符串组成一个字符串使的字符串中的相同字母的最远距离的和最小。分析:本题关键在于怎么计算距离和的方法上。dp[i][j]表示处理到长度i的a串,长度j的b串还需要的计算的距离dp[i][j]=min(dp[i+1][j],dp[i][j+1])+num[i][j](表示组... 阅读全文

posted @ 2015-10-17 21:58 积跬步、至千里 阅读(150) 评论(0) 推荐(0)

Team them up!
摘要:题意:给出n个人以及认识其他人的情况,现在要把所有人分成两队,每队至少一人,求使两队人数差距最小且每队内部的人都相互认识的分队情况。分析:这道题让我学习到了不少,首先看到使差距最小就想到了背包,但是不会表示分队情况。看了别人的思路,这个很明显是要判断是否是二分图,让不是相互认识的两人连一条边,若不是... 阅读全文

posted @ 2015-10-17 21:43 积跬步、至千里 阅读(204) 评论(0) 推荐(0)

The Bookcase
摘要:题意:有n本宽w高h的书,向三层书架上放,每层不能为空,求占用的整体的最小面积(总高度*三层中最宽的)分析:不太好想,dp[i][j]表示第一层宽度为i第二层为j放的最小高度dp[i][j]=min(dp[i-w[i]][j],dp[i][j-w[i]])放在第一、二层取最小,当i,j放的是第一本书... 阅读全文

posted @ 2015-10-17 21:28 积跬步、至千里 阅读(159) 评论(0) 推荐(0)

Fixing the Great Wall
摘要:题意:在一条线上,有n个坏的地方要修机器人修,机器人的移动速度V,若坏的地方立即被修花费ci,若没修,每单位时间增加d,出去机器人的开始位置,求修完n个地方的最小花费。分析:非常经典,求解“未来费用”的问题,考虑区间完成最后一定在区间边界上,才能保证最优。dp[i][j][k]表示修完区间长i起点为... 阅读全文

posted @ 2015-10-17 20:42 积跬步、至千里 阅读(231) 评论(0) 推荐(0)

Bigger is Better
摘要:题意:有n个火柴棒,已知拼成9个数字花费的数目,求能拼出的能整除m的最大数分析:dp[i][j]表示,用i个火柴棒,拼出的数余m余数为j时的最大数int tmp=dp[i][j]*10+k;(k是拼成的某个数)dp[i+num[k]][tmp%m]=max(dp[i+num[k]][tmp%m],t... 阅读全文

posted @ 2015-10-13 22:46 积跬步、至千里 阅读(274) 评论(0) 推荐(0)

Dropping water balloons
摘要:题意:给你k个水球n层楼(n很大) 现在做实验在楼上向下丢水球,若水球没破可以重新丢,求把所有水球弄破的最小试验次数。分析:开始完全没思路啊。从正面求没法做不会表示状态,做实验是只能从第一层,一层层向上试,应该dp[i][j]有i个水球,做j次实验能达到的最高楼层数,考虑到求破没破的情况若球破了,可... 阅读全文

posted @ 2015-10-13 22:38 积跬步、至千里 阅读(143) 评论(0) 推荐(0)

Easy Climb
摘要:题意:有n块石头,给定他们的高度,现保持第一和最后一块高度不变,其他可增加和减少高度,求通过变换使所有相邻石头的高度差的绝对值不大于d,所变化高度总和的最小值。分析:状态还可以想出来,dp[i][j]=min(dp[i-1][k])+abs(s[j]-h[i]),j,k表示i,i-1高度的状态,h[... 阅读全文

posted @ 2015-10-12 22:28 积跬步、至千里 阅读(249) 评论(0) 推荐(0)

Brackets sequence
摘要:题意:给你一个括号序列(有中小括号),求出以给定序列为子序列的最小合法括号序列。分析:非常经典,以前做过相似一道题,用区间dp,但怎么把这个序列求出来没想出来。dp[i][j]表示区间i-j是序列合法要增加括号的最小数量,并pos[i][j]表示i-j在哪个位置断开最小,最后通过递归位置打印出答案。... 阅读全文

posted @ 2015-10-12 18:24 积跬步、至千里 阅读(310) 评论(0) 推荐(0)

Twenty Questions
摘要:题意:有n个长度为m的二进制串,每个都是不同的。为了把所有字符串区分开,你可以询问,每次可以问某位上是0还是1。问最少提问次数,可以把所有字符串区分开来。分析:dp[s1][s2]: 表示提问的问题是s1集合,答案是s2时,还需要问几次才可以全部区分开当问题集合为{s1}时, 如果还不能区分所有答案... 阅读全文

posted @ 2015-10-11 22:43 积跬步、至千里 阅读(397) 评论(0) 推荐(0)

Headmaster's Headache
摘要:题意:s门课程,现任老师有m个给出工资,和他们能教的课,现在有n个应聘的老师,给出费用和能教的课程标号,求使每门课都至少有两个老师教的最小花费分析:n个老师选或不选有背包的特征,n很小想到用状压,s1表示每门课至少有一个老师教的情况,s2表示每门课至少有2个老师教的情况起始状态是现任老师形成,dp[... 阅读全文

posted @ 2015-10-11 22:32 积跬步、至千里 阅读(351) 评论(0) 推荐(0)

Perfect Service
摘要:题意:n个节点树,在一个节点放上一台服务器可以给相邻的其他各点提供服务且一个节点只能接受一台服务器,求使n个节点都被服务放的服务器的最小数量。分析:不算太难,状态想的差不多,但是考虑不全面状态方程写错了,要多练啊!!!状态好想,一个节点服务器放法有3中,放在自身,放在父节点,放在孩子节点 #i... 阅读全文

posted @ 2015-10-11 22:23 积跬步、至千里 阅读(275) 评论(0) 推荐(0)

Party at Hali-Bula
摘要:题意:n个人参加party,给出n个人的工作关系树,一个人和他的顶头上司不能同时参加,party达到的最大人数并判断邀请的最大人数名单是否唯一。分析:树状dp入门dp[i][f],以i为根的子树,f=0,i不参加,f=1,i参加能达到的最大人数。i参加i的孩子不能参加,i不参加,其孩子参不惨加都行(... 阅读全文

posted @ 2015-10-11 22:06 积跬步、至千里 阅读(283) 评论(0) 推荐(0)

Another Crisis
摘要:题意:给出一个树,当孩子节点为1的数量占孩子总数的T%时父节点变成1,求使根节点变成1需要叶子节点为1的最小数量。分析:简单的树状dp,dp[i]以i为根的子树所需的最小数量,取它所有子树中最小的T%,即可,分析时觉得这个方法会超时,可能题目数据太水。#include #include #inclu... 阅读全文

posted @ 2015-10-11 22:00 积跬步、至千里 阅读(304) 评论(0) 推荐(0)

Cutting Sticks
摘要:题意:l长的木棒,给出n个切割点,每切一次的费用为切得木棒的长度,完成切割的最小费用。分析:区间dp入门,区间dp的特点,一个大区间的解可以转换成小区间的解组合起来,每个切割点的标号代表边界。#include #include #include #include #include #include ... 阅读全文

posted @ 2015-10-11 21:49 积跬步、至千里 阅读(159) 评论(0) 推荐(0)

Lighting System Design
摘要:题意:从小到大给出额定功率,给出该功率费用,和灯泡的数量和单价,现在灯泡能在比他额定功率大的功率运行,求让所有灯泡正常工作的最小费用分析:问题转化为求用哪几个功率运行灯泡最小费用,dp[i]前i个功率的灯泡正常最小费用dp[i]=min(dp[i],dp[j]+num)(j#include #inc... 阅读全文

posted @ 2015-10-11 21:40 积跬步、至千里 阅读(312) 评论(0) 推荐(0)

Jin Ge Jin Qu hao
摘要:题意:n首歌和一首经典歌已知其长度,一首歌开始唱必须唱完,现在已知剩余时间,求最多能唱歌的个数并保证唱歌时间总长最大分析:留最后一个时间唱经典,然后对剩下的时间用背包求出最大个数,并求出总长最大的一个。#include #include #include #include #include #inc... 阅读全文

posted @ 2015-10-11 21:29 积跬步、至千里 阅读(317) 评论(0) 推荐(0)

Tour
摘要:题意:给n个点的坐标,求形成的最短的闭合回路。分析:经典问题,dp[i][j]表示有1-i点再由j回到1点的最短距离,i点有两种情况,在去的路径上dp[i][j]=min(dp[i][j],dp[i-1][j]+dis[i][i-1]);在回的路径上dp[i][i-1]=min(dp[i][i-1]... 阅读全文

posted @ 2015-10-11 21:11 积跬步、至千里 阅读(243) 评论(0) 推荐(0)

A Spy in the Metro
摘要:题意:n个车站,已知到达相邻车站的时间,有m1辆车从1站出发已知发车时间,有m2辆车从n站出发已知发车时间,求从1到达n所需等车的总时间最小。分析:有三种情况,在原地等,乘左到右的车,乘右到左的车dp[i][j]=min(dp[i][j+1]+1,dp[i-1][j+t[i-1]],dp[i+1][... 阅读全文

posted @ 2015-10-11 20:59 积跬步、至千里 阅读(318) 评论(0) 推荐(0)

Slalom
摘要:题意:有n个宽度为w的门,给出门的左端点的水平位置x和高度y,和恒定的垂直速度,现有s个速度,求能通过这n个门的最大速度。分析:二分速度判断#include #include #include #include #include #include #include #include #include... 阅读全文

posted @ 2015-10-11 20:41 积跬步、至千里 阅读(222) 评论(0) 推荐(0)

Keep the Customer Satisfied
摘要:题意:n个订单,每个订单有完成需要的天数,和限制的天数,求最多能完成多少订单分析:先按限制日期升序排列,若当前订单不能完成,和上面已选中的订单中需要天数中最大的比较,若比它小,则替换他。#include #include #include #include #include #include #in... 阅读全文

posted @ 2015-10-11 20:31 积跬步、至千里 阅读(215) 评论(0) 推荐(0)

The Tower of Babylon
摘要:题意:有n个,长x宽y高z的长方体,把这些长方体摞起来,上面长方体底面的长宽一定要小于下面的,求能摞的最大高度。分析:一个长方体,可以有三种放法,先把所有放的状态存起来,按底面升序排列,dp[i]前i个能构成的最大高度,dp[i]=max(dp[i],dp[j]+h) h为当前长方体高度#inclu... 阅读全文

posted @ 2015-10-11 20:13 积跬步、至千里 阅读(308) 评论(0) 推荐(0)

Partitioning by Palindromes
摘要:题意:给定一个字符串,求能分成最小几个回文串分析:简单dp dp[i]前i个字符能分成的最小数量 dp[i]=min(dp[i],dp[j-1]+1) (j-i 是回文串)#include #include #include #include #include #include #include #... 阅读全文

posted @ 2015-10-11 20:01 积跬步、至千里 阅读(250) 评论(0) 推荐(0)

导航