最優裝載問題(貪心)
問題簡述:給出n個物體,第i個物體重量為wi。選擇儘量多的物體,是的總重量不超過C。
分析:最簡單的一種了,排序,依次選擇每一個物體,直到無法裝下為止。
附程式碼如下:
#include <bits/stdc++.h> using namespace std; int a[10010]; int main() { int n, sum = 0, maxn, k = 0; while(cin >> n >> maxn) { for(int i = 0; i < n; i++) { scanf("%d", &a[i]); } sort(a, a+n); for(int i = 0; i < n; i++) { sum += a[i]; if(sum <= maxn) { k++; } else { sum -= a[i]; break; } } printf("%d %d", k, sum); } return 0; }
相關推薦
最優裝載(貪心演算法)
演算法設計例題:最優裝載(貪心) memory limit: 32768KB time limit: 1000MS accept: 24 submit: 68 Description 有一批集裝箱要裝上一艘載重量為C的輪船。其中集裝箱i的重量為wi。最
最優分解(貪心)
Description:設n是一個正整數。現要求將n分解為若干個自然數的和,且使這些自然數的乘積最大。對於給定的正整數n,程式設計計算最優分解方案。 Sample Input: 10 Sa
最優裝載(部分揹包問題,貪心,c++)
最優裝載 總時間限制: 1000ms 記憶體限制: 65536kB 描述 給定一個最大載重量為M的卡車和N種食品,有食鹽,白糖,大米等(假設它們都是散裝且大貨車只受重量限制不受體積限制)。已知第i種食品的最多擁有Wi公斤,其商品價值為Vi元/公斤,程式設計
最優分解(貪心演算法)
#include<stdio.h> #include<stdlib.h> int main(){ int n,i,sum=0; int diff,result,j=0; scanf("%d",&n); int *arr = (int
求兩個不等長、有序陣列a和b的中位數的最優解(排除法 )
求兩個排序陣列A和B的中位數 最優解 O(log (m+n)) 不斷刪除個 k/2個數,然後 k = k/2 不斷刪掉陣列中肯定不是第k小的那些數字,從而能夠不斷地減小陣列,在這個過程中,我們要找的那個數字的序號(k)也會不斷地減小。 陣列中的哪些數字可以刪除
淺析 AngularJS 全球化最優方案(六)
本節是最後一節關於AngularJS的國際化和本地化方案討論,具體會和大家聊下目前有哪些第三方庫,以及優缺點。 首先談談國際化,AngularJS自帶國際化支援,提供了一些語言的國際化資原始檔檔案,具體的覆蓋面,大家可以去官網查詢。 下面聊聊怎麼使用這些資原始檔,一般來說
貪心演算法(最優裝載)
貪心演算法 貪心本質:一個貪心演算法總是作出當前最好的選擇,也就是說,它期望通過區域性最優選擇從而得到全域性最優的解決方案。 貪心演算法祕籍: (1)貪心策略 首先確定貪心策略,選擇當前看上去最好的一個方案。 (2)區域性最優解 根據貪心策略,一步一步地得到區域性最優解。 (3)全域
最優裝載問題(貪心)
問題簡述:給出n個物體,第i個物體重量為wi。選擇儘量多的物體,是的總重量不超過C。 分析:最簡單的一種了,排序,依次選擇每一個物體,直到無法裝下為止。 附程式碼如下: #include <bits/stdc++.h> using namespace std;
最優裝載問題(貪心基礎)
最優裝載問題。給出n個物體,第i個物體重量為w[i]。選擇儘量多的物體,使得總重量不超過C。 【分析】 由於只關心物體的數量,所有裝重的沒有裝輕的划算。只需把所有物體按重量從小到大排序,一次
高效演算法設計_貪心法(最優裝載問題,部分揹包問題,乘船問題)
最優裝載問題 題目:有一批集裝箱要裝上一艘載重量為c的輪船。其中集裝箱i的重量為Wi。 輸入: 100 6 100 20 25 25 20 20 輸出: 20 20 20 25 25 100 1 1 1 1 0 0 思路:最優裝載問題要求確定在
最優裝載問題(貪心法)
問題描述: 有一批集裝箱要裝上一艘載重量為c的輪船。其中集裝箱i的重量為Wi。最優裝載問題要求確定在裝載體積不受限制的情況下,將盡可能多的集裝箱裝上輪船。 問題可以描述為: 式中,變數xi = 0 表示不裝入集裝箱 i,xxi = 1 表示裝入集裝箱 i。
11091 最優自然數分解問題(貪心)
11091 最優自然數分解問題 時間限制:1000MS 記憶體限制:65535K 提交次數:0 通過次數:0 題型: 程式設計題 語言: C++;C;VC;JAVA Description 問題描述:設n是一個正整數。 (1)現在將n分解為若干個互不相
[POJ 2728]Desert King(0-1分數規劃/最優比率生成樹)
eat ice finall nec clu bool ann channels try Description David the Great has just become the king of a desert country. To win the respec
bzoj2539 丘比特的煩惱、黑書P333 (最優二分圖匹配)
def 等於 ostream while 感情 deb valentine 區分 匹配 丘比特的煩惱 題目描述 Description 隨著社會的不斷發展,人與人之間的感情越來越功利化。最近,愛神丘比特發現,愛情也已不再是完全純潔的了。這使得丘比特很是苦惱,
noip 2009 最優貿易(最短路+反向最長路)
輸出 main 路線 ins 城市 mes 部分 cst don 題目描述 C 國有 n 個大城市和 m 條道路,每條道路連接這 n 個城市中的某兩個城市。任意兩個城市之間最多只有一條道路直接相連。這 m 條道路中有一部分為單向通行的道路,一部分為雙向通行的道路,雙向通行
【洛谷 P1073】 最優貿易 (Tarjan縮點+拓撲排序)
多行 stdout sin pre lin get tar getchar || 題目鏈接 先\(Tarjan\)縮點,記錄每個環內的最大值和最小值。 然後跑拓撲排序,\(Min[u]\)表示到\(u\)的最小值,\(ans[u]\)表示到\(u\)的答案,\(Min\)和
貪心演算法-最優裝載問題
最優裝載問題。給出n個物體,第i個物體重量為w[i]。選擇儘量多的物體,使得總重量不超過C。 【分析】 由於只關心物體的數量,所有裝重的沒有裝輕的划算。只需把所有物體按重量從小到大排序,一次選擇每個物體,直到裝不下為止。這是一種典型的貪心演算法,只顧眼前,但能得到最優解。 -
單源最短路徑(Dijkstra)——貪心演算法
Dijkstra演算法是解單源最短路徑問題的貪心演算法。其基本思想是,設定頂點集合點集合S並不斷地做貪心選擇來擴充這個集合。一個頂點屬於集合S當且僅當從源到該頂點的最短路徑長度已知。初始時,S中僅含有源。設u是G的其一頂點。把從源到u且中間只經過S中頂點的路稱為從源到u的特殊
貪心-最優裝載問題
有一批集裝箱,要裝上一艘載重量為c的輪船。其中集裝箱i的重量為wi。 最優裝載問題要求確定在裝載體積不受限制的情況下,將盡可能多的集裝箱裝上輪船。 最優裝載問題問題的形式描述: •問題的形式描述是:給定c>0,wi>0,1≤i≤n,求n元0-1向量 &nb
最優控制(泛函)
LQR (linear quadratic regulator)即線性二次型調節器,其物件是現代控制理論中以狀態空間形式給出的線性系統,而目標函式為物件狀態和控制輸入的二次型函式。 LQR 的直觀推導及簡單應用 &