演算法 貪心(1)

2021-08-09 10:02:37 字數 2064 閱讀 6954

今天實驗做的是貪心演算法,中午睡醒然後爬了九樓去實驗室,討厭,老師沒有提前發實驗指導書剛開始還是討厭的,因為以前都是提前做好直接過來驗收的,畢竟對自己還是很沒有信心能夠在實驗課上完成實驗的;哎,事實證明確實沒有完成,思路想法都是有的,就是不會用高階語言實現了,難受難受;

說正事吧,貪心演算法,就是目光短淺法,要命的是他需要證明貪心選擇策略(主)和最優子結構性質,我不會!之後需要學習!

例題一問題描述:

設有n 個顧客同時等待一項服務。顧客i需要的服務時間為ti, 1<=i <= n 。應如何安排n個顧客的服務次序才能使平均等待時間達到最小?平均等待時間是n 個顧客等待服務時間的總和除以n。

#include 

#include

//56 12 1 99 1000 234 33 55 99 812

int main()

}for(i=0;i

求sum的時候,第乙個使用者在用的時候後面n-1位都等了a[0]time,

第二個使用者在用的時候後面n-2位都等了a[1]time。。。。,剛開始我是想用兩個for迴圈解決,其實換個思路,就能想到a[0]一共有n-1,a[1]一共有n-2......乙個for迴圈結束,簡單不易錯;

例題二

問題描述:

給定x 軸上n 個閉區間。去掉盡可能少的閉區間,使剩下的閉區間都不相交。

#include 

#include

//3 10 20 10 15 15 20

int main()

}j=0;

for(i=1;i

b[j])

}printf("%d\n",sum);

return 0;

}

例題三

問題描述:

一輛汽車加滿油後可行駛nkm。旅途中有若干加油站。設計乙個有效演算法,指出應在哪些加油站停靠加油,使沿途加油次數最少。

演算法設計:對於給定的n和k個加油站位置,計算最少加油次數。

資料輸入:n:表示汽車加滿油後可行駛nkm

k:旅途中有

k個加油站

k+1個整數:表示第

k個加油站與第

k-1個加油站之間的距離

。第0個加油站表示出發地,汽車已加滿油。第k+1個加油站表示目的地。

資料輸出:最少加油次數和具體在哪幾個加油站加油。

#include 

#include

//1 2 3 4 5 1 6 6

void greedy(int a,int n,int k)

}printf("╪ссмё╣у╬ё╨");

for(i=1;i<=num;i++)

printf("╪ссму╬%d ",b[i]);

printf("\n");

printf("%d\n",num);

}int main()

就是這題卡了我半節課,最後也沒有驗收, s = a[i];我之前寫的是 s = 0;我想用乙個下標記住需要加油的加油站的位置,然後sum從此處累加,用了while 也用了for迴圈都沒能解決,最後還是看**吧;

例題四[均分紙牌]有n堆紙牌,編號分別為1,2,…,n。每堆上有若干張,但紙牌總數必為n的倍數.可以在任一堆上取若干張紙牌,然後移動。移牌的規則為:在編號為1上取的紙牌,只能移到編號為2的堆上;在編號為n的堆上取的紙牌,只能移到編號為n-1的堆上;其他堆上取的紙牌,可以移到相鄰左邊或右邊的堆上。現在要求找出一種移動方法,用最少的移動次數使每堆上紙牌數都一樣多。例如:n=4,4堆紙牌分別為:① 9 ② 8 ③ 17 ④ 6 移動三次可以達到目的:從③取4張牌放到④ 再從③區3張放到②然後從②去1張放到①。

#include 

#include

int main()

if(n==a[k])

for(i=0;i

貪心演算法(1)

貪心演算法是求解最優解的一類問題,在貪心演算法中,每一步求解的都是最優解,但是整體來說不一定是最優的。在求解貪心演算法時,首先要通過題目總結出貪心準則,利用貪心準則進行求解。前兩天看了牛客網,準備通過考研複習空閒時間學習一下演算法,提高程式設計能力,不至於手生。下面是一道貪心演算法的題 時間限制 1...

貪心演算法1

一 基本概念 所謂貪心演算法是指,在對問題求解時,總是做出在 當前看來是最好的選擇。也就是說,不從整體最優上加以考慮,他所做出的僅是在某種意義上的 區域性最優解。貪心演算法沒有固定的演算法框架,演算法設計的關鍵是貪心策略的選擇。必須注意的是,貪心演算法不是對所有問題都能得到整體最優解,選擇的貪心策略...

貪心演算法1

1 學前須知 這是一種求最優解的方法。它是按照某種最優策略,將複雜問題層層分解成子問題 每次一般只有乙個 並由子問題的最優解 回溯 出整個問題的最優解。貪心演算法不是從整體上考慮問題,它所做出的選擇只是在某種意義上的區域性最優解,而由問題自身的特性決定了該題運用貪心演算法可以得到最優解。如果乙個問題...