第一题 #include <bits/stdc++.h> using namespace std; const int N = 100010; int a[N]; int main(){ int n, k; scanf("%d%d", &n, &k); int cnt = 1, sum = 0; while(n > 1 && k > 0){ if(k >= cnt)k -= cnt; else break; sum += 1; n = (n + 1) / 2; // printf("%d %d %d %d\n", n, k, sum, cnt); cnt *= 2; } printf("%d\n", sum + n); } 第三题 #include <bits/stdc++.h> using namespace std; const int N = 100010; int a[N]; int main(){ int n, k; scanf("%d%d", &n, &k); for(int i = 0; i < n; i++){ scanf("%d", &a[i]); } sort(a, a + n); int cnt = 0, sum = 0; for(int i = 0; i < n; i++){ int x = a[i] - sum; if(x == 0)continue; if(cnt >= k)break; printf("%d\n", x); sum += x; cnt += 1; } while(cnt < k){ printf("0\n"); cnt++; } } 第二题不是数组前缀和的绝对值么,为啥只过了70%?
点赞 4

相关推荐

不愿透露姓名的神秘牛友
04-22 13:08
Data_Seven:真不知道这些企业哪来的成就感
点赞 评论 收藏
分享
等一个offer的菠...:擦,感觉这家hr挺神的,我老早就投简历了,hr也没约面就硬拖,后面我催她才给我打电话。也没给我简历推到业务部门,后来问说已经招到人了,hc给锁了。hc锁了早不说,给我拖了快20天都没约上面,之后告诉我没hc了
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务