自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

无节操

善待人,严做事

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

原创 hdu - 4888 - Redraw Beautiful Drawings(最大流)

题意:给一个N行M列的数字矩阵的行和以及列和,每个元素的大小不超过K,问这样的矩阵是否存在,是否唯一,唯一则求出各个元素N(1 ≤ N ≤ 400) , M(1 ≤ M ≤ 400), K(1 ≤ K ≤ 40)。题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4888——>>建图:1)超级源S = 0,超级汇T = N + M + 1;

2014-10-31 17:59:43 1479

原创 hdu - 4979 - A simple math problem.(可重复覆盖DLX + 打表)

题意:一种彩票共有 N 个号码,每注包含 M 个号码,如果至少有 R 个号码与开出来的 M 个号码相同,则中二等奖,问要保证中二等奖至少要买多少注(1题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4979——>>覆盖问题,yy可知是可重复覆盖问题,于是,DLX 上场。。      N个 选 R 个,共有 C[N][R] 种选法,每种选法需

2014-10-31 02:04:42 1604

原创 hdu - 3498 - whosyourdaddy(重复覆盖DLX)

题意:N(2 ≤ N ≤ 55)个点,M(0 ≤ M ≤ N*N)条无向边,删除一个点会把与其相邻的点一起删掉,问最少删几次可以删掉所有点。题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3498——>>N个点看成 N 个要被覆盖的列,每个点作为一行,与其相邻的点的位置在这一行中标为 1,还有它自已的位置也标记为 1。。这就是经典的重复覆盖

2014-10-30 18:04:30 1266

原创 zoj - 3209 - Treasure Map(精确覆盖DLX)

题意:一个 n x m 的矩形(1 题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=3372——>>这是精确覆盖问题,而DLX正是解决精确覆盖问题的有利武器。。      模型转换:将原矩形变成一行,作为 DLX 中的列,表示要被覆盖一次且仅一次的目标。子矩形则是行中的一些点,每个子矩形作为 DLX 的一行

2014-10-30 15:06:30 886

原创 hust - 1017 - Exact cover(精确覆盖DLX)

题意:N行M列的0 1矩阵,求选出其中的一些行,使得选出的这些行每列有

2014-10-30 11:04:17 772 1

原创 acd - 1403 - Graph Game(博弈 + 二分图最大匹配)

题意:N与P在玩游戏,N有 n1 个点,P有 n2 个点,N的点与P的点之间有 m 条无向边。将一个石子放在其中一点,N先移动石子,沿边移动一次,石子移动前的点及与该点相连的边被删除,接着到P移动石子,谁不能移动谁就输。对每个初始位置输出胜负结果(1 ≤ n1; n2 ≤ 500, 0 ≤ m ≤ 50 000)。题目链接:http://acdream.info/problem?pid=140

2014-10-29 19:12:19 1358

原创 zoj - 2362 - Beloved Sons(二分图最大匹配)

题意:国王对其N个 (1 题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2362——>>男、女,很像二分图吧。。      要使平方和最大,可转化为要使和最大。。      将儿子按国王对他们的喜欢度从高到低排序,再依次进行匹配对象,因为在求增广路的时候,不会使已匹配上的点丢失,所以二分图最大匹配

2014-10-29 09:14:15 1010

原创 hdu - 4973 - A simple simulation problem.(线段树单点更新 + 区间更新)

题意:初始序列 1, 2, ..., n,m次操作(1 D l r,将区间[l, r]中的所有数复制一次;Q l r,输出区间[l, r]中同一数字个数的最大值。(0 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4973——>>因为区间内数字是依次递增的,所以可以以数字为叶建线段树去维护区间同一数字个数最大值。。原查询区

2014-10-29 03:06:31 1189 3

原创 hdu - 4972 - A simple dynamic programming problem(数学 + dp)

题意:NBA比赛,双方共N次进球(N题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4972——>>知道最后的比分差k,怎么求得比分呢?设分数较低的一方的最后分数为x,则另一方的最后分数为x + k,设双方最后总分和为S,则x  = (S - k) / 2,可得双方的比分。。所以,只要知道最后双方的总分和,就可以确定双方比分。。于是,问题转化成

2014-10-28 11:16:41 986

原创 hdu - 4971 - A simple brute force problem.(最大权闭合图)

题意:n(n 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4971——>>项目必须解决相应的技术问题,技术问题之间也存在依赖,对应闭合图,最大收益对应最大权和。。于是,最大权闭合图,最小割,最大流上场。。建图:1)超级源S = n + m, 超级汇T = n + m + 12)对于每个项目i:S -> i (profit[i])

2014-10-28 08:48:01 946

原创 poj - 2987 - Firing(最大权闭合图)

题意:n(0 题目链接:http://poj.org/problem?id=2987——>>炒一个人会该人的所有下级一起炒掉,这时存在依赖关系,对应图论中的闭合图。。最大收益对应最大权和。。于是,最大权闭合图上场。。最少炒人数?如果获得最大收益的方案可能有多种吗?其实不然,假设方案一与方案二都获得最大收益,那么,可以两个方案中所炒的人都炒了,这时的收益肯定更大,说明方案一、二还不是最优

2014-10-28 01:58:51 1859

原创 scu - 3254 - Rain and Fgj(最小点权割)

题意:N个点,M条边(2 题目链接:http://cstest.scu.edu.cn/soj/problem.action?id=3254——>>这是非常明显的最小点权割。。建图方案:1)将所有点 i 拆成 i 和 i + N,i -> i + N(容量为Wi)2)原图中的边 i -> j 变成 i + N -> j(容量为无穷大)3)0 -> 0 + N(因为原图中的边可

2014-10-27 18:54:36 950

原创 hdu - 4974 - A simple water problem(贪心 + 反证)

题意:N个队(N 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4974——>>我们应该尽量使每场比赛的得分为1 : 1,这样可以达到最少的比赛场数(不小于单个队伍的分数)。假设有2场比赛的比分为1 : 0,1)a : b = 1 : 0,c : d = 1 : 0,这时可以安排a : c = 1 : 1,只需1场就可达到相同的分数。

2014-10-27 01:20:04 1507

原创 hdu - 1054 - Strategic Game(树形dp)

题意:一棵n个结点的无根树(0 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1054——>>状态:dp[i][1]表示以 i 为结点的子树,在 i 放一个士兵,可以守护所有边的最少士兵数。dp[i][0]表示以 i 为结点的子树,在 i 不放士兵,可以守护所有边的最少士兵数。状态转移方程(结点 j 是结点 i 的儿子):dp

2014-10-25 19:46:16 1031

原创 hdu - 2412 - Party at Hali-Bula(树形dp)

题意:一棵n个结点的有根树(1 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2412——>>状态:dp[i][1]表示以结点 i 为根的子树,且选择i,能找出的满足要求的最大结点数。dp[i][0]表示以结点 i 为根的子树,且不选择i,能找出的满足要求的最大结点数。状态转移方程(结点 j 是结点 i 的儿子):dp[i][

2014-10-25 15:03:56 968

原创 poj - 1191 - 棋盘分割(dp)

题意:将一个8*8的棋盘(每个单元正方形有个分值)沿直线(竖或横)割掉一块,留下一块,对留下的这块继续这样操作,总共进行n - 1次,得到n块(1 题目链接:http://poj.org/problem?id=1191——>>状态:dp[x1][y1][x2][y2][i]表示将(x1, y1)到(x2, y2)的矩形分割i次的最小均方差。状态转移方程:dp[x1][y1][x2][y

2014-10-23 19:27:58 1380

原创 poj - 1093 - Formatting Text(dp)

题意:输入一段短文(所有字符总数不超过10000),要求格式化成两端对齐(每行长度为n,1 题目链接:http://poj.org/problem?id=1093——>>状态:dp[i]表示从第i个单词开始到最后一个单词的最小总坏值(第i个单词是这一行的第1个单词)状态转移方程:dp[i] = min(dp[i], dp[j + 1] + Badness(i, j));(Badness

2014-10-22 20:41:46 1289

原创 poj - 1156 - A STRIP OF LAND(枚举 + 单调队列 + 输入开挂)

题意:一个V * U的矩阵,每个元素有一个高度Hxy,问长不超过100,且最高值与最低值的差不超过C的子矩阵的最大面积(1 题目链接:http://poj.org/problem?id=1156——>>枚举子矩阵的左右宽度(保证枚举宽度不超过100,同时记录所枚举左右区间的每行的最大最小值),再枚举子矩阵的上下宽度(用单调队列优化判C)。#include #include #inc

2014-10-22 13:39:59 2113

原创 poj - 2823 - Sliding Window(单调队列)

题意:n个数的序列,长为k个数的窗口,窗口从左从右移,问窗口移动过程中每个状态的最小最大值。题目链接:http://poj.org/problem?id=2823——>>单调队列练手。。C++用时5391MS,G++会TLE。。不解。。望路过的朋友指导一下原因。。#include #include #include const int MAXN = 1000000 + 1;

2014-10-22 02:45:40 1514

原创 poj - 1159 - Palindrome(滚动数组dp)

题意:一个长为N的字符串( 3 题目链接:http://poj.org/problem?id=1159——>>状态:dp[i][j]表示第i个字符到第j个字符组成的字符串变成回文串的最少插入次数。状态转移方程:若sz[i] == sz[j],则:dp[i][j] = dp[i + 1][j - 1];否则:dp[i][j] = min(dp[i + 1][j], dp[i][j

2014-10-21 20:27:13 1179

原创 poj - 1160 - Post Office(dp)

题意:一条直路上有V个村庄(1 题目链接:http://poj.org/problem?id=1160——>>状态:dp[i][j]表示前i个村庄建j个邮局的最短距离和。状态转移方程:dp[i][j] = min(dp[i][j], dp[k][j - 1] + nDis[k + 1][i]);(前k个村庄由前j - 1个邮局管,后面的村庄归最后一个邮局管)状态:nDis[i]

2014-10-21 16:34:55 2090

原创 poj - 1651 - Multiplication Puzzle(dp)

题意:n个数(3 题目链接:http://poj.org/problem?id=1651——>>状态:dp[i][j]表示第i个数到第j个数组成的序列的最小权值和。状态转移方程:dp[i][j] = min(dp[i][j], dp[i][k] + dp[k][j] + a[i] * a[k] * a[j]);(枚举最后一个拿掉的数来更新)时间复杂度:O(n ^ 3)#incl

2014-10-21 10:40:52 1005

原创 poj - 1338 - Ugly Numbers(优先队列)

题意:问第n(n 题目链接:http://poj.org/problem?id=1338——>>1, 2, 3, 4, 5, 6, 8, ...假设小根堆存以上丑数,那么每次取出最小的数,这个最小的数nMin,它可以生成三个数:nMin * 2, nMin * 3, nMin * 5,将这三个数放入小根堆继续,一直复筛出1500个丑数为止。小根堆可用优先队列来替代。#inclu

2014-10-21 09:57:41 972

原创 CF - 475 - D. CGCDSSQ(枚举)

题意:一个n个数(1 ≤ n ≤ 10^5)的序列,q个询问(1 ≤ q ≤ 3 × 10^5),每个询问是一个数x,对于每个询问,输出gcd(ai, ai+1, ..., aj) == x的(i, j)对数。题目链接:http://codeforces.com/contest/475/problem/D——>>枚举一次。。为什么不会TLE呢?因为每趟子枚举基于上一趟的产生的最大公约数

2014-10-20 22:09:20 1010

原创 poj - 1953 - World Cup Noise(dp)

题意:n位长的01序列(0 题目链接:http://poj.org/problem?id=1953——>>设dp[i][j]表示前 i 位中第 i 位为 j 时的序列数,则状态转移方程为:dp[i][0] = dp[i - 1][0] + dp[i - 1][1];dp[i][1] = dp[i - 1][0];因为对于相同的n,其结果是固定的,所以可以对一个n只计算一

2014-10-04 08:46:21 1426

原创 poj - 1050 - To the Max(dp)

题意:一个N * N的矩阵,求子矩阵的最大和(N 题目链接:http://poj.org/problem?id=1050——>>将二维压缩为一维,对一维进行dp求解。将二维压缩成一维:1、第1行2、第2行加第1行3、第3行加第2行加第1行……N、第N行加第N-1行加……加第1行1、第2行2、第3行加第2行……1、第N行对于一维情况,设dp[i]表

2014-10-03 15:36:40 1140

原创 poj - 1088 - 滑雪(dp)

题意:一个R * C的矩阵(1 题目链接:http://poj.org/problem?id=1088——>>设dp[i][j]表示从ij位置出发的最长路,则状态转移方程为:dp[x][y] = max(dp[x][y], Dp(nNewX, nNewY) + 1);时间复杂度:O(R * C)#include #include #include using std

2014-10-02 22:02:29 1622

原创 poj - 1157 - LITTLE SHOP OF FLOWERS(dp)

题意:F朵花(从左到右标号为1到F,1 ——>>设dp[i][j]表示将前j种花放入前i个花瓶的最大好看度和,则状态转移方程为:dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - 1] + nValue[j][i]);时间复杂度:O(F * V)#include #include using std::max;const int MA

2014-10-02 21:34:17 958

原创 poj - 1163 - The Triangle(dp)

题意:给出一个三角阵,问从上到下,

2014-10-02 11:07:04 717

LA - 3135 - Argus.cpp

这题即zoj - 2212(当时的思路:http://blog.csdn.net/scnu_jiechao/article/details/8273149),在书上汝佳说重载运算符 < 的时候,const必不可少,于是今天就加了这个const进去,虽说不加这个const也AC得了,但我还是不太明白,不加这个const会出现什么样的后果呢?望各位赐教。

2013-01-03

空空如也

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

TA关注的人

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