思路暴力模擬。
我們定義乙個陣列:a[i],表示第 i 個水龍頭目前的總時間。
1、每次輸入乙個數就加入第乙個水龍頭。
2、然後從小到大排序。所以a[0]j 每次都是時間最小的那個水龍頭 。
3、重複1,2。
4、最後輸出時間最長的水龍頭。
voctor版
#includeusing namespace std;
int main()
cout《陣列版
#includeusing namespace std;
int main()
;//有m個水龍頭,初始沒人,時間總和為0
int b;
for(int i=0;i>b;//讀入資料
a[0]=a[0]+b;//資料加進時間總和最少的水龍頭裡
sort(a,a+m);//快排,剛好從小到大
}cout《這道題是乙個貪心題,讀入之後先用sort排序,然後用兩個指標一起向中間走,每次選擇都盡可能的讓當前狀態下最大的和最小的分在一組,如果不行就最大的單獨分一組,這樣貪心下來就是最少分的組了。
#includeusing namespace std;
int w,ans=0;
int n,a[30001];
int l,r,i;
int main()
printf("%d",ans);
return 0;
}
貪心策略:每當我們掃到乙個數,如果它大於前乙個數答案就加上差值,正確性?
這是比較顯然的,如果比前乙個數小,那麼減前乙個數時就可以順便把他減掉,如果大於則還得自己減。
#include using namespace std;
int main()
coutint main()
cout<這個題最關鍵的是貪心的思想,想明白了**實現應該就沒有問題了
因為每堆牌只能移到相鄰的堆,不妨一堆堆處理,且只考慮後一堆(因為前一堆已經處理好了,再移動會造成浪費)。
那麼如果出現了負數呢?如1,1,7的情況,從左到右處理過程如下:
1,1,7
-2,-2,4
0,-4,4
0,0 ,0
#includeusing namespace std;
int a[10010];
int n;
int sum=0,x=0,to1=0;
int main()
x=sum/n;
for(int i=1;i<=n;i++) a[i]=a[i]-x;
for(int i=1;i<=n;i++)
cout
}
大資料演算法習題答案
13章 1.神經網路由許多神經元 neuron 組成,每個神經元接受乙個輸入,處理它並給出乙個輸出。下列關於神經元的陳述中正確的是 上述都對 2.在乙個神經網路裡,知道每乙個神經元的權重和偏差是最重要的一步。如果以某種方法知道了神經元準確的權重和偏差,你就可以近似任何函式。實現這個最佳的辦法是 賦予...
貪心演算法 附貪心相關習題
定義 貪心演算法是一種求解最優解的方法。它是按照某種最優策略,將複雜問題層層分解成子問題 每次一般只有乙個 並求子問題的最優解得到整個問題的最優解。貪心演算法並不是從整體上考慮問題,它所做出的選擇只是在某種意義上的區域性最優解。在每個子問題的選擇中只選擇區域性最優解,從而達到全域性最優解的一種演算法...
提高篇 貪心演算法
在新的一本書中又開始了對貪心演算法的學習。此次學習中主要學習應用的部分是區間貪心。在這一部分貪心的目的是要求區間利用的最大化,例題來說主要解決的方法便是盡可能的選擇耗費時間少的區間,但在貪心時,如果有規律可循,那麼只要區間時間不重合排列那麼就是可以的。同樣貪心對每個題的演算法都不同,更多的還是自己適...