1 条题解

  • 0
    @ 2022-9-23 22:14:26
    #include<cstdio>
    #include<queue>
    #define MAXN 10005
    using namespace std;
    int n, t, d[MAXN];
    priority_queue<int, vector<int>, greater<int> > q;
    bool check(int size)
    {
    	for(int i = 1; i <= size; i++) q.push(d[i]);
    	int i = size, time;
    	while(!q.empty())
    	{
    		time = q.top(); q.pop();
    		if(++i <= n) q.push(d[i] + time);
    	}
    	return time <= t;
    }
    int main()
    {
    	scanf("%d%d", &n, &t);
    	for(int i = 1; i <= n; i++) scanf("%d", &d[i]);
    	int l = 0, r = n, m;
    	while(l < r)
    	{
    		m = (l + r) >> 1;
    		if(check(m)) r = m;
    		else l = m + 1;
    	}
    	printf("%d", l);
    	return 0;
    }
    
    • 1

    信息

    ID
    2544
    时间
    1000ms
    内存
    125MiB
    难度
    4
    标签
    递交数
    3
    已通过
    2
    上传者