美团第二题有无大佬可以帮我看看哪里有问题
全部评论
```c++
#include <iostream>
(30316)#include <vector>
#include <cstring>
(31637)#include <algorithm>
using namespace std;
typedef unsigned long long LL;
const int N = 200010;
LL a[N];
LL mex[N];
LL cnt[N];
int main() {
int T;
cin >> T;
while (T--) {
memset(a, 0, sizeof a);
memset(mex, 0, sizeof mex);
memset(cnt, 0, sizeof cnt);
LL n, k, x;
scanf("%lld%lld%lld", &n, &k, &x);
for (int i = 0; i < n; i++) {
scanf("%lld", a + i);
cnt[a[i]]++;
}
LL mx = 0;
while (cnt[mx]) mx++;
mex[0] = mx;
for (int i = 1; i < n; i++) {
cnt[a[i - 1]]--;
if (cnt[a[i - 1]] == 0) mx = min(mx, a[i - 1]);
mex[i] = mx;
}
LL res = 0x3f3f3f3f;
res = res * res;
LL sum = 0;
for (int i = 0; i < n; i++) {
res = min(res, sum + k * mex[i]);
sum += x;
}
res = min(res, sum);
cout << res << endl;
}
return 0;
}
```
中间运算j*x+right*k溢出了,直接将x和k定义成long lnog
define int ll
我设的自测输入
1
1 3 3
1
输出0到6全都不对,是我题目理解错了嘛

long 直接100%了,打过ACM或者蓝桥杯的话就会注意这些范围
首先用long long
相关推荐
程序员牛肉:我靠你这个实习经历其实最需要担心的点是你做的太多了,可能会被面试官怀疑是你伪造的。
交易状态机是你做的,支付多渠道是你做的,对账是你做的,结算还是你做的,重复支付也是你做的,整个服务的异常处理也是你做的。
其实你这个反而问题很大的,你想想站在面试官的角度,他是真的会相信你的能力很强,还是相信这份实习你伪造了大部分?我相信你真的做了这么多,但是删一些,废话删一删。你这个做的太多了反而真实性不可信。
后面再补一个项目,在github上找一个高star的项目学一学然后写到自己简历上。我觉得你能力肯定没问题。28届能做到这个份上很厉害,但是在求职市场中,你不是在跟28届的同学比,把你这个简历放到27届其实也就一般水平。
所以后续要想一想看看能不能给自己简历上搞点亮点,比如开源贡献呢?比如博客呢?
点赞 评论 收藏
分享
迷茫的大四🐶:搞不好进去还得抓你玩手机呢 点赞 评论 收藏
分享