hdu
文章平均质量分 70
calu
这个作者很懒,什么都没留下…
展开
-
hdu2048 全错位排序问题
hdu2048是全错位排序的题目!欧拉给我们证明了可以直接套用公式f(n)= nf(n-1)+(-1)^(n-2) 或 nf(n-1)+(-1)^(n) n=2,3,4……两个其实等价的 我个人是用后面那个的本文最后面是欧拉关于装错信封问题的求解思路。如果有兴趣的可以看看。附上代码:#include#includeint m原创 2013-10-29 00:48:51 · 1931 阅读 · 0 评论 -
hdu2955 01背包变形 菜鸟见谅
在我眼中的你 年华美丽盛开如诗 //这题的精度比较高,所以要调转一下思路。以偷到最多的钱为背包最大容量,求出不被抓的概率//题意给的是被抓的概率P,所以不被抓的概率就是1-P//幼稚园的老师告诉我们被抓的事件是独立的所以,f[l]=max(f[l],f[l-a[k].C]*a[k].M);//这里是都不被抓的概率//不过这题要注意精度 #include原创 2013-11-12 16:33:40 · 1237 阅读 · 4 评论 -
hdu4772
水题核心思想是:a[i][j]=a[j][N-i];其他自己看吧这里偷懒直接开了c1,c2,c3来存#include #include #include #include using namespace std;int a[35][35],b[35][35];int c1[35][35],c2[35][35],c3[35][35];int ans1原创 2013-11-09 20:58:01 · 1045 阅读 · 0 评论 -
hdu1864
这题真的让楼主抓狂!因为一边帮别人修电脑还要一边写代码,搞到思想都复杂了。这题就是三种情况这张发票不能报销1.超出1000块2.里面包含除了ABC的种类3.里面单项的总价超过600没了。这题的测试数据很水100.00 51 A:51 B:201 C:241 A:301 A:60答案应该是95可是网上很多人的解题报告答案都是90,所以楼主只原创 2013-11-08 22:06:31 · 645 阅读 · 0 评论 -
hdu1963 教你如何从有钱人变更有钱的人
股票可以无数次买,所以完全背包问题太简单了,就不打注释了;#include #include #include #include using namespace std;int max(int a,int b){ if(a>b)return a; else return b;}int main(){ int n,i,j,f[200000],m,w[原创 2013-11-19 18:01:10 · 1811 阅读 · 2 评论 -
hdu1284经典钱币兑换问题
钱币兑换问题。完全背包。这种是求背包问题最多的组合方案#include #include #include #include using namespace std;int dp[32768];int main(){ int n; while(~scanf("%d",&n)) { int i,j;原创 2013-11-18 20:54:59 · 1005 阅读 · 0 评论 -
hdu1114小猪抢劫银行
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1114完全背包题意:给出小猪钱罐的重量和装满钱后的重量,然后是几组数据,每组数据包括每种钱币的价值与重量,要求出重量最少能装满钱罐时的最大价值#include #include #include #include using namespace std;int f[10000原创 2013-11-17 22:55:55 · 1081 阅读 · 0 评论 -
hdu3466
题意:输入 N,M N:多少个测试用例 M:你手上拥有的钱 Pi,Qi,Vi Pi: 这件物品的价格 Qi:你手上钱M必须大于等于Qi才能买原创 2013-11-02 17:34:35 · 600 阅读 · 0 评论 -
hdu1248寒冰王座
http://acm.hdu.edu.cn/showproblem.php?pid=1248完全背包#include #include #include #include using namespace std; int f[100005],n,i,m,j;int max(int a,int b){ if(a>b)return a; else re原创 2013-11-16 21:19:38 · 846 阅读 · 0 评论 -
hdu4508 完全背包
http://acm.hdu.edu.cn/showproblem.php?pid=4508 这题是中文的很简单。自己看吧因为每件物品可以无限取,所以是完全背包问题#include #include#include#includeusing namespace std; int f[100005],w[105],v[105],n,i,m,j;int ma原创 2013-11-16 20:47:04 · 855 阅读 · 0 评论 -
hdu2639
解决了2602之后,这道题跟上面的题目有些不同,因为这里要求的是第K优解 求第K优解 对于求次优解、第K优解类的问题,如果相应的最优解问题能写出状态转移方程、用动态规划解决,那么求次优解往往可以相同的复杂度解决,第K优解则比求最优解的复杂度上多一个系数K。其基本思想是将每个状态都表示成有序队列,将状态转移方程中的max/min转化成有序队列的合并。这里仍然以01背包为例原创 2013-10-29 01:08:16 · 939 阅读 · 0 评论 -
hdu 4572 Bottles Arrangement找规律简单题
找规律的简单题。太简单了!把规律告诉你们如果输入的是:3 3 那答案就是 3 2 3+2+3=8 3 3 5 3 2 1 3+2+1+3+2=11原创 2013-10-12 14:09:08 · 918 阅读 · 0 评论 -
hdu2602
这题就是一题十分简单明了的01背包问题。直接用01背包的函数就可以AC出来了。最优解方程:f[j]=max(f[j],f[j-c[i]]+w[i])十分简单的一题。不过因为太简单了,楼主在A的时候把输入的物体价值和体积写反了,然后一直找不出问题。所以看题是十分重要的一件事情 。磨刀不误砍柴工。题目: http://acm.hdu.edu.cn/showproblem.php原创 2013-10-29 00:42:28 · 754 阅读 · 0 评论 -
hdu2546
我想哼唱史诗般的歌曲,你愿坐下来聆听么!!! 这是一题01背包问题。做之前最好先了解一下。 01背包问题大意就是有一个容量为V 的包,然后要往里面装东西。装的物品的体积是v[i],它的价值是w[i].那么我们可以得到下面一条递推方程。即f[i][v]=max{f[i-1][v],f[i-1][v-c[i]]+w[i]} //f[i][v] 表示前 i 件物品原创 2013-10-29 00:46:15 · 766 阅读 · 0 评论 -
hdu2817 A sequence of numbers
这题就是判断是等差数列还是等比数列,然后计算结果mod200907 因为数字比较大10的九次方所以等比用到了快速幂求模不懂可以看看算法导论,在大数那里有讲#include #include #include #include int modPow(__int64 x,__int64 y) //计算x的y次方求余 快速幂不懂可以百度{ __i原创 2013-12-02 19:53:28 · 1041 阅读 · 0 评论