BNU49103 貪心 二分

2021-07-02 12:13:35 字數 894 閱讀 8779

小明每天有m(0<=m<=10^9)粒小公尺可以喂小雞,小雞共有n(0<=n<=1000)種。問小明最多可以養多少只小雞?

第一行,整數n,m,以空格分隔,之後兩行,第一行為n個整數ai,第二行為n個整數bi。

ai、bi都在int範圍內

4 09 4

#define ls 2*i

#define rs 2*i+1

#define up(i,x,y) for(i=x;i<=y;i++)

#define down(i,x,y) for(i=x;i>=y;i--)

#define mem(a,x) memset(a,x,sizeof(a))

#define w(a) while(a)

#define ll long long

const double pi = acos(-1.0);

#define n 1005

#define mod 19999997

const int inf = 0x3f3f3f3f;

#define exp 1e-8

ll n,m;

ll a[n],b[n],c[n];

ll bin(ll x)

sort(c,c+n);

up(i,0,x-1)

ans+=c[i];

return ans<=m;

}int main()

{ ll i,j,k;

w(~scanf("%lld%lld",&n,&m))

{up(i,0,n-1)

scanf("%lld",&a[i]);

up(i,0,n-1)

scanf("%lld",&b[i]);

ll l=0,r = n,flag = 0;

while(l

二分貪心 21

題目大概 有n堆積木,積木高度不同,每個小方塊高度相同。問,最少移動多少小方塊,使得這些積木堆高度相等。思路 先求這些積木的平均數,在把所有的高度與平均數的差值加起來,最後除2,就是最少移動的方塊數。感想 這個題有一點很坑人,最後輸出的時候有乙個小點,不注意看看不到。include include ...

二分貪心 E

題目 輸入n和c,n代表有n間屋子c代表有c頭牛,然後輸入n個數代表這n間房子的座標,牛不喜歡這個布局,一進去就會很暴躁,所以要把牛分的盡可能的遠求最近兩頭牛的最大距離。解題思路 建立乙個陣列存這些房子的座標,然後用sort將這些座標排序,然後令l 0,r a n mid l r 2,先用mid當作...

二分貪心 T

題目 有1 1,2 2,3 3,4 4,5 5,6 6大小的盒子,要把它們裝到6 6的盒子裡,它們的高度都是相同的,用最少的6 6盒子把所有尺寸的盒子都裝起來。解題思路 6 6,5 5以及4 4尺寸的物品每個物品需要占有乙個箱子,3 3的物品乙個箱子可以放4個,2 2的物品箱子可以放9個,1 1的可...