自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 收藏
  • 关注

原创 poj2728 Desert King 【最优比例生成树 01分数规划】

链接:http://poj.org/problem?id=2728题意:有n个点,每个点用有坐标和高度,现在要让这n个点生成一棵树,收益是链接两点的距离bi,花费是高度差ci,现在要你求出sigma(ci)/sigma(bi) 最小。分析:按照01分数规划的套路走,R=sigma(ci)/sigma(bi) ,R为最小值。设F(L)=sigma(ci)-L*sigma(bi),如果对于

2016-07-31 18:57:44 380

原创 poj2976 Dropping tests 【01分数规划】

链接:http://poj.org/problem?id=2976题意:给你n个a和b,让你求删掉其中的k对使得 sigma(a[i])/sigma(b[i])最大。分析:01分数规划第一题,看这篇可以有个大概的了解。关键点在于不容易求一个值,但是验证某个值可行很容易。代码:#include#include#include#include#include#include

2016-07-31 14:53:05 371

转载 01分数规划

【关键字】0/1分数规划、最优比率生成树、最优比率环【背景】 根据楼教主的回忆录,他曾经在某一场比赛中秒掉了一道最优比率生成树问题,导致很多人跟风失败,最终悲剧。可见最优比率生成树是多么凶残的东西,但是这个东西只要好好研究半天就可以掌握,相信你在看了我写的这篇总结之后可以像楼教主一般秒掉这类问题。因为网上对于01分数规划问题的详细资料并不是太多,所以我就结合自己的一

2016-07-31 14:45:03 432

原创 poj2947 Widget Factory 【高斯消元】

链接:http://poj.org/problem?id=2947题意:有n个部件,m个记录,记录描述了,某些部件在那个时间段(只说明了星期a到星期b,没有明确多少时间),每个部件完成的时间3~9天。现在要你找出每个部件完成的时间。思路:每个记录的时间可以表示为 ((b-a+1)%7+7)%7.  很显然,每个记录都可以看成一个方程,所以就有m个方程,n个未知数,用高斯消元求解代码

2016-07-31 11:58:41 195

原创 poj 1681 Painter's Problem 【高斯消元 枚举自由变元】

链接:http://poj.org/problem?id=1681题意:与poj1222相似 输出变为求最小步数。分析:由于求最小步数,当我们存在自由变元时,我们可以得到解,但是不知道需要的最小步数,所以我们枚举所有的变元。代码:#include#include#include#include#include#include#include#include#incl

2016-07-30 13:49:59 564

原创 2016 Multi-University Training Contest 4 09 String problem (hdu5772) 【最大权闭合子图】

链接:http://acm.hdu.edu.cn/showproblem.php?pid=5772题意:给你一个由“0”~“9”组成长度为n的字符串,现在要找出一个子串使得子串的收益(得分-花费)最大。子串的得分等于sigma(w[id[i]][id[j]]) id[i],id[j]是选的数字在原串的编号。子串的花费为a[i]*(x-1)+b[i] (x>0)    x为某个数字出现的

2016-07-29 17:12:13 269

原创 poj1222 EXTENDED LIGHTS OUT 【高斯消元】

链接:http://poj.org/problem?id=1222题意:给你一个5*6的矩阵,每个矩阵里有一个灯,用01表示开关状态,没按下一个灯的开关,它与他四周的灯的状态改变,问怎么操作使得灯全都关闭灭。分析:经典的开关问题,一共有30个灯,用x0~x29表示,每个灯对应一个方程:x(i*6+j)+x(i*6+j+1)+x(i*6+j-1)+x((i+1)*6+j)+x((i-1)*6

2016-07-28 11:00:08 305

原创 poj1155 TELE 【树形dp】

链接:http://poj.org/problem?id=1155题意:以1为根的树,叶子节点上有权值,从1出发到叶子节点会得到叶子的权值,但是要减去路径上的权值,问你最多到达多少叶子使得最后的值大于等于0.分析:i点为根时用到的叶子节点j的价值用dp[i][j]表示,向上更新的时候就相当于将子树合并。dp[u][j+k]=max(dp[u][j]+dp[v][k]-w).代码:

2016-07-27 17:15:56 263

原创 cf 135div2D Choosing Capital for Treeland 【树形dp】

链接:http://codeforces.com/problemset/problem/219/D题意:n个点,m个有向边,现在要你求出每个点作为根使得图为一棵树需要改变多少边的方向,输出最少改变多少次,和这些点。分析:建图时发现,一个点为根时他的出度边不用改变,所以将所有的入边的权值为1,然后用dfs统计每个点的子树有多少这样的边。我们还可以发现,一个点(u)和他的父亲(fa)的关系

2016-07-27 14:20:52 217

原创 hdu2196 Computer 【树形dp】

链接:http://acm.hdu.edu.cn/showproblem.php?pid=2196题意:有n台电脑,通过n-1条网线连接,问每台电脑到离他最远的距离是多少。分析:我们把这些电脑看成一棵树,可以很容易的得到每个点的子树最远的距离(a),我们发现某个节点的答案就是max(a,除下它所在子树后父亲最远的距离)。所以我们可以先dfs一遍存下每个点(u)的子树离他最远和次远距离,

2016-07-27 12:38:24 226

原创 hdu1520 Anniversary party 【树形dp】

链接:http://acm.hdu.edu.cn/showproblem.php?pid=1520题意:给你一棵树,每个点都有权值,现在要你选一些点,这些点与父亲不能同时选,问权值最大多少。分析:树形dp入门题,直接用dp[i][0/1]表示第i个节点选或不选,转移:dp[u][0]+=max(dp[v][0],dp[v][1])dp[u][1]+=dp[v][0]代码:#

2016-07-26 21:04:54 188

原创 hdu5001 walk 【概率dp】

链接:http://acm.hdu.edu.cn/showproblem.php?pid=5001题意:给你一个n个点m条边的无向图,问你任意从一的点出发走d步后,不经过某个点的概率,输出那个点的概率。分析:枚举一个点,表示不从该点出发经过该点的概率,因为从该点出发的路径,一直都是经过该点的,比如说到a点的概率是p1,它如果连两个点那么ans=p1+p1*0.5+p1*0.5这里我们就

2016-07-25 15:41:25 226

原创 2016 Multi-University Training Contest 2 H Helter Skelter (hdu5741) 【二分】

链接:http://acm.hdu.edu.cn/showproblem.php?pid=5741题意:给你n个数字表示一个字符串s的压缩形式,再给你m个询问,询问是否存在一个区间是由a个0,b个1组成,是输出1,否输出0.分析:如果我们确定了a的个数,那么b的个数就是一个区间,我们暴力将所有的可行(a,b),可以发现他们分布在一个封闭的二位平面上,我们可以找到这个二维平面的上界,下界(就

2016-07-24 10:44:08 389

原创 2016 Multi-University Training Contest 1 1005 Necklace (hdu5727)【枚举+匹配】

链接:http://acm.hdu.edu.cn/showproblem.php?pid=5727题意:有2*n个宝石,n个阴,n个阳,m条关系(a,b),代表a被b影响,a是阳,b是阴。问将这些宝石组成项链,最少的阳被影响的个数。分析:我们现在枚举阴的排列,因为是环,所以有(n-1)!种,然后对于每个排列,把阳插入到阴的空隙中,如果空隙两边都没有影响则插入,然后跑一边二分匹配,得出的匹配

2016-07-23 14:32:14 261

原创 2016 Multi-University Training Contest 2 1006 Fantasia (hdu5739) 【割点 无向图dfs树 树形dp】

链接:http://acm.hdu.edu.cn/showproblem.php?pid=5739题意:给你一个n个点m条边的无向图G,删去第i个点的后图的价值为Gi,求G1+.....Gn每个点都有价值。Gi的价值规则:删除i后图连通则价值为所有点的乘积。若不连通,价值为所有分量的价值和。么个分量的价值是分量中的点的价值乘积。分析:很明显,题目要处理的就是割点和非割点。对

2016-07-23 11:36:00 404

原创 Hopcroft-karp 算法

Hopcroft-Karp算法该算法由John.E.Hopcroft和Richard M.Karp于1973提出,故称Hopcroft-Karp算法。时间复杂度O(n^0.5*m)思路:用bfs来找出多条不相交的最短增广路,形成极大增广路集,然后可以用匈牙利多路增广。bfs要找最短的增广路,是因为增广路的长度每增加1,他的匹配数也增加1,所以最短保证答案的准确。每一

2016-07-18 20:20:01 4188

原创 poj1651 Multiplication Puzzle 【区间dp】

链接:http://poj.org/problem?id=1651题意:有n个数,现在要删除【2,n-1】里的数,每次删除的代价是它和左边右边的乘积,求出最少代价。分析:dp[i][j]表示删除了(i,j)的某个数的最小代价,转移方程: dp[i][j]=min(dp[i][j],dp[i][k]+dp[k][j]+a[i]*a[j]*a[k]); k为枚举要删除的数。代码:#in

2016-07-18 16:33:53 201

原创 nyoj746 整数划分(四)【区间dp】

链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=746分析:a[i][j]表示i到j的数,dp[i][j]表示,长度为i插了j个乘号的最大值,转移:dp[i][j]=max(dp[i][j],dp[k][j-1]*a[k+1][i]) 表示在k的位子插一个乘号。代码:#include#include#include#

2016-07-18 16:27:50 472

原创 poj2955 Brackets 【区间dp】

链接:http://poj.org/problem?id=2955题意:给你一串由“(  )”“[  ]”组成的括号串,现在问你最多的括号匹配。分析:枚举一个长度,看看这个区间内有多少能匹配的括号,用dp[i][j]表示,s[i]和s[j]能匹配时dp[i][j]=dp[i+1][j-1]+2,然后枚举区间内的点,两段区间合并就可以找到最大的匹配。代码:#include#incl

2016-07-18 16:16:04 200

原创 计蒜客 百度地图的实时路况 【cdq+floyd】

链接:https://nanti.jisuanke.com/t/11217分析:题目要求所有的dis(x,y,z); x到z不经过y的最短路。考虑暴力做法,枚举每一个点表示不经过它,跑n次floyd。。显然n^4过不去。我们在求最短路的时候很多i到j的最短路重复的求过了。考虑分治,每次求(l,r)可以用(l,mid)求floyd表示用可能用到了(l,mid)中的点,到(mid+1,r)中找

2016-07-14 16:26:37 762

原创 51nod1623完美消除 【数位dp】

链接:http://www.51nod.com/onlineJudge/submitDetail.html#!judgeId=108709分析:在枚举每一位观察到 212需要3次,121只要2次,我们可以发现若新枚举的数在前面的一个递增状态没出现过,操作数+1。比如:前面的状态为“1 2 3 4 5 6” 再加入5时 状态变为“1 2 3 4 5”, 因为后面如果再加入6就会形成“1234

2016-07-14 15:30:19 288

原创 bzoj1799[Ahoi2009]self 同类分布 【数位dp】

链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1799分析:设状态dp[i][j][k],表示长度为i,所有位数和为j,当前模的余数为k,因为所有位的和最大为18*9,所以枚举模数,用记忆化搜索找到最后k==0的数。代码:#include#include#include#include#include#inclu

2016-07-14 15:22:31 467

原创 bzoj1026[SCOI2009]windy数 【数位dp】

链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1026分析:我们可以先预处理出长度为i高位为j有多少个这样的数,也就是dp[i][j]+=dp[i-1][k] (|j-k|>=2)。然后就是找出0~r有多少个,我们可以知道r的位数Len,先可以把小于Len的直接求出来,单独把Len求出,之后从len-1开始确定每一位找出剩下的。

2016-07-13 22:37:54 222

原创 CF355div2

链接:http://codeforces.com/contest/677c:Vanya and Label题意:给你一个字符串s,每个字符可以用一个10进制数表示(0~63),现在要求有多少对与s长度一样的字符串通过&得到s。分析:只用64个数,直接暴力出每两个数的&,然后相乘就行了。#include#include#include#include#include#i

2016-07-06 21:10:40 402

空空如也

空空如也

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

TA关注的人

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