![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
HDU
文章平均质量分 76
R00kie21
正是啥都苦短,故要活在当下。
展开
-
hdu 1024
HDU 1024一道典型的的动态规划题目,重点在与找到一种正确的状态规划方法,然后建立不同状态间转换的方程式。题意大致如下:给你n个数,要你在这n个数中取m段数(每段无交集),使这m段之和最大。每次输入格式:m,n,a1,a2,....an。一直读到文件尾。状态方程转换公式:dp[i][j]=max(dp[i][j-1]+arr[j] , max(dp[i-1][k])+arr原创 2016-12-16 11:26:51 · 429 阅读 · 0 评论 -
HDU 1055
题目大意:给你一棵树,数有N个节点,每个节点有权重w。你需要给这棵树的每一个节点进行涂色,每涂一个节点花费一个单位时间,开始时间设定为0,对于一个权重为W的节点,假定你在第T个的单位时间完成对它的涂色,那么对它的涂色的代价C=W*T,同时规定只有当某个节点父节点已经完成涂色时,你才能对它进行涂色操纵。要求你求出完成整颗树的涂色所需要的最小的花费。题解:这是道贪心的题目。首先我们看代价计原创 2017-03-05 14:17:48 · 576 阅读 · 0 评论 -
HDU 1053
题意:给你行字符串,要你求出这个字符串在ascll编码下的编码长度和haffman编码下的编码长度,并求出两者的比值。求解:ascll编码的长度就为字符串长乘以8。至于haffman编码,介绍一下。在haffman编码中,我们统计每个字符出现的频率(次数),并将这个频率值作为这个字符的权重值,然后我们通过这些字符的权重值来建立一颗哈弗曼树以此来获取每个字符的haffman编码。首先,这是一原创 2017-01-23 01:07:24 · 631 阅读 · 0 评论 -
HDU 1042
计算N!,其中0代码如下:#include#include#include#includeusing namespace std;class big_number{public: int len; char num[41000]; big_number(){ len=0; for(int i=0;inum[i]='原创 2017-01-06 19:30:41 · 228 阅读 · 0 评论 -
HDU 5691
一道状压DP的题目。其实关于状压DP的题目很久之前便有所接触,只是一直没去学,今天通过此题算是初步学习了状压DP。状压DP本质上来说还是DP,重点在于找出每一步的状态,并且建立起走到下一步的状态转移方程。不过有的时候,状态的表示会要利用到状态压缩的方法。 状态转移方程:当第k个位置已经被固定填什么数时,向状态st里添加i并以i为结尾,dp[st|(1<<q[k])][q[k]] = max原创 2016-12-31 19:50:20 · 346 阅读 · 0 评论 -
HDU 1029
初看此题,就把它当做了一道哈希表的题目(因为题目范围很不明确)。后来自己也确实是用hash的方法过的。此处贴出,也是为了稍微复习下hash的知识。话不多说,以下是本人写的代码。Hash:#include#include#include#include#include#includeusing namespace std;const int mod=100003;int n,原创 2016-12-29 10:19:25 · 314 阅读 · 0 评论 -
HDU 1025
最长递增子序列很典型,自己开始想只想到了dp,却没想到用二分,或者说,重点是没有想到用一个B[n]数组作为辅佐,来记录序列长度为k的序列中,最小序列尾的值B[k]。这个辅佐数组非常重要,因为它有单调递增的性质(因为如果有B[3]>B[4],那么在得到B[4]的序列中的第三个数B[4]3也会小于B[4]并且小于B[3],即有B[4]3B[4]B[3],这有与B数组的定义相悖),因为这个性质我原创 2016-12-28 14:38:33 · 380 阅读 · 0 评论 -
HDU 1043(八数码问题)
一道八数码的题目,这里介绍其中一个解法:哈希+打表(比较水但简单的解法)。 首先,题目解法是将9个数字('x'看成数字9)的每一种排列看成一种状态,则共有9!种不同的状态。我们从结果状态(1,2,3,4,5,6,7,8,9,)开始bfs搜索,每到达一个状态就将这个状态标记上(一是标记这个状态可以到达结果,二是标记访问了这个状态,防止重复访问,ps:利用一个flag数组来进行标记),原创 2017-01-14 22:53:51 · 442 阅读 · 0 评论 -
HDU 1044
题意:勇士走迷宫,迷宫是个大小为H*W的矩阵图。其中'@'代表起点,'*'代表墙。勇士的目标是在限定时间内的,在走出迷宫的前提下,获得的宝物价值和最大。输入:首先一个整数T,代表case数。对于每个case,首先输入四个数W (1 输出:若无法走出迷宫,输出Impossible。可以走出时,请输出可以获得的宝物价值和的最大值。题解:一道状压的题目。重点在于将原始矩阵图中原创 2017-01-17 00:28:48 · 314 阅读 · 0 评论 -
hdu 1060
(转自网上牛人解题报告)题目大意是输入N,求N^N的最高位数字。1估计大家看到N的范围就没想法了。确实N的数字太大,如果想算出结果,即使不溢出也会超时。题目是这样转化的。首先用科学计数法来表示 N^N = a*10^x; 比如N = 3; 3^3 = 2.7 * 10^1;转载 2017-03-14 14:25:53 · 507 阅读 · 0 评论