终于3ac了。妈的

最后一题,查询,前缀和+二分查找就可以了,也可以for一遍,预处理设置每个位置的组号,当作水题做就好了
#include <iostream>
#include <stdio.h>
using namespace std;
const int maxn = 1e+5 + 10;
int a[maxn];


int main()
{
    int n;
    while(~scanf("%d", &n)){
        for(int i = 0 ; i < n; ++i){
            int val ;
            scanf("%d", &val);
            if(i >= 1){
                a[i] = a[i-1] + val;
            }else {
                a[i] = val;
            }
        }
        int q;
        scanf("%d", &q);
        for(int i = 0 ; i  < q ; ++i) {
            int val;
            scanf("%d", &val);
            int f = 0;
            int e = n;
            int mid ;
            int ans = 0;
            while(f < e){
                mid = (f+e)/2;
                if(a[mid] > val){
                    e = mid;
                }
                else if(a[mid] == val){
                    break;
                }
                else {
                    f = mid+1;
                }
            }
            if(a[mid] == val){
                ans = mid;
            }
            else if(a[mid] < val){
                ans = mid+1;
            }
            else {
                ans = mid;
            }
            printf("%d\n", ans+1);
        }

    }
    return 0;
}


全部评论
感觉题就不是一个风格,第三道突然说文件,我使用文件测试了半天,真的醉
点赞 回复 分享
发布于 2017-08-19 20:56
能提交一个小时的都是大佬
点赞 回复 分享
发布于 2017-08-19 20:52
你都提交上了??
点赞 回复 分享
发布于 2017-08-19 20:52
恭喜你offer到手了233
点赞 回复 分享
发布于 2017-08-19 20:55
能提交的都是大佬,我是没耐住寂寞,1道没提交
点赞 回复 分享
发布于 2017-08-19 21:02
一个小时就提交了
点赞 回复 分享
发布于 2017-08-19 21:40
看来我是幸运的,都提交了……
点赞 回复 分享
发布于 2017-08-19 22:47

相关推荐

11-24 19:04
已编辑
湖南工商大学 Java
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
11-27 10:52
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务