HD-ACM演算法專攻系列(23)——Crixalis's Equipment

來源:互聯網
上載者:User

標籤:ios   題目   space   alt   貪心   sort   UI   ret   class   

題目描述:

AC源碼:
此次考察貪心演算法,解題思路:貪心的原則是使留下的空間最大,優先選擇Bi與Ai差值最大的,至於為什嗎?這裡用只有2個裝置為例,(A1,B1)與(A2,B2),假設先搬運A1,搬運的那一瞬間,實際將要佔用的空間應該為A1+B2,那麼為了保證留下的空間最大,則應該有A1+B2<A2+B1成立,才能先搬運A1,即B1-A1>B2-B1。(n個裝置可以兩兩做這樣的比較,來達到選擇的最優)

#include"iostream"#include"algorithm"using namespace std;struct Equipment {    int A;    int B;};bool cmp(Equipment a, Equipment b){    return (a.B - a.A) > (b.B - b.A);}int main(){    int t, v, n;    bool flag;    Equipment eq[1000];    scanf("%d", &t);    for(int i = 0; i < t; i++)    {            scanf("%d %d", &v, &n);            for(int j = 0; j < n; j++)            {                scanf("%d %d", &eq[j].A, &eq[j].B);            }            sort(eq, eq+n, cmp);            flag = true;            for(int j = 0; j < n; j++)            {                if(eq[j].B <= v)                {                    v -= eq[j].A;                }                else                {                    flag = false;                    break;                }            }            if(flag)            {                printf("Yes\n");            }            else            {                printf("No\n");            }    }    return 0;}

  

HD-ACM演算法專攻系列(23)——Crixalis's Equipment

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.