hdu 3033 I love sneakers!】的更多相关文章

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3033 题意:给你K种品牌,每种品牌有不同种鞋,现在每种品牌至少挑一款鞋,问获得的最大价值,如果不能每种品牌都挑到则输出Impossible 自己太弱了!!!!!这个题都想不出来!!!!!还要看题解!!!!!! 设计状态dp[i][j]代表从前i种品牌里花了不超过j元钱. 那么状态转移可以这样: 1.我只买第i种品牌的第k个. 2.我在第i种品牌里不光买第k个. 变成状态转移方程就是: 1. dp[i…
I love sneakers! Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Problem Description After months of hard working, Iserlohn finally wins awesome amount of scholarship. As a great zealot of sneakers, he decides to s…
I love sneakers! Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 2884    Accepted Submission(s): 1180 Problem Description After months of hard working, Iserlohn finally wins awesome amount of s…
I love sneakers! Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 3265    Accepted Submission(s): 1337 Problem Description After months of hard working, Iserlohn finally wins awesome amount of sc…
题意: 有n<=100双鞋子,分别属于一个牌子,共k<=10个牌子.现有m<=10000钱,问每个牌子至少挑1双,能获得的最大价值是多少? 思路: 分组背包的变形,变成了相反的,每组物品至少挑1件(分组背包问题是至多挑1件). 由于每个牌子至少买1双,那么可以先装一件最便宜的进去,如果有好的再更新(注意每次的容量下限).而且同一双鞋子不能多次购买,这里要用01背包.对于当前容量cap,可能只装了某一牌子的一双鞋子(不一定最便宜),也可能装了多双,也可能只装了那双硬塞进去的最便宜的. 注意…
I love sneakers! Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 4503 Accepted Submission(s): 1845 Problem Description After months of hard working, Iserlohn finally wins awesome amount of scholars…
I love sneakers! Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 4464    Accepted Submission(s): 1824 Problem Description After months of hard working, Iserlohn finally wins awesome amount of sc…
I love sneakers! Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 4919    Accepted Submission(s): 2022 Problem Description After months of hard working, Iserlohn finally wins awesome amount of sc…
分组背包. #include <stdio.h> #include <string.h> #define mymax(a, b) (a>b) ? a:b typedef struct { int p, v; } shoe_st; shoe_st shoes[][]; ][]; ]; int main() { int n, m, k, g, p, v; int i, j, flg, t; while (scanf("%d%d%d",&n,&m…
看了许多的题解,都有题目翻译,很不错,以后我也这样写.直接翻译样例: /*鞋子的数量N[1, 100]; 拥有的金钱M[1, 1w]; 品牌数目[1, 10]*/ /*以下四行是对于每双鞋的描述*/ /*品牌种类a; 标价b; 高兴程度增加量c*/ /*每一种品牌的鞋子最少买一双,求最大的高兴程度*/ 很容易看出是分组背包的题型,trick是价格可能为0(居然有免费的),所以注意dp转移数组初始化-inf. #include <iostream> #include <cstring>…