1. 程式人生 > >1319:【例6.1】排隊接水

1319:【例6.1】排隊接水

這題要注意的是隻求前9個數,因為是等待的時間所以和書上的例題有點區別

#include<bits/stdc++.h>
using namespace std;
struct node
{
    int a,b;
    friend bool operator < (node A,node B)
    {
        return A.a<B.a;
    }
}s[1005];
int main()
{
    int n;
    cin>>n;
    for(int i=0;i<n;i++)
    {
        cin>>s[i].a;
        s[i].b=i+1;
    }

    sort(s,s+n);
    int sum=0;
    int flag=0;
    for(int i=0;i<n-1;i++)
    {
        flag+=s[i].a;
        sum+=flag;
    }
    for(int i=0;i<n;i++)
    {
        if(i)
            cout<<" ";
        cout<<s[i].b;
    }
    cout<<endl;
    cout<<fixed<<setprecision(2)<<1.0*sum/n<<endl;


    return 0;
}

書上的例題

n個人在r個水龍頭前排隊接水,假如每個人裝滿水的時間為T1

t1,t2...,如何安排他們的打水順序使他們花費的時間最

輸入樣例

4 2

2 6 4 5

輸入樣例

23

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n,r;
    cin>>n>>r;
    int s1[100],s2[100];
    memset(s1,0,sizeof(s1));
    memset(s2,0,sizeof(s2));
    for(int i=0;i<n;i++)
        cin>>s1[i];
    sort(s1,s1+n);//小的在前面會讓時間小
    int j=1;
    int sum=0;
    for(int i=0;i<n;i++)//用貪心求解
    {
        if(j==r+1) j=1;//前面r個人為一組,第r+1個人回到第一個水龍頭
        s2[j]+=s1[i];
        sum+=s2[j];
        j++;
    }
    cout<<sum<<endl;

    return 0;
}
//這題就是每步驟不會影響後面的結果

相關推薦

13196.1排隊

這題要注意的是隻求前9個數,因為是等待的時間所以和書上的例題有點區別#include<bits/stdc++.h> using namespace std; struct node {

13226.4攔截導彈問題(Noip1999)

【題目描述】某國為了防禦敵國的導彈襲擊,開發出一種導彈攔截系統,但是這種攔截系統有一個缺陷:雖然它的第一發炮彈能夠到達任意的高度,但是以後每一發炮彈都不能高於前一發的高度。某天,雷達捕捉到敵國的導彈來襲,由於該系統還在試用階段。所以一套系統有可能不能攔截所有的導彈。輸入導彈依

13322-1周末舞會

print namespace i++ std 周末 結束 c++ tro 基礎 【題目描述】 假設在周末舞會上,男士們和女士們進入舞廳時,各自排成一隊。跳舞開始時,依次從男隊和女隊的隊頭上各出一人配成舞伴。規定每個舞曲能有一對跳舞者。若兩隊初始人數不相同,則較長的那一隊

13246.6整數區間

描述 struct 接下來 -s return idt 空格 時間限制 continue 1324:【例6.6】整數區間 時間限制: 1000 ms 內存限制: 65536 KB提交數: 1614 通過數: 1020 【題目描述】 請編程完

6.3刪數問題(Noip1994)

logs lan cin clas pac i++ wlan 描述 status 【例6.3】刪數問題(Noip1994) 鏈接:http://ybt.ssoier.cn:8088/status.php?start=0&showname=edsheeran&

6.5活動選擇

node ret ring 安排 一行 php urn 描述 algo 【例6.5】活動選擇 鏈接:http://ybt.ssoier.cn:8088/problem_show.php?pid=1323時間限制: 1000 ms 內存限制: 65536 K

13123.4昆蟲繁殖(遞推演算法)

每對成蟲過x個月產y對卵,每對卵要過兩個月長成成蟲。假設每個成蟲不死,第一個月只有一對成蟲,且卵長成成蟲後的第一個月不產卵(過X個月產卵),問過Z個月以後,共有成蟲多少對?0≤X≤20,1≤Y≤20,X≤Z≤50。 在這裡其實,只知道是類似斐波拉契數列的一類的遞推公式,也就是經典的兔子問題。   第i天的

13464-7親戚(relation)

並查集的模板題: #include<iostream> #include<cstdio> using namespace std; const int maxn = 2e4+5; int fa[maxn]; int find(int x) { return fa[x]

13342-3圍圈報數

題目描述】 有n個人依次圍成一圈,從第1個人開始報數,數到第m個人出列,然後從出列的下一個人開始報數,數到第m個人又出列,…,如此反覆到所有的人全部出列為止。設n個人的編號分別為1,2,…,n,打印出

12649.8合唱隊形

【題目描述】 NN位同學站成一排,音樂老師要請其中的(N−K)(N−K)位同學出列,使得剩下的KK位同學排成合唱隊形。 合唱隊形是指這樣的一種隊形:設KK位同學從左到右依次編號為1,2,…,K1,2,…,K,他們的身高分別為T1,T2,…,TKT1,T2,…,TK,則他們的身高滿足T1<

12619.5城市交通路網

1261:【例9.5】城市交通路網 時間限制: 1000 ms         記憶體限制: 65536 KB 提交數: 1387     通過數: 1029  【題目描述】 下圖表示城

13474-8格子遊戲

define 重復 esp 描述 using c++ bob namespace raw 【題目描述】 Alice和Bob玩了一個古老的遊戲:首先畫一個n × n的點陣(下圖n = 3) 接著,他們兩個輪流在相鄰的點之間畫上紅邊和藍邊: 直到圍成一個封閉的圈(面積不

13494-10最優布線問題

syn 負責 nod using 通過 als 計算機 esp register 【題目描述】 學校有n臺計算機,為了方便數據傳輸,現要將它們用數據線連接起來。兩臺計算機被連接是指它們有數據線連接。由於計算機所處的位置不同,因此不同的兩臺計算機的連接費用往往是不同的。 當

貪心+排序排隊 luogu-1223

esp 貪心 人在 puts typedef getchar() 順序 getchar long 題目描述 有n個人在一個水龍頭前排隊接水,假如每個人接水的時間為Ti,請編程找出這n個人排隊的一種順序,使得n個人的平均等待時間最小。 分析 註意要開longlong AC代碼

題解排隊

題解 opened name 順序 include one src ++ 技術分享 題目描述   有N個人排隊到M個水龍頭去打水,他們裝滿水桶的時間T1,T2,...,Tn為整數且各不相等,應如何安排他們的打水順序才能使他們花費的總時間最少? 輸入格式   第一

(貪心1排隊

問題描述   有n個人排隊到r個水龍頭去打水,他們裝滿水桶的時間t1、t2………..tn為整數且各不相等,應如何安排他們的打水順序才能使他們總共花費的時間最少? 輸入格式   第一行n,r (n&

Pta測試6.1基礎程式設計題目集

6-1 簡單輸出整數(10 分) 本題要求實現一個函式,對給定的正整數N,列印從1到N的全部正整數。 函式介面定義: void PrintN ( int N ); 其中N是使用者傳入的引數。該

12629.6挖地雷

題目描述】 在一個地圖上有n個地窖(n≤200),每個地窖中埋有一定數量的地雷。同時,給出地窖之間的連線路徑,並規定路徑都是單向的,且保證都是小序號地窖指向在序號地窖,也不存在可以從一個地窖出發經過若干地窖後又回到原來地窖的路徑。某人可以從任一處開始挖地雷,然後沿著指出的連線往下挖(僅能選擇一條

13311-2字尾表示式的值

//洛谷ac,一本通10分,一本通應該是覺得這個題目不需要用stl吧,棧的應用用stl可能結構清晰點 #include<iostream> #include<stack> #include<cstdio> #include<cstri

redis,1java操作redis 將string、list、map、自己定義的對象保存到redis中

n) spa 存儲 div ber sys mil 操作 write 一、操作string 、list 、map 對象 1、引入jar: jedis-2.1.0.jar 2、代碼 /