- 博客(3)
- 收藏
- 关注
原创 解析Bone Collector II HDU - 2639
#include<bits/stdc++.h> using namespace std; const int maxn=1005; int main() { int T; cin>>T; int dp[maxn][33],val[maxn],vol[maxn],A[33],B[33]; while(T--) { int n,v,k; cin>>n>>v>>k; int i,j,kk; for(i=0;i<n;i++)
2020-10-24 21:59:17 765
原创 Cow Exhibition(变形的01背包)
题目链接:http://poj.org/problem?id=2184 该题目的意思:一共有n头牛,si和fi为其聪明度和有趣度,我们需要选择哪些牛参加展览是的两个的和最大,同时保证这两个值都不为负数。 思路 这道题是一道dp题目,其转移方程就是看是否放下这一头牛,因此我们可以使用01背包来解决这个问题,将其聪明度看为是体积,有趣度看为价值,我们需要计算的是当聪明度大于等于0的时候有趣度最大,然后将两个相加,以此来使得相加最大,但是其中有一个困扰是作为体积来看的聪明度会有负值,所以我们需要在程序中使其始终为
2020-10-11 16:04:16 180
原创 The King’s Ups and Downs【dp,排列组合】
在题目中主要的思考是,如何确定第n个和前面的关系,我们首先考虑的是,n和前面n-1个的关系,我们在n个中将n个人从矮到高依次排序为1~n,而依照题意,我们在第i个位置插入n必须满足题目意思,又因为n为当前最高点,所以只能左边为高矮,右边为矮高,又因为在全部的排列组合中,只存在矮高和高矮的顺序,所以设dp[i][0]为高矮,dp[i][1]为矮高,dp[i][0]=dp[i][1]=sum[i]/2;又因为在前面j个为高矮的时候可以在总共的i个数中取i个,所以我们可以用排列组合的方法分析在i个中取前j个种类是
2020-10-10 13:44:42 131
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人