字节第二题我疯了 为啥就是过不了 线下试了好几次都没错

方法还挺暴力的 弄个堆 每次从里面取前面时间最大的题 然后拿出来跳过。
逻辑上不应该0%啊 给我整疯了
全部评论
ZUIHOU 没加cout<<endl;吗?
点赞 回复
分享
发布于 2019-09-22 10:03
纯暴力法0的,一般是题意或者思路理解错了
点赞 回复
分享
发布于 2019-09-22 10:03
春招专场
校招火热招聘中
官网直投
都不用堆吧,直接插入排序,然后找一遍就好了。是不是哪写炸了
点赞 回复
分享
发布于 2019-09-22 10:05
牛客貌似不能用优先级队列或者堆这些容器,答案明明一样但却只能0,改用ArrayList每次排序就过了,我佛了
点赞 回复
分享
发布于 2019-09-22 10:05
排序然后从前往后取,贪心
点赞 回复
分享
发布于 2019-09-22 10:06
我是总时间减当前时间得剩余时间,再按照前面从小到大排序求和,直到求的和大于剩余时间,统计已求和的个数,再前面总个数减已求和个数就是答案。排序链表插入排序,我自己写了几个例子都是对的,提交是0
点赞 回复
分享
发布于 2019-09-22 10:08
暴力100%
点赞 回复
分享
发布于 2019-09-22 10:09
#include<bits/stdc++.h> #define INF 10000000 using namespace std; typedef long long ll; int main(){     int T, n, time, t;     cin >> T;     while(T--){         cin >> n >> time;         priority_queue<int> q;         ll sum = 0;         for(int i = 0; i < n; i++){             cin >> t;             vector<int> v;             while(sum + t > time){ // sum + t <= time                 sum -= q.top();                 v.emplace_back(q.top());                 q.pop();             }             cout << i - q.size() << " "; // t             v.emplace_back(t);             for(auto t : v){                 q.push(t);                 sum += t;             }         }         cout << endl;     }     return 0; } 100%, 本来想的复杂点,后面发现暴力全部放回去也能过。gg
点赞 回复
分享
发布于 2019-09-22 10:09
我也是这样,本地调得好好的,一提交 0%
点赞 回复
分享
发布于 2019-09-22 10:18
第二题不是回溯法吗
点赞 回复
分享
发布于 2019-09-22 10:22

相关推荐

点赞 1 评论
分享
牛客网
牛客企业服务