日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

洛谷P1757 通天之分组背包 [2017年4月计划 动态规划06]

發布時間:2023/12/1 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 洛谷P1757 通天之分组背包 [2017年4月计划 动态规划06] 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

P1757 通天之分組背包

題目背景

直達通天路·小A歷險記第二篇

題目描述

自01背包問世之后,小A對此深感興趣。一天,小A去遠游,卻發現他的背包不同于01背包,他的物品大致可分為k組,每組中的物品相互沖突,現在,他想知道最大的利用價值是多少。

輸入輸出格式

輸入格式:

兩個數m,n,表示一共有n件物品,總重量為m

接下來n行,每行3個數ai,bi,ci,表示物品的重量,利用價值,所屬組數

輸出格式:

一個數,最大的利用價值

輸入輸出樣例

輸入樣例#1:
input: 45 410 10 110 5 15 20 250 400 2 輸出樣例#1:
output:30

說明

1<=m<=1000 1<=n<=1000 組數t<=100

?

一直以為背包問題最后出結果要掃一遍f,今天才發現直接輸出f[容積]就夠了。。

分組背包其實很簡單,每一個組看成一個物品就是一個01背包。

然后在每個組里選加進去之后得到的最大值就可以。

我用了vector存每個組,其實完全可以用二維數組,[i][0]來存個數。

最好別用vector(盡管我用了),容易被卡

?

#include <iostream> #include <cstdio> #include <cstdlib> #include <algorithm> #include <cstring> #include <vector> using namespace std;#define max(a,b) ((a) > (b) ? (a) : (b)) #define min(a,b) ((a) < (b) ? (a) : (b))inline int read() {int x = 0;char ch = getchar();char c = ch;while(ch > '9' || ch < '0')c = ch,ch = getchar();while(ch <= '9' && ch >= '0')x = x * 10 + ch - '0',ch = getchar();if(c == '-')return -1 * x;return x; }const int INF = 99999999999;int n,m,groupn; vector<int> group[100 + 10]; int f[1000 + 10]; int w[1000 + 10]; int v[1000 + 10]; int minn[100 + 10];int main() {m = read();n = read();for(int i = 1;i <= n;i ++){int temp;v[i] = read();w[i] = read();temp = read();group[temp].push_back(i);minn[temp] = min(minn[temp], v[i]);groupn = max(groupn, temp);}for(int i = 1;i <= groupn;i ++){int size = group[i].size() - 1;for(int j = m;j >= minn[i];j --){for(int k = 0;k <= size;k ++){if(j >= v[group[i][k]])f[j] = max(f[j],f[j - v[group[i][k]]] + w[group[i][k]]);}}}printf("%d", f[m]);return 0; }

?

?

轉載于:https://www.cnblogs.com/huibixiaoxing/p/6734172.html

總結

以上是生活随笔為你收集整理的洛谷P1757 通天之分组背包 [2017年4月计划 动态规划06]的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。