自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

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

原创 POJ 2771 Guardian of Decency (最大独立集Hungary)

题意:老师想带他的学生们出去旅行,但是不想他们之间发生恋爱。也就是说,任意两个可能发生恋爱的人不能同时都带去。要求能带去旅行的最大人数。老师认为满足下列情况的人之间不会发生恋爱。1.Their height differs by more than 40 cm.2.The

2011-09-30 18:05:43 756

原创 两个鸡蛋100层楼(DP)

#include using namespace std;#define N 500#define max(a,b) (a>b?a:b)#define min(a,b) (a<b?a:b)int dp[2][N]; /* dp[i][j] 表示用i个鸡蛋测试第 j

2011-09-30 08:05:39 4386

原创 POJ 2724 Purifying Machine (二分图最大独立集Hungary)

题意:迈克有一台可以净化奶酪的机器,用二进制表示净化的奶酪的编号。但是,在某些二进制串中可能包含有‘*'。例如01*100,'*'其实就代表可以取0,1两种情况--> 010100 和011100。现在由于迈克不小心,他以同样的方式弄脏了某些奶酪,问你最少用多少次操作就可以把弄脏

2011-09-29 22:50:36 1636

原创 POJ 1466 Girls and Boys (最大独立集Hungary)

题意:有n个学生,一男一女可能会陷入浪漫之中,现在知道每个人的浪漫关系。求一个最大集,使得集合里的所有人之间没有浪漫关系。题解:二分图匹配,最大独立集。#include using namespace std;#define N 510bool vis[N];i

2011-09-29 19:54:13 553

原创 POJ 1274 The Perfect Stall (匈牙利算法)

题意:一同牛只愿意在几个特定的棚子里面产奶。每头牛喜好不同,每个棚子只容纳一同牛。求最大匹配。#include using namespace std;#define N 210bool vis[N], bond[N][N];int match[N];int n,

2011-09-29 17:11:20 556

原创 POJ 2057 The Lost House 树状DP

题意:一直小蜗牛从树顶掉了下来,但是它的壳子还留在上面。于是它有从根节点去寻找它的壳子(但是它完全忘记了之前走过的路)。在路途中有些节点上可能住着虫子,虫子可以告诉小蜗牛它之前来没来过。假如壳子在每个叶子节点上的概率相等,求出蜗牛所需要走得路程的期望。题解:关键是确定子节点的

2011-09-29 00:35:03 1709 1

原创 POJ 3140 Contestants Division (DFS)

题意:给定一棵无根树,每个节点有一个值, 你可以在任意两节点间划一下,使得分开的两棵子树的值的差最小。题解:若所有节点的值的总和为奇数,那么任意划一下一定得一奇一偶的两棵子树,值之差一定是奇数且>=1。若总值为偶数,那么值之差一定为偶数且>=0。#include #in

2011-09-26 20:26:08 833

原创 POJ 2486 Apple Tree 树形DP

题意:Wshxzt从根节点1开始在苹果树上游历,树上的每个节点都会存在apple[i]个苹果,从一个节点到它的邻节点耗费步数1。现在Wshxzt可以步行step步,求她可以得到的最大苹果数量。题解:dp[0][i][j]表示以i为根节点步行j步,且最终回到i,可以得到的最大苹

2011-09-25 22:45:43 1743

原创 POJ 1947 Rebuilding Roads 树形DP

题意:给出一棵树,至少切几下,能够得到一个包含p个节点的子树。题解:假设节点u包含了cnt[u]个子节点:1,2,3,····cnt[u],每个子节点类似于一个背包,可以加或者不加。 当所有子节点都不加的时候,仅仅包含根节点一个,即dp[u][1]。那么我们需要对dp[u][

2011-09-24 17:10:34 660

原创 POJ 1185 炮兵阵地 状态压缩(DP)

题意:司令部的将军们打算在N*M的网格地图上部署他们的炮兵部队。一个N*M的地图由N行M列组成,地图的每一格可能是山地(用"H" 表示),也可能是平原(用"P"表示),如下图。在每一格平原地形上最多可以布置一支炮兵部队(山地上不能够部署炮兵部队);一支炮兵部队在地图上的攻击范围如

2011-09-24 09:17:45 616

原创 POJ 2411 Mondriaan's Dream 状态压缩(DP)

题意:给出一个h*w的矩阵,用长为1宽为2,或者长为2,宽为1的骨牌来填满,求方案数。题解:放骨牌的时候要么横着放,要么竖着放。现在来规定放置方式,对于矩阵上任意一个点[i,j],在上面放置一块骨牌,如果横着放,那么占据[i,j], [i,j+1];如果竖着放则占据[i,j]

2011-09-22 18:57:33 553

原创 HDU 4031 Attack 树状数组

题意:911事件十周年之际,美国建立了一套新的防御系统。每个点都可以进行自动防御,但是防御过后该点的防御需要一段冷却时间,也就是说在此期间不能再进行防御。现在又两种操作:1.恐怖分子每次会对一段范围进行攻击。2.指挥官询问某点成功防御的次数。题解:参考http://blog.csdn.net/moorage/article/details/6785726#include using n

2011-09-20 20:15:15 1355

原创 HDU 4041 Eliminate Witches! 树的遍历

题意:2011北京网赛题目。输出遍历的路径。#include #include #include #include using namespace std;#define N 1000010#define M 50010struct Item{

2011-09-20 16:29:08 1153

原创 HDU 4049 Tourism Planning 状态压缩(DP)

题意:2011北京网赛题。一些朋友结伴旅游,他们的路线及起点终点都已经确定。每一个人都有权中途离开队伍,或者干脆第一座城市就不去,但是一旦离开就不可以再回来。每座城市都有一个消费值cost,所有人在该城市的消费一样。第 i 个人对第 j 座城市有一个兴趣值inter[i][j]。

2011-09-19 20:33:39 1790 2

原创 HDU 4046 Panda 树状数组

题意:给你一个字符串,由'w' 和 'b' 组成,对该字符串有俩个操作,当输入为0 a, b时,询问区间[a,b] 内有多少个串 为 "wbw";当输入为1,k,,ch时,将下标为k的字符改为字符ch;#include #include using namespace std;int n, m;int c[60000];char str[60000]

2011-09-18 21:12:23 1397

原创 POJ 3254 Corn Fields 状态压缩DP

题意:John买了一块矩形的地。他想在上面种草喂奶牛,但是有的格子比较贫瘠不能种草,我们用0表示。否则用1表示。由于奶牛不喜欢挤在一起,所以任何两个相邻格子不能都种上草。现在问你有多少种种草的方式。当然,不种草也算一种方式。题解:第 i 行的第 j 中状态由前一行决定。故枚举

2011-09-17 22:06:30 753

原创 POJ 3225 Help with Intervals 线段树

题意:给出一个区间 0 - 65535。五种操作:OperationNotationDefinitionUnionA ∪ B{x : x ∈ A or x ∈ B}IntersectionA ∩ B{x : x ∈ A and x ∈ B}Relative complementationA − B{x :

2011-09-16 22:41:41 840

原创 HDU 4027 Can you answer these queries 线段树

题意:在一场战役中,敌方有一排编号为1至n的战舰。你的指挥官有两种命令: 1.下令使用秘密武器攻击敌方战舰,每次攻击使得敌方一定范围的所有战舰的耐久度降低至原来的平方根(若平方根不为整数,那么舍去后面的小数部分)。2.询问敌方一定范围内的所有战舰的耐久度之和。题解:网赛卡在这道题上了。泪流满面呀。稍不注意就TL, 超时的代码也贴出来,吸取教训···。640ms,把down函数内联可以到50

2011-09-12 10:48:58 914

原创 POJ 3299 Humidex 杂题

题意:略。按公式便好。#include #include #include using namespace std;int main(){ double one, two; char first, second; cout << setprecision (

2011-09-10 01:37:53 475

原创 POJ 1088 滑雪 DP

题意:Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激。可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你。Michael想知道载一个区域中最长底滑坡。区域由一个二维数组给出。数组的每个数字代表点的高度。下面是一个例子

2011-09-10 01:32:09 1162

原创 POJ 1050 To the Max DP

题意:给定一个n*n的矩阵,求一个子矩阵,使得该矩阵的元素之和最大。思路:经典的DP。由一维到二维。1.必须先了解一维的情况,对于一维的数组而言,则转化为用DP求最大连续子序列,DP的状态方程为:sum[i] = max(sum[i-1] + num[i], 0)。

2011-09-10 01:21:04 522

原创 POJ 1083 Moving Tables 贪心

题意:已知有400个房间,有n张桌子必须从a 房间搬到 b 房间,搬每张桌子所花的时间都是10分钟。走廊上每次只能容下一张桌子,但是不同的地方允许同时搬运。求将所有的桌子全部搬完最少要花多少时间。题解:给出两种解法。#include #include using namespace std;struct item{ int a, b, flag;} move

2011-09-10 01:14:05 823

原创 POJ 2602 Superlong sums 大整数求和

题意:大整数相加。#include int array[1000002];int main(){ __int64 n, i; char a, b; int carry = 0; scanf( "%I64d", &n ); getchar(); for ( i = 0; i < n; i++ ) { a = getchar();getch

2011-09-10 00:57:30 964

原创 POJ 2624 Charm Bracelet DP(背包问题)

题意:Bessie去珠宝点里买镯子,现在有n只镯子,每只有有一个权重w,一个吸引力d。Bessie最多能拥有的权重为weight。求Bessie所能买得镯子的总吸引力的最大值。#include#includeusing namespace std;int dp[128

2011-09-10 00:49:24 677

原创 POJ 1276 Cash Machine DP(多重背包化01背包)

题意: 现在需要价格总额为cash的钱,有version种面值的钱币,每种钱币的数目为amount,面值为denomination,求解在小于或等于所需价格总额的情况下所能组成的最大价值总和.题解:每一种货币面值乘以系数1,2,4,...,2^(k-1), amount-2^

2011-09-10 00:38:19 646

原创 POJ 2063 Investment DP(完全背包)

题意:John有一笔钱,他想投资来获得利润。现在给出他的本金,准备投资的时间长,可以购买的基金种类,以及每一种基金的购价与利息。求他可以获得的最大收益。每一年的利息算入下一年的本金。题解: 由于基金的购价都是1000的倍数,所以可以将本金除1000来缩小背包。#inclu

2011-09-09 23:51:17 769

原创 POJ 2159 Ancient Cipher 杂题

题意:给定 str1, str2, 如果 str2 经过加密可以变成 str1。 输出YES,否则输出NO. 加密方式有两种,一种是改变字符,一种是调换顺序。题解:这题还是耽搁了一会儿。一开始把题意理解错了,将substitution cipher (置换密码):当做按字典序偏移任意个位置。所以一直WR。看了别人的解释:“substitution cipher (置换密码):

2011-09-09 23:21:16 738

转载 C库函数qsort七种使用方法示例

七种qsort排序方法一、对int类型数组排序C++代码int num[100]; Sample:int cmp ( const void *a , const void *b ) { return *(int *)a – *(int *)b;

2011-09-09 22:58:02 1495

原创 C++扫雷代码

#include #include #include using namespace std;int map[12][12]; // 为避免边界的特殊处理,故将二维数组四周边界扩展1int derection[3] = { 0, 1, -1 }; //方向数组

2011-09-09 22:56:00 20456 2

原创 POJ 1328 Radar Installation 贪心

题意:海中有许多岛屿,现在要再海岸上建立雷达,但是每个雷达的覆盖半径只有d,为了使每个岛屿都被覆盖到,求最少需要多少雷达。(建立坐标系,海岸为 x 轴,岛屿以坐标形式给出。题解:先求出每个岛屿的被覆盖范围,即当岛屿被可以被覆盖时,雷达可以建立的最左位置及最右位置。将每个岛屿的最左位置升序排列,然后贪心求解。#include #include #include #include

2011-09-09 22:50:34 656

原创 POJ 2109 Power of Cryptography 数论

题意:求 k,令 k 的 n 次方和 p 相等。题解:偷了下懒。 不过高精度还得再熟悉下,有空就系统补做一下吧。不过c++中类型的有效范围还是得记着:类型                长度      有效数字      绝对值范围float

2011-09-09 22:20:03 373

原创 POJ 2586 Y2K Accounting Bug 贪心

题意:对于MS Inc来说,每个月如果盈利则必盈利sur,如果亏空则必亏空def(这个公司很怪)。它每五个月进行一次统计,共统计八次(1-5月一次,2-6月一次...)。统计的结果是这八次都亏空。判断MS Inc全年否能盈利,如果能则求出最大的盈利。如果不能则输出"Deficit"。题解:已知每月盈利为S,亏损为 d。则每个阶段的5个月里要么是 S,剩余的都是 d。即5个月中, 4

2011-09-09 22:08:10 494

原创 POJ 2739 Sum of Consecutive Prime Numbers 数论

题意:给定一个数值,判断他是否等于一连串素数之和(这些素数必须是连续的)。输出满足条件的组合的个数。题解:预先求出连续的素数和。然后找到不大于n的最大素数,那么所有的组合(连续不断的素数)只可能在此范围内。#include #include using namespa

2011-09-09 21:21:06 691

原创 POJ 2262 Goldbach's Conjecture 数论

题意:哥德巴赫猜想:任何两个大于4的偶数都等于两个奇素数之和。输入n, 求 n = a + b, a, b 为奇素数, 若不存在这样的a, b,输出Goldbach's conjecture is wrong。#include #include using namespa

2011-09-09 20:45:12 500

原创 POJ 3295 Tautology 模拟

题意:判断一个字符串是否是用真式。Definitions of K, A, N, C, and E     w  x  Kwx  Awx   Nw  Cwx  Ewx  1  1  1

2011-09-09 20:35:26 478

原创 POJ 1068 Parencodings 模拟

题意:对每一个括号串S (((()()())))。P-sequence :4 5 6666 表示第k个右括号之前的左括号个数。W-sequence :1 1 1456 表示每个右括号以及与它匹配的左括号之间的左括号个数。给出P-sequence求W-sequence。#inc

2011-09-09 19:24:03 499

原创 POJ 1753 Flip Game BFS/DFS

题意:给定一个4*4的棋盘。棋盘上每个格子有黑白两种状态。每修改一个格子的状态,那么它上下左右的格子也随之被修改。目标是让所有格子都变成黑或者所有格子都变成白。问至少需要修改几次才能实现目标。题解:给出了DFS,BFS两种解法。DFS:#include using

2011-09-09 18:32:43 841

原创 POJ 1503 Integer Inquiry 高精度加法

题意:输入若干个大整数,求其和。#include #include using namespace std;int sum[111];char str[101];int main(){ int i, j, len; while ( cin >> str

2011-09-09 17:33:19 507

原创 POJ 3006 Dirichlet's Theorem on Arithmetic Progressions 素数

题意:给出一列等差数列。等差数列的起点a与公差d互素。求数列的第n个素数。#include #include using namespace std;int Prime[1000000];int main(){ int i, j; memset(Prime

2011-09-09 17:27:31 550

原创 POJ 2632 Crashing Robots 模拟

题意:一个矩形,分成了A*B个大小相同的正方形,把n个机器人放在某些小正方形里,给他们一些指令,他们会一步一步按指令行动,每次只有一个机器人行动。如果两个机器人在同一个小正方形里了他们会相撞;如果出界了,会撞到墙。输出做一些指令之后机器人的第一次相撞的状态。#includ

2011-09-09 17:04:55 703

C++ STL 标准模板库

ACMer必备.内容非常详尽,不过是英文版的额。

2012-07-24

空空如也

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

TA关注的人

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