自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

渐近自由

只要有朝那个方向的分运动,你就离它越来越近

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

原创 uva 10192 lcs

题意:题目:!#@¥!¥%!¥#@!#!@#¥!@#¥......我:说人话!题目:给俩字符串求最长公共子序列。代码:#include #include #include #include #include #include #include #include #include #include #define LL long long

2015-03-31 18:51:55 423

原创 uva 10163 两次Dp

题意:某公司有N个储物仓库,然后要找一些人来看守。有M个人来应聘,每个人有一个看守能力值Pi并且一个人可以看守多个仓库,一个仓库的安全级别Ui = Pi / k,k代表这个人看守的k个仓库。最终的安全系数是Ui中最小的。每个月给的钱是聘请来的所有人的能力值和。在安全系数最高的前提下花钱最少。解析:第一次DP先找如何使安全系数达到最高。dp[ i ] [ j

2015-03-30 15:13:22 406

原创 csu 1553 暴力+剪枝

题意:给一个长度为n的序列,要求一个连续的子序列,其中最大的元素为maxx,最小的元素为minn,maxx-minn 要求这个连续子序列长度最长长度。解析:。。。solo csu多校赛就搞出了第一道简单DP题,昨天和YYC看蓝桥杯的时候突然发现,这题好像可以暴力过去。开始的时候想用线段树去维护子序列的最大值和最小值,以为我算法的复杂度是O(nlogn),然后超时了。

2015-03-30 14:38:10 465

原创 hdu 5195 拓扑排序+贪心

题意:给一张有向无环图,可以删掉k条边,要求删掉k条边以后的无环图拓扑排序后字典序最大。解析:第一次A出BC的第二题,可惜第一题不能化简(1/1 ->> 1),还是掉分了,发个博客纪念一下。首先是有向无环图(DAG)的拓扑排序。拓扑排序意思是先找每个入度为零的点,排在最先,然后将这个点有关边全部删除,更新其他点的入度;重复上句话,直至图已空,为了保证排序后下标字典序

2015-03-29 13:53:54 689

原创 poj 1113 凸包+简单几何计算

题意:给N个平面上的点,现在要在离点外L米处建城墙,使得城墙把所有点都包含进去且城墙的长度最短。解析:韬哥出的某次训练赛上A出的第一道计算几何,算是大水题吧。用convexhull算法把凸包求出来,然后加加减减就A了。计算见下图:好久没玩画图了啊好开心。代码:#include #include #include #include #inc

2015-03-27 21:12:44 369

原创 uva 10154 DP 叠乌龟

题意:给你几只乌龟,每只乌龟有自身的重量和力量。每只乌龟的力量可以承受自身体重和在其上的几只乌龟的体重和内。问最多能叠放几只乌龟。解析:先将乌龟按力量从小到大排列。然后dp的时候从前往后叠,状态转移方程:dp[i][j] = dp[i - 1][j]; if (dp[i - 1][j - 1] != inf && dp[i - 1][j

2015-03-27 20:50:41 590

原创 uva 10131 最长子序列

题意:给大象的体重和智商,求体重按从大到小,智商从高到低的最长子序列,并输出路径。代码:#include #include #include #include #include #include #include #include #include #include #define LL long longusing namespace std;co

2015-03-26 20:43:50 374

原创 uva 10130 简单背包

题意:背包和代码:#include #include #include #include #include #include #include #include #include #include #define LL long longusing namespace std;const int maxn = 1e3 + 10;const int

2015-03-26 16:52:41 373

原创 uva 10118 dP

题意:给4列篮子,每次从某一列开始无放回拿蜡烛放入篮子里,并且篮子最多只能放5支蜡烛,数字代表蜡烛的颜色。当拿出当前颜色的蜡烛在篮子里存在时,猪脚可以把蜡烛带回家。问最多拿多少只蜡烛。代码:#include #include #include #include #include #include #include #include #include #

2015-03-25 21:18:26 333

原创 uva 1342 欧拉定理(计算几何模板)

题意:给几个点,把这几个点用直线连起来,求这些直线把平面分成了几个。解析:欧拉定理:顶点数 + 面数 - 边数= 2。代码:#include #include #include #include #include #include #include #include #include #include #include #include

2015-03-24 20:51:54 512

原创 uva 11178 计算集合模板题

题意:求三角形行三个角三等分点射线交出的内三角形坐标。代码:#include #include #include #include #include #include #include #include #include #include #include #include #define LL long longusing namespace st

2015-03-24 18:27:23 389

原创 uva 10069 DP + 大数加法

代码:#include #include #include #include #include #include #include #include #include #include #include #include #define LL long longusing namespace std;const int inf = 0x3f3f3f3f;con

2015-03-23 17:08:58 370

原创 uva 10066 LCS

题意:最长公共子序列。代码:#include #include #include #include #include #include #include #include #include #include #define LL long longusing namespace std;const int maxn = 100 + 10;const

2015-03-23 16:39:30 374

原创 uva 10029 HASH + DP

题意:给一个字典,里面有好多单词。单词可以由增加、删除、变换,变成另一个单词,问能变换的最长单词长度。解析:HASH+dp代码:#include #include #include #include #include #include #include #include #include #include #include #include

2015-03-22 19:06:43 337

原创 uva 10003 (简单DP)

题意:给一根长为L的木棒,现在要对它在n个点上切割,每次切割的代价就是当前这个点所在的木棒的长度。现在选定切割点的顺序,使切割的总代价最小。解析:初始化,所有段为inf.当切割的两段是相邻的两段,为边界点,此时dp[i][j] = 0.状态转移方程:dp[ i ] [ j ] = min(dp[ i ] [ j ], dp[ i ][ k ] + dp[

2015-03-22 11:11:21 402

原创 uva 825 简单DP

题意:给张图,求左上到右下的可达路径有多少条。解析:状态转移方程:for (int i = 1; i w; i++){ for (int j = 1; j n; j++) { if (g[i][j]) { dp[i][j] = dp[i - 1][j] + dp[i][j - 1];

2015-03-19 13:06:46 340

原创 uva 662 (经典DP邮局问题)

题意:给在一条直线上的n个汉堡店,以及每个汉堡店在x轴上的坐标。求建m个供应产,使得每个汉堡店到m个供应产的距离和最小。解析:经典的邮局dp问题。首先需要知道到达几个村庄的最小距离和是这几个村庄的坐标中点。先用一个遍历找出所有i j之间的所有最小距离,然后再dp。状态转移方程:dp[ i ] [ j ] = min ( dp[ i ] [ j ] , d

2015-03-17 16:06:12 997

原创 uva 624 (01背包打印路径)

题意:给张磁带,可以录c分钟的歌,然后给n首时间为vi的歌,问这张磁带最长可以录多少分钟的歌,并打印。解析:磁带长度为背包容量,每首歌为每个物品,歌的长度为物品重量,每首歌价值也为物品重量。状态转移方程:dp[ i ] [ j ] = max(dp[ i - 1 ] [ j ], dp[ i - 1 ] [ j - v[i] ] +  v[i])dp[i][j]表示

2015-03-17 09:08:47 382

原创 uva 620 递归(DP)

题意:一个细胞群有三种形态:1.   OA,      simple2.   OAB,    fully3.   BOA,    mutagenicelse:  mutant要求一个细胞群里面只存在这三种形态的细胞,否则就变异啦。解析:按三种细胞形态一个一个递归。详见代码。代码:#include #include

2015-03-16 16:21:20 472

原创 uva 607 记忆化搜索

题意:有n个topic,每个topic的时间长度是ti。定义一个Lecture的时间长度为L。问将这些topic放进Lecture中,最少需要几个Lecture,注意一个topic必须在一个Lecture内,不能断,且topic要按顺序。然后又定义了一个学生不满意度的函数,用每个Lecture剩下的时间作为自变量,要求在Lecture数相同的情况下,不满意度最小。解析:

2015-03-16 15:23:38 326

原创 uva 590 最优决策(DP)

题意:给定n个城市,n*(n-1)个航线,求在确定的第k天从城市1飞到城市n的最小票价,途中可以经过任意航班可以达到的城市。这个题的输入是酱的:第一行输入n,k,表示n个城市和确定的k天,然后以下n*(n-1)行,每行先输入当前航班票价循环的天数d,然后依此给出d天票价。航班的可达关系是:eg,n = 2,第一行代表城市1到2的航班,第2行表示城市2到1的航班...。具体输入看代码

2015-03-15 15:02:02 545

原创 uva 562 (dp找平均差异最小值)

题意:给m个银币,求将其分为两份的最小差值。解析:从平均值入手,平均值时差异最小。所以提前扫一遍并标记能够达到的值,最后从平均值开始扫就行了。memset(dp, 0, sizeof(dp));dp[0] = 1;for (int i = 0; i < m; i++){ for (int j = sum - a[i]; j >= 0; j--) {

2015-03-15 10:31:30 311

原创 uva 437 (最大子序列和)

题意:给n种立方体,每种立方体有无限个,摆积木,要求是在下面的那个立方体的上面比上面那个立方体的下面大,才可摆放。解析:数据量不大,因此枚举出立方体的6种摆放形态,然后按照面积从小到大排序,求解最大子序列和即可。状态转移方程: dp[ i ]  = max( dp[ i ] , dp[ j ] + r[ i ] . z )解释,对于第 i 个立法体,用不用,不用即dp[

2015-03-14 13:34:29 568

原创 uva 348 (矩阵链乘 打印路径)

题意:求矩阵链乘最小值,并打印路径。解析:状态转移方程:dp[ i ] [ j ] = min(dp[ fr ] [ k ] + dp[ k + 1 ] [ to ] + x[fr] * y[k] * x[to]代码:#include #include #include #include #include #include #include #

2015-03-13 22:28:53 394

原创 uva 147 (递归)

题意:给一个货币值,问多少种转化方法。解析:读入比较坑,参考网上的做法。注意枚举的顺序是货币-值。代码:#include #include #include #include #include #include #include #include #include #include #define LL long longusi

2015-03-12 16:44:47 340

原创 uva 116 (记忆化搜索)

题意:如图,从左到右走,每次可以往左上(up)左(fo)左下(dn)走,当走到第一行或最后一行时可以如图穿越。求一条权值最小的路径,并打印字典序最小的路径。解析:状态转移方程:dp[ i ][ j ] = min( dp[ (i - 1 + m) % m ] [ j + 1 ],    //up                            dp

2015-03-12 16:22:11 404

原创 uva 111 (LCS)

题意:给一个标准时间,给若干个排序时间,问最长公共子序列长度。解析:状态转移方程:if (time[i - 1] == num[j - 1]){ dp[i][j] = dp[i - 1][j - 1] +1;}else{ dp[i][j] = max(dp[i - 1][j], dp[i][j - 1]);}本题需要注意的是题目给的数字是排序点,

2015-03-12 08:30:41 351

原创 uva 103 (DAG矩形嵌套最长路)

题意:给一个n维的东西,若一个的n维都小于另一个的n维,则其可嵌套。求最长可嵌套的有几个,并打印出路径。解析:DAG上的最长路,先将可嵌套的图标记g[i][j] = 1,然后枚举起点记忆化搜索扫一遍就行了。打印的时候,找到起点,打印即可。代码:#include #include #include #include #include #inclu

2015-03-11 20:59:48 491

原创 uva 10608 并查集个数

题意:解析:代码:#include #include #include #include #include #include #include #include #include #include #include #include #define LL long longusing namespace std;const int maxn = 30000

2015-03-11 16:37:05 325

原创 uva 10594 网络流(邻接表)

题意:解析:代码:#include #include #include #include #include #include #include #include #include #include #include #include #define LL long longusing namespace std;const int maxn = 100 +

2015-03-11 16:36:38 370

原创 uva 10806 uva 10746 最小费用最大流

10806:题意:解析:代码:#include #include #include #include #include #include #include #include #include #include #include #include #define LL long longusing namespace std;const int maxn

2015-03-11 16:33:37 415

空空如也

空空如也

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

TA关注的人

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