HDU
文章平均质量分 71
Troy_Cornelius
这个作者很懒,什么都没留下…
展开
-
HDU 4003 Find Metal Mineral
/* 题目大意:给你一颗树,你有K个机器人,每条有一定的权值,问用K个机器人访问所有节点所需的权值和最少是多少。 典型的树dp问题 设状态dp[i][j]表示到达节点i,用j个机器人访问其本身及其所有子节点所需要的最少代价 状态转移方程: if (j == 0) dp[i][0]原创 2011-09-28 16:07:10 · 790 阅读 · 0 评论 -
HDU 4268 Alice and Bob 贪
题目:http://acm.hdu.edu.cn/showproblem.php?pid=4268 很明显的贪心,将两边的矩阵先按h,再按w排个序,对于对于Alice某个矩阵(x, y),在Bob所有x‘ #define pb push_back #define mp make_pair #define fi first #define se second #define all(a)原创 2012-09-08 20:08:32 · 4360 阅读 · 10 评论 -
HDU 4272 LianLianKan 状态压缩DP
题目http://acm.hdu.edu.cn/showproblem.php?pid=4272 首先吐槽下坑爹的题意,无端端卡了将近4个小时,气死了... 弱菜不会各种水的方法,看到距离那么小,直接状态压缩DP搞过去的 状态很简单dp[depth][st], 表示当前取到高度为depth,从depth开始数起的连续10个位的状态(0表示改块已被消去),然后转移也很裸了,至于为什么取10个?原创 2012-09-08 19:30:42 · 3803 阅读 · 6 评论 -
HDU 4381 Grid 简单DP
http://acm.hdu.edu.cn/showproblem.php?pid=4381 1 ai xi :You can choose any xi black boxes in interval [1,ai], and color them white; 2 ai xi :You can choose any xi black boxes in interval [ai,n原创 2012-08-22 23:42:45 · 1065 阅读 · 0 评论 -
HDU 4351 Digital root 线段树
裸的线段树。 每个节点记录三个值,假设当前节点表示的区间是[L, R], 记录从L开始往右连续取能取到不同的root值,从R往左连续取能取到不同的root值,在中间取得连续区间的不同的root值 合并的时候也很简单,左儿子从左边全取,然后和右儿子从左边取连续的段的所有情况合并。其他两个同理 比赛时候写漏佢直接将左右儿子的中间段值回传到父亲节点,怨念啊!!!! 如果只这样写会TLE的,注原创 2012-08-09 18:50:46 · 1031 阅读 · 0 评论 -
HDU4303 Hourai Jeweled
多校的第一场的题目。 一个典型的树DP统计题目。这道题目不是难在编程上,而已关键是细节上。 这道题有几个注意的小技巧 1.一开始就要对每个节点的儿子按颜色排个序,这样方便dfs回来的时候统计就按颜色一块块加起来统计就是了,不然的话每次再枚举会高达n^2的复杂度 2.统计的时候主要是根据通过点u连接的两边的方案数*val的总值,稍微注意点细节,很容易算漏算错。算完当前节点,记得算上跟它的父节原创 2012-07-23 00:19:47 · 1375 阅读 · 0 评论 -
HDU 2770 Easy Climb
首先,这题有个关键的地方就是要想到虽然它的高度很大,有10^9次方,但是实际上它的有效状态的高度只有h[i] +- k * d (k: 0 .. n-1)这么多,就是最多2*n^2个有效的高度 至于为什么是只有2*n^2的有效高度,请移步http://hi.baidu.com/sunhaowenprime/item/f7a379ba187467f663388e2d zjut_DD大牛的讲解 基原创 2012-07-15 23:32:33 · 1658 阅读 · 0 评论 -
HDU 4016 Magic Bitwise And Operation
题目大意:从N个数中选k个数使得&运算后结果最小 解题思路:经典的搜索+剪枝,抓住每次&运算之后得到的值肯定 #include #include #include #include using namespace std; const long long inf = (1LL<<62) - 1; int n, k; long long num[45], sum[45], ans;原创 2011-11-12 13:52:43 · 716 阅读 · 0 评论 -
HDU武汉大学第五届E鸣杯程序设计大赛 解题报告
首先声明这份解题报告只是小菜的一点做法,并非官方题解。 OK,下午没事干去水了下WHU的E鸣杯的比赛,题目比较简单,小菜慢慢做2个半小时也AK了~已经算很慢了,YM大仙1个半小时就AK了~Orz... 大概说下做法吧 1000:A+B problem, 汗,看到这题的时候害怕题目各位猥琐,在纠结要不要写JAVA的大数,然后刷了下Board,一群人过了,囧,保险起见开了个lon原创 2011-11-27 18:23:55 · 2302 阅读 · 2 评论 -
HDU 2473 Junk-Mail Filter 并查集拆分
这题关键是如何用并查集处理拆除的点,方法就是加虚拟结点,初始时将每个点的father对应指向一个虚拟结点,合并不变,删点的时候直接把该点的father指向一个新的虚拟点就是了。 #include #include #include #include #include原创 2011-10-14 16:00:41 · 1602 阅读 · 0 评论 -
HDU 4077 Slalom
DP+计算几何(线段相交判断) 题目大意:一个人从最高点出发,从高到低有很多区间,这个人必须通过全部的区间到达最底,问最短的路径是多少? 设dp[i][side]表示到达第i层左(右)端点的最短距离,然后特殊处理一下最后一层就OK了 #include #include原创 2011-10-12 21:52:08 · 1434 阅读 · 0 评论 -
HDU 3660 Alice and Bob's Trip
/* 题目大意:Alice 和 Bob在一颗树上轮流走,每天边有一定的权值,Alice想走的权值和尽量小,Bob想走尽量大,同时所走的权值和必须在[L, R]这个给定的区间内,Bob先走。求Bob能得到的最大的权值和是多少? 注意:如果还能走,Alice就不能停下来,一直都到不原创 2011-09-30 15:25:12 · 1580 阅读 · 0 评论 -
HDU 4389 X mod f(x) 数位统计DP
题目大意: def f(x): int f ( int x ) { if ( x == 0 ) return 0; return f ( x / 10 ) + x % 10; } 给出这么个函数,求[L, R]之间有多少个x满足x % f(x) == 0的 分析: 首先,这题的区间范围比较大,直接枚举必然TLE。(至于那种打表暴力搞过去的就不说,反正我个人是原创 2012-08-22 02:41:35 · 1903 阅读 · 0 评论