L 雞尾酒買罐子 貪心列舉 假二分

2021-09-29 21:09:13 字數 1682 閱讀 6523

n雖然1e9 但是k<=300個罐子 買m個

a[i]<=1000 列舉錢數3e5

k=3個罐子

7 4 2

n=10

二分的話 錢數增 個數不一定增

n=10 2

n=9 2

n=8 1

n=7 1

n=6 2

#include

using

namespace std;

typedef

long

long ll;

const

int maxn=

1e6+5;

const ll mod=

1e9+7;

const

int inf=

0x3f3f3f3f

;#define io ios::sync_with_stdio(false);cin.tie(0);

#define rep(i,a,n) for(int i=a;i<=n;i++)

#define pb push_back

ll t;

ll n,m,k,a[maxn]

,cnt;

//列舉錢數 k=300個1000 最大3e5 錢數不列舉0 雖然有0

intmain()

ll num=

min(n,k*

1000);

for(

int i=

1;i<=num;i++)if

(q==0)

break;}

if(cnt>=m)

}//到最大錢數都買不了m個罐子 錢數較小 罐子比較貴

cout<<

"poor chicken tail wine!"

}

#include

using

namespace std;

typedef

long

long ll;

const

int maxn=

1e6+5;

const ll mod=

1e9+7;

const

int inf=

0x3f3f3f3f

;#define io ios::sync_with_stdio(false);cin.tie(0);

#define rep(i,a,n) for(int i=a;i<=n;i++)

#define pb push_back

ll t;

ll n,m,k,a[maxn]

,cnt;

//列舉錢數 k=300個1000 最大3e5 錢數不列舉0 雖然有0

bool

check

(ll x)

if(cnt>=m || x==0)

break;}

return cnt>=m;

}int

main()

ll num=

min(n,k*

1000);

for(

int i=

1;i<=num;i++)}

cout<<

"poor chicken tail wine!"

}

雞尾酒買罐子

雞尾酒喜歡罐子,有一天他到了乙個罐子專賣店,他決定買好多好多罐子回家。但是專賣店快關門了,雞尾酒必須盡快選購,他決定按順序把罐子瀏覽一遍,如果他的錢花完了 錢數 0 或者已經走過了最後乙個罐子,就會立即離開商店。由於雞尾酒不會掩飾自己對罐子的喜愛,所以只要他現有的錢大於等於當前看到的罐子的 他就會購...

賣萌雞尾酒 貪心)

題目鏈結 題目描述 眾所周知,雞尾酒的群名片叫作 賣萌雞尾酒 他認為乙個群裡的 有緣人 是群名片與他相近的人。現在,雞尾酒想找出群裡的 有緣人 首先,他將自己名片拆分成五個字 賣 萌 雞 尾 酒 並分別作為關鍵字進行搜尋,每次搜尋都會找到所有群名片包含這個字的群友。如 搜尋 萌 就能找到所有名片中包...

雞尾酒排序

氣泡排序是從陣列的一側到另一側為一輪,根據條件兩兩交換,例如關於氣泡排序中的一組資料3 2 5 4 6 1 8 9 7,優化的氣泡排序在經過六輪之後得到排好的陣列,而雞尾酒排序是一輪次比較兩回 先從左到右比較,如果左邊比右面大,交換位置 然後從右到左比較,左邊比右邊大,交換位置。就用冒泡中的那組數從...