拼多多第一题,按照要求输出了,结果只有40%

题中输出的小熊的饥饿值是按输入小熊的顺序输出的。
不知道C++中怎么做的这一点的。我用的方法只通过40%,应该是运行超时了。。
全部评论
用sort(begin,end,compare),排序两次。第一次按照战斗力排序,第二次按照编号排序。
点赞 回复 分享
发布于 2017-09-03 09:54
话说你sort的写法编译能通过?我也这么写的编译就过不去,只好手撸个冒泡排序。。。
点赞 回复 分享
发布于 2017-09-03 09:49
妹子刷题量惊人啊
点赞 回复 分享
发布于 2017-09-02 19:08
你是没按要求输出,题目要求按给的熊的顺序而不是排序后的熊的顺序
点赞 回复 分享
发布于 2017-09-02 19:02
用例中提供的数据是排序了的
点赞 回复 分享
发布于 2017-09-02 18:45
要按照原来输入小熊的顺序 输出相应的饥饿值
点赞 回复 分享
发布于 2017-09-02 18:21
#include<iostream> #include<vector> #include<algorithm> using namespace std; bool cmp(int a, int b) { return a > b; } bool cmp1(vector<int>a, vector<int>b) { return a[0] > b[0]; } int main() { int n, m; while (cin >> n >> m) { vector<int>a(m); //糖的能量值 for (int i = 0; i < m; i++) cin >> a[i]; vector<vector<int>>b(n,vector<int>(2)); //存储小熊的战斗力和饥饿值 for (int i = 0; i < n; i++) { for (int j = 0; j < 2; j++) { cin >> b[i][j]; } } sort(a.begin(), a.end(),cmp); vector<vector<int>>b1(b.begin(), b.end()); sort(b1.begin(), b1.end(), cmp1); vector<int>flag(m, 0); vector<int>res(n,0); //存储小熊剩余饥饿值 for (int i = 0; i < n; i++) { int j = 0; int tmp = b1[i][1]; while (j < m) { if (a[j] <= tmp && !flag[j]) { tmp = tmp - a[j]; flag[j] = 1; } j++; } res[i]=tmp; } for (int i = 0; i < n; i++) //输出 { int t = b[i][0]; for (int j = 0; j < n; j++) { if (b[j][0] == t) { cout << res[j] << endl; break; } } } } } 不知道为什么只通过了40%,思路应该没问题,我觉得应该是超时了。求大神指点。
点赞 回复 分享
发布于 2017-09-02 18:17
这个是我的代码, 也不知道怎么错. 同求高人指点. #include <iostream> #include <algorithm> #include <set> #include <vector> #include <stack> #include <set> #include <list> #include <bitset> #include <cstring> using namespace std; struct Bear { int fight; int hungry; }; int find_h(vector<Bear>& bears) { int i = 0; int h = -1; int idx = -1; while (i < bears.size()) { if (bears[i].hungry <= 0) { i++; continue; } if (h < bears[i].hungry) { h = bears[i].hungry; idx = i; } i++; } return idx; } void bear_eat(vector<Bear> &bears, int idx, vector<int>& suguars) { for (int i = suguars.size() - 1; i >= 0; i--) { if (suguars[i] == -1) continue; else if( suguars[i] > bears[idx].hungry) continue; else { bears[idx].hungry -= suguars[i]; suguars[i] = -1; break; } } } bool can_eat(vector<Bear> &bears, vector<int> &suguars) { vector<int> hs; for (int i = 0; i < bears.size(); i++) { if (bears[i].hungry > 0) { hs.push_back(bears[i].hungry); } } for (int i = 0; i < suguars.size(); i++) { if (suguars[i] > 0) for (auto& h: hs) if (suguars[i] <= h) return true; } return false; } void hdl(vector<Bear>& bears, vector<int>& suguars) { sort(suguars.begin(), suguars.end()); while (can_eat(bears, suguars)) { int most_h = find_h(bears); if (most_h == -1) break; bear_eat(bears, most_h, suguars); } } int main() { int n, m; cin >> n >> m; vector<int> suguars; for (int i = 0; i < m; i++) { int tmp; cin >> tmp; suguars.push_back(tmp); } vector<Bear> bears; for (int i = 0; i < n; i++) { int f = 0, h = 0; cin >> f >> h; bears.push_back({f, h}); } hdl(bears, suguars); for (int i = 0; i < bears.size() - 1; i++) cout << bears[i].hungry << endl; cout << bears[bears.size() - 1].hungry; return 0; }
点赞 回复 分享
发布于 2017-09-02 18:08

相关推荐

2025-12-12 19:01
南京航空航天大学 C++
秋招没咋投,准备&nbsp;wxg&nbsp;转正之后摆烂了。结果不堪字节&nbsp;HR&nbsp;的骚扰还是面了一下字节。之前想去字节的时候怎么面都挂。现在想着随便面一下结果三面技术面都意外顺利还有加面。十月中旬字节发了意向,wxg&nbsp;转正结果无响应。十月底字节拉了保温群,wxg&nbsp;口头通过,系统显示考核中。十一月初和字节&nbsp;ld&nbsp;交流之后得知&nbsp;base&nbsp;居然能选海外,甚至能小&nbsp;wlb&nbsp;一下,wxg&nbsp;无响应无人联系。十一月中旬把字节&nbsp;base&nbsp;转到了海外,wxg&nbsp;流程灰了,一问超时忘处理了,过两天又变考核中了。十一月下旬字节换了海外&nbsp;HR&nbsp;对接,问了期望薪资,wxg&nbsp;考核终于显示通过,无&nbsp;HR&nbsp;保温,无其他保温。十一月底给字节报了个天价,想吓吓他们,同时告诉微信字节要开了,微信无响应。同样十一月底字节&nbsp;HR&nbsp;告诉我确实给不到那么高,但是能拿期权补上,问能不能接受。微信无响应。同样十一月底字节&nbsp;HR&nbsp;告知了具体方案,符合预期。&nbsp;微信无响应。十二月上旬催&nbsp;wxg&nbsp;不开我就盲拒了,wxg&nbsp;HR&nbsp;火急火燎的打电话问情况,问期望。我给了一个不算夸张的总包数字,因为今年市场在涨,过了三天还不联系我,我再催,约时间下午打电话,非得在我给出的数字上压下去几万,微信又不差这点,为什么不能满足我,让我没有拒绝的理由呢?一番纠结抗争,求稳还是追求挑战,最终选择接受迎接新的挑战,因为堂吉诃德永远不会停下脚步!回想起来,在&nbsp;wxg&nbsp;谈薪的阶段,我认为并没有给予我一定的重视,即使&nbsp;HR&nbsp;表示我在实习期间的表现和之前的面评都很靠前。也没有感觉到想要争取我,虽然我表示拒了&nbsp;offer&nbsp;之后要给我加面委定&nbsp;t6&nbsp;再涨,但我三个月没面试让我面面委那就是白给,还是算了。有缘再见了我亲爱的&nbsp;wxg,再见了曾经的梦中情厂,再见亲爱的&nbsp;mt,再见亲爱的朋友们。也再见,北京的一切。我想润了。秋招结束,卸载牛客,下一个三年,下一个五年,下一个十年后再来看看。
面试中的大熊猫爱吃薯...:我嫉妒得狗眼通红
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务