【问题描述】 给定n个物品,每个物品可以不选或选一个,第i个物品的价格为ci,价值为vi,出现时间为ti。有m个询问,每次询问在出现时间不超过Ti的所有物品中选若干件,总花费不超过Mi的情况下,被选择物品的价值和的最大值是多少。 【输入格式】 第一行输入n,m。 接下来n行每行3个整数表示ci,vi ...
分类:
其他好文 时间:
2018-11-05 22:24:46
阅读次数:
165
题意:。。。 策略:动态规划。 由于是求至少能得到一个offer的概率,那我们能够反着求。求得不到一个offer的概率。最后用1减去就好了. 代码: #include<string.h> #include<stdio.h> double dp[10010]; struct node{ int a; ...
分类:
其他好文 时间:
2017-05-20 14:58:56
阅读次数:
131
POJ3111 K Best,看讨论区说数据有点变态,精度要求较高,我就直接把循环写成了100次,6100ms过,(试了一下30,40都会wa,50是4000ms) 第一次在POJ上看到下面这种东西还是很好奇的, 一个题目可以接受多种正确答案,即有多组解的时候,题目就必须被Special Judge ...
分类:
其他好文 时间:
2016-04-01 22:07:41
阅读次数:
239
Cow Exhibition
Time Limit: 1000MS
Memory Limit: 65536K
Total Submissions: 9424
Accepted: 3619
Description
"Fat and docile, big and dumb, they look so stupid, they a...
分类:
其他好文 时间:
2014-11-26 01:28:44
阅读次数:
267
题意:求最多购买的件数以及有几种方法。
一看到这题就想到了背包,因为求得是种类数,所以我们可以将件数看做价值,将价格看做重量,这就变成01背包了(dp),但是还要求有几种购买方案,那么再来一个背包(kind)。
分析:有三种情况:
1》dp[j] < dp[j-s[i]]+1
那么对于这一种情况 方案背包的状态转移方程是kind[j] = kind[j-s[i]]?kind[j-s[i]]:1;(考虑到kind[j-s[i]] ==0的时候,这时候kind[j] = 1);
证明:为什么是kind[j] ...
分类:
其他好文 时间:
2014-08-25 22:57:55
阅读次数:
255
题意:。。。
策略:动态规划。
因为是求至少能得到一个offer的概率,那我们可以反着求,求得不到一个offer的概率,最后用1减去就好了.
代码:
#include
#include
double dp[10010];
struct node{
int a;
double b;
}s[10010];
int main()
{
int n, m, i, j;
...
分类:
其他好文 时间:
2014-08-13 22:30:47
阅读次数:
229
分析:
首先这道题不能当做普通的01背包问题,因为W 我们知道价值v小的很,最大100, 那我们就可以利用这一点,拿价值 之和作为原来的质量之和, 但是有一点要注意:因为题意是要在质量不超过W的范围内,找出最大的价值,我们现在是以最大的价值求质量,那么仔细分析一下,我们就能想明白,要以某价值i的背包存放尽量小的质量,这样反过来分析一下就可以知道,较小的质量有个较大的价值序号,这样完全满足题意了,...
分类:
其他好文 时间:
2014-08-02 13:01:23
阅读次数:
168