5.14奇安信C++笔试
#奇安信#
第一题 100%
第二题 50%
X感觉写的很对,为什么错了呢,有无大佬帮忙看看X
感谢评论区大佬给出错误原因,已经搞懂了
class Solution {
public:
vector<long long> vec;
bool check(long long mid)
{
priority_queue<long long> q;
for(int i = 0; i < 5; i ++) q.push(mid);
for(auto x : vec)
{
long long t = q.top();
q.pop();
q.push(t - x);
}
if(q.top() > 0) return false;
else return true;
}
int maxTime(vector<int>& bat) {
for(auto x : bat) vec.push_back(x);
sort(vec.begin(), vec.end(), greater<long long>());
int n = vec.size();
long long l = 0, r = vec[0] * n / 5;
while(l < r)
{
long long mid = (l + r + 1) / 2;
if(check(mid)) l = mid;
else r = mid - 1;
}
return l;
}
};
第一题 100%
第二题 50%
X感觉写的很对,为什么错了呢,有无大佬帮忙看看X
感谢评论区大佬给出错误原因,已经搞懂了
class Solution {
public:
vector<long long> vec;
bool check(long long mid)
{
priority_queue<long long> q;
for(int i = 0; i < 5; i ++) q.push(mid);
for(auto x : vec)
{
long long t = q.top();
q.pop();
q.push(t - x);
}
if(q.top() > 0) return false;
else return true;
}
int maxTime(vector<int>& bat) {
for(auto x : bat) vec.push_back(x);
sort(vec.begin(), vec.end(), greater<long long>());
int n = vec.size();
long long l = 0, r = vec[0] * n / 5;
while(l < r)
{
long long mid = (l + r + 1) / 2;
if(check(mid)) l = mid;
else r = mid - 1;
}
return l;
}
};
全部评论
就是每次不能把电用光,每次用一分钟然后重新排序,100,100,100,100,95,10 你这样计算结果是100, 但每次不用光电量, 15,15,15,15,10,10->14,14,14,14,9,10 然后不断用新的最大值替换,可以得到101
我也是,我还发现是原题。。。
第一题咋写啊。。
我也是50%
第二题我也是百分之五十
题主,请问一下,能不能发一下第一题的过程?
啥时候投的呀,我5号投的现在还没有消息😭
我知道错哪了,但不知怎么改,你输入15个100,输出结果是200,但结果是300
相关推荐
点赞 评论 收藏
分享
2025-11-18 20:04
泉州职业技术大学 算法工程师
专业嗎喽:个人信息名字太大,合到电话邮箱那一栏就行,有党员写过党,剩下其他全删,站空太大了
把实习经历丰富,放最前面,然后是个人评价,技能之类的,然后是学校信息。项目经历最后面,可以就选一个自己擅长的。
现在是学校不是92就扣分的,没必要放前面。
然后现在看重实习经历>竞赛经历(校园经历)>课程项目经历 点赞 评论 收藏
分享
巨龙梦行:笑死,正职自己摸鱼摸得飞起,转头倒嫌弃起实习生来了,真不知道安的什么心!官儿没多大,谱倒是摆的挺足。
点赞 评论 收藏
分享
查看1道真题和解析