自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ruclion的专栏

痴的不是凯旋,而是战斗!

  • 博客(35)
  • 资源 (1)
  • 收藏
  • 关注

原创 poj3411

题目描述:经过一条路有代价,但是多少取决于之前是否经过一个点,求1到n最小花费。题解:首先到达某一个点,还需要状压一个以前走过什么点.其次,因为要走回头,因此更新的时候不能普通的扫sta,然后走,因为不知道重复的到底有没有必要走,不好.所以用松弛的spfa,把sta和v当做一个统一放到队列里面,然后spfa的dp,直到队列为空.重点:图论会走回头路,因此用spfa上的dp代码:#include <i

2015-06-26 23:39:03 310

原创 poj1795

题目描述:用长度最短的的字符串来使得可以覆盖已经给出的字符,加一个为开头状态。一共有15个字符串,每个串长度<=200题解:字符串拼接,实际上就是可能有相邻字符串有重复的可以不再弄.重复的多一点就变成了包含.本来是15!的复杂度.但是我们发现其实出去最后一个串,那么我们再接上最后一个串的代价其实之和前面串的最后一个串有关(先叉一下:要想这样做,设i后面接j,那么j绝对不能把i给吃了,这样就会涉及到i

2015-06-26 16:31:30 621

原创 poj2836

题目描述:用面积和最小的矩形来覆盖给出的点,求最小的面积。预处理。题解:很好的一道题.用状压来表示哪些点被覆盖过了.之后就是用什么矩形来覆盖?因为矩形的先后顺序没有关系,因此当所有备选矩形出来之后就类似一个背包,矩形:所有两个点组成的矩形,最优解一定可以拆分成这样.因为这道题的特例,面积为0的不算,那么如果两个点在一条直线,必须把长或者宽从0变成1.并且顺便变就行(因为如果会影响到最终答案,一定有另

2015-06-26 16:03:18 392

原创 用对角线将凸n边行分成三角形,问有多少种分法

题目描述:用对角线将凸n~1e6边行分成三角形,问有多少种分法.并且最后要%一个不是质数的m题解:第一步是用dp推出来怎么算.dp[n] = dp[2]*dp[n-1]….dp[k]dp[n-k+1]..dp[n-1][2], dp[2] = 1,dp[3] = 1,第二步是加速dp,发现这是一个卡特兰数,令c[n-1]=dp[n],然后c[n-1] = …. 相加都是n-1.c[1] = 1,

2015-06-26 15:52:13 1699

原创 文章标题

题目描述:n×m场地,行不可相邻,上下不可相邻,场地中有不可选的地方,求可能数。题解:法一:矩阵上的dp,那么就一个格子一个格子的去看,需要考虑的状态仍然有上面的和左边的,其他的就不用判断了.那么复杂度是n*n*2^n,应该可以做,没有写..法二:提供了一个新的思路,每一行先处理出来可能合法的情况,就是相邻是间隔的二进制,那么直接枚举这一行怎么填,之后再检验,和上一行检验,和本行不能填的检验.这样是

2015-06-26 15:18:39 278

原创 poj2686

题目描述:有限车票去走城市,限定起点a,终点b,求最短时间。题解:重点:代码:

2015-06-26 11:49:50 325 1

原创 Poj1065

套娃或者木棍题目描述:两个参数要求小于等于的套娃,求最少开得列题解:核心其实是一个贪心.在放套娃的时候,只要不出现本来可以放在其中,但是没有放在其中的错误的话,结果一定是最优的.解法一共有两个.第一步都是排序,排序标准:本题是小于等于,因此l升,w也生.一种比较直接,用set维护一个剩余的w的单调的东西,然后往里加的时候找小于它的最大的那个改变就好了.法二:每一找出来一条链把它消除掉.记录一个当前的

2015-06-23 16:10:10 364

原创 poj3616

题目描述:有权值的区间且有休息时间,区间不可交叉,考虑每个区间的更新作用。题解:虽然很简单,但是帮我明白了一个事:数据结构维护最值和直接前缀维护最值的差别.如果我要的最值只要小于下表k就好,那么直接用前缀来维护就好.(比如本题).如果不是前缀,而是l到r的一个区间才行(比如书上的那一道)就必须用数据结构进行查询.具体到这题:对于lr,我们要l-rest之前的时间的最大值,之后我们需要整出来dp[r]

2015-06-23 15:22:40 352

原创 POJ - 2229

用2的幂次构成题目描述:一个数n~1e6.只能够用2的幂次(1, 2, 4….)来构成,问构成的方法有多少.题解:方法有多少?如果可以dp就好了.发现只剩下了log的时间可以应用了.这样减少规模dp,想法,都是2的幂次,如果能够除以2是什么情况.但是有一.那么:如果n是奇数,一定有1,如果把1拉出来,剩下的其实就是dp[n-1].如果n是偶数,如果有1,那么也是dp[n-1],如果没有1,那么就是除

2015-06-23 14:48:48 310

原创 bestcoder:树状数组+lca

rt

2015-06-23 13:49:47 299

原创 第三场选拔赛:flooyod + 后缀串+最小面积并

rt

2015-06-23 13:49:04 309

原创 POJ 1769

要用线段树的dp题目描述:一堆m~5e5可已到达[l,r]的东西,不能改变顺序的从中挑选一些,使得1个在1的东西能够交换到n~5e4.题解:首先是dp[i][j],考虑完i个机器,1能够移动到j所花费的最小的长度.然后看每个机器怎么去更新,对于i:l,r, 首先拿出来dp[i-1][l]的值,一定是l到r最小的,然后用i,拿这个值去修改一下dp[i][l][r]的最小值,[i]可省略,用线段树来成端

2015-06-19 11:44:02 672

原创 红绿黄染色,红绿个数为偶数

题目:用3种颜色染色一列~1e9,要求最终红色和绿色都为偶数,求方案数. 题解:减少规模的思维,数学上的递推.假设i-1列我们会搞,推i列,很好写出来递推式.之后用矩阵快速幂加速运算

2015-06-19 10:38:35 575

原创 最简单的小型铺砖问题

题意:1*2的砖可以铺,然后n和m小于15,有的地方不能铺,问一共有多少种铺法. 题解:铺砖的基本思路,状压表示对当前状态有用的状态,来进行转移.这里(1)我们先定用砖的左上来考虑,dp[i][j][s],表示该铺i,j了.(2)s表示的是有关的状态,j之前的i层一定铺了,但是i+1层不一定,要表示,j和j之后的只用看看i层有没有铺,然后枚举当前铺不铺,转移到下一个.

2015-06-19 10:33:09 915

原创 最长上升子序列

注意,这种题目很常用:a[i]-i. 单调上升: (1)另外建一个数组,f[len] = t. (2)扫数组,对于a,找lower_bound,替换成a. (完成)

2015-06-19 09:42:24 195

原创 最长公共子序列

nlogn求最长公共子序列(1) 对序列B排序,根据题意进行处理(2) 计算A中每个元素在B中的序号,并在A的基础上构成新序列(3) 使用LIS的方法在A中计算最长严格递增子序列(4) 获取最长公共子序列

2015-06-19 09:24:54 302

原创 动态规划-树形dp总结

一.简单的从下到上和从上到下的统计1.      dp[u]表示以u为根的一共有多少个节点.可以用来求重心.2.      每个点出发能够走得最远的长度.dpm[u], dps[u]用来保存u为根到子树的最长距离,注意两者区别是不同的儿子(不想交路径).另外有一个f[u]指的是去掉u的儿子们之后,u可以发出的最长链.这样的是一个规范的从上往下的dp.我是这样定的:定状态f[u]要求不能考虑

2015-06-17 17:02:56 2334

原创 Codeforces Round #135 (Div. 2) D Choosing Capital for Treeland

最小修改边题目描述:一棵树,然后每个边都有方向.从中选出来一个点,这个点往其他所有的点流动,不能流的边就改变边的方向.问所有点中最少的修改次数.要求o(n)题解:很简单的一个题,但是用到了树形dp常用的一个办法.先随便找一个点,跑一次.之后开始在树上转化,这个转化很简单,每次从父亲到儿子dfs中传一个儿子的值就好了,+1或者-1. 还做过一道两个点的,问最少修改次数.n^2就行.转化成这道题的话:

2015-06-16 11:52:53 529

原创 poj 2152

消防站题目描述:有n个城市,每两个城市只有一条路连接,(所以可以当成是一颗树)。现在要建设一些防火站,使每个城市都可以被覆盖。每个城市的属性是:在本城市建防火站的价钱和不在本城市建设的话,所依赖的别的防火站的最长距离。然后是n-1条路,和这条路的长度。现在问在覆盖所有城市的前提下的最少价格。题解:很难的一道题,但是很巧妙.思维分好几个步骤:首先是题意的放松条件,我们不去追求真正的最近,因为兄弟节点会

2015-06-16 11:43:17 484

原创 poj 1741

距离小于k的有多少个点对题目描述:给定n个节点组成的树,树有边权,现在给定一个点u和v,dis(u,v)表示u和v节点的最近距离,问dis(u,v)<=k的uv对数,n <= 1万,k不定,权值<=1000。题解:第一次从单纯的树形dp转到树的分治.dp的话基本上是从儿子们获取少量的信息,或者是父亲传给儿子们少量的信息.但是这道题需要很多的信息,并且每次从儿子合并到父亲的时候都要基本上是o(n)的时

2015-06-16 11:30:11 365

原创 S国有一个山洞,它由n个房间和若干走廊组成。对于任意的两个房间,总有唯一的路径相连。A在这些房间中的一个藏了很多财宝,但是他不告诉B到底是哪一个房间 这题

没读懂题解啊= =

2015-06-12 17:11:58 766

原创 多角度思考 创造性思维 几乎整个Byteland王国都被森林和河流所覆盖 题

题目描述:几乎整个Byteland王国都被森林和河流所覆盖。小点的河汇聚到一起,形成了稍大点的河。就这样,所有的河水都汇聚并流进了一条大河,最后这条大河流进了大海。这条大河的入海口处有一个村庄——名叫Bytetown。 在Byteland国,有n个伐木的村庄,这些村庄都座落在河边。目前在Bytetown,有一个巨大的伐木场,它处理着全国砍下的所有木料。 木料被砍下后,顺着河流而被运到Bytetow

2015-06-12 17:10:46 1779

原创 多角度思考 创造性思维 --论文中的Chris家的电话铃响起了 题

题目描述:Chris家的电话铃响起了,里面传出了Chris的老师焦急的声音:“喂,是Chris的家长吗?你们的孩子又没来上课,不想参加考试了吗?”一听说要考试,Chris的父母就心急如焚,他们决定在尽量短的时间内找到Chris。他们告诉Chris的老师:“根据以往的经验,Chris现在必然躲在朋友Shermie或Yashiro家里偷玩《拳皇》游戏。现在,我们就从家出发去找Chris,一但找到,我们立

2015-06-12 17:06:12 508

原创 UVA1407

一定距离走多远题目描述:给出n,表示有一个以0为根含有n个节点的树,每条边有一个权值,现在给出m次询问,每次询问有一个val值,要求计算在val值下的距离最多能经过多少个节点,一个节点多次移动多算一次.其中走的路程很大,点一共有500个题解:一共有两个重点.(1)点很少,距离很大,用dp的话要dp[u][i] = x,其中i是可以走的点的个数,而不是距离,用x来表示距离,这样之后扫一遍可以小于lim

2015-06-12 10:21:01 349

原创 uva 12223 - Moving to Nuremberg

Moving to Nuremberg题目描述:给出n,表示有n个位置,n个位置有n-1条边,形成一个无根的树,每条边上都有权值。现在每个位置都有一个景点,一个人想在一年之内去ki次景点,所以接下来给出m,表示说在m个位置上有这个人想去的地方,给出位置以及想去的次数(注意,每去一个景点都要返回自己的住处),然后问说,这个人该住在哪里走的路程才最短。题解:常用的一种简单的树上枚举根的转移方法.第一次以

2015-06-08 10:01:09 339

原创 UVA - 11307

用数字染色题目描述:给出一棵树,然后在每个节点上填上任意的数字,要求相邻的节点不能填相同的数字,问说所有节点数字的和最小为多少题解:本来很简单,要全部染色的话其实2种颜色就够了,但是要求和最小.关键是发现2种颜色是不足以达到最小的.那么用几种呢?不知道…因此多用几种去试,6种其实就行,我觉得其实也不一定对…….多试几种重点:发现并不是2种颜色最好,举出反例就好,然后多用几种颜色.代码:

2015-06-08 09:48:46 330

原创 uva1484

bob和alice题目描述:一棵树,bob想要尽量往远的走,alice想要尽量往近的走,并且他们约定走的距离必须是[l,r]内.问bob先走,alice后走,问最终会走到哪里题解:画出树,发现是递归的不用看具体的子树张什么样的,所以用树形dp.就是奇偶从子树中挑最大的和最小的.关键是:因为有[l,r]的限制,所以要一直有一个road跟踪值,来确保取得的最值是有效[l,r]中的最值,而不是当前u问根开

2015-06-08 09:16:15 213

原创 Codeforces 461B Appleman and Tree

每棵子树包含黑点题目描述:有n~ 1e5个顶点,一棵树,每个顶点是黑色或者白色,问一共有多少种切边的方法,使得切过后的每一部分都有且仅有一个黑色的点.保证至少有一个黑色的点.题解:首先画出递归版的一棵树,发现砍不砍uv这条边和v顶点本身的树是不是有黑色有关,并且之后的信息是不用管的,再结合算个数的分析.是树形dp.dp[u][0/1],0代表没有黑色,1代表有黑色.在横着dp的过程中,子树如果

2015-06-08 08:57:59 273

原创 hdu 5148

分配城市题目描述:有2000个城市,是一棵树,树上的边有权值,要求选择k~50个城市,使得城市中所有两两的点的距离的总和最小.题解:树形dp,考虑用几个点在这棵树上,对于根节点,为了便于好写,强制要求必须选.那么如果能够搞出来,结果就是枚举所有的作为根节点然后取最小的ans,怎么搞呢?先用一种笨的方法:对于k,枚举给当前子树多少个,然后用更新值,这里有个关键点,当前u,子树v为根节点,给子树m个,那

2015-06-07 17:38:05 363

原创 hdu1520

公司开会题目描述:公司的员工是一棵树,每个节点有一个值,要求在树中直接相邻有边的两个不能同时来,问最大的点中的权值和是多大题解:水题,dp[u][0/1],代表选该点和不选该点时的最大值,然后dp就好了.注意,在u不选的时候,下面的v可以选可以不选,找一个最大的就好了.重点:树形dp,多一位定状态.代码:#include <iostream>#include <cstdio>#include <

2015-06-07 16:48:26 322

原创 hdu2196

电脑题目描述:水题,一棵树,每个节点的最远距离题解:树形dp,先跑出来dpm和dps,然后再dfs,参数含fa的去掉儿子的len,之后比较找出当前u的结果以及u的去掉儿子的len,传下去重点:标准的u去掉儿子的len以及求u的最远距离代码:#include <iostream>#include <cstdio>#include <cstring>#include <string>#inclu

2015-06-07 16:38:29 428

原创 bestcoder上面百度之星 google的题解

题目描述:题解:重点:代码:

2015-06-07 16:27:21 315

原创 CF的LINSER啥啥的H(二分),G(换位置),C(博弈),D(前缀矩阵),B(寻找来的人)

题目描述:题解:重点:代码:

2015-06-07 16:25:31 479

原创 HDU1011

消灭怪兽吃东西题目描述:给出一棵树树,每个节点有一些东西需要消灭,消灭后节点上有一个概率值,树形依赖,手中1个士兵可以消灭20个东西,但是一个士兵只能放在一个地方.问手上的士兵最多可以搞到的最大的概率题解:其实就是树形依赖背包.不知道为什么就是过不了…..重点:代码://////过不了的代码.....回头再看吧= =#include <iostream>#include <cstdio>#in

2015-06-06 11:52:30 477

原创 HDU 3586

HDU 3586题目描述:给定n个敌方据点,1为司令部,其他点各有一条边相连构成一棵树,每条边都有一个权值cost表示破坏这条边的费用,叶子节点为前线。现要切断前线和司令部的联系,每次切断边的费用不能超过上限limit,问切断所有前线与司令部联系所花费的总费用少于m时的最小limit。1<=n<=1000,1<=m<=100万题解:每次断边不能超过上限的limit,求最小的总花费,其实就是二分枚举l

2015-06-04 11:19:26 476

课堂笔记1.docx

李宏毅老师机器学习的笔记,目详细介绍为:https://www.bilibili.com/video/av35932863?p=2

2019-08-30

空空如也

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

TA关注的人

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