fdu Problem 2072 Count

原创 2012年03月26日 08:49:35

思路:对数组非降序排序,并记录原始下标。利用二分查找,找到要查找的数后进行区间判断,如果在查询区间的话,count累加;不在的话,继续查找,仍是二分。

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>

using namespace std;

const int N = 100009;

struct Arr {
    int val, it;
};

Arr a[N];

int c, d, ans;

int cmp(Arr a, Arr b) {
    if (a.val == b.val)
        return a.it < b.it;
    return a.val < b.val;
}

void bisearch(int l, int r, int x) {
    if (l > r)
        return;
    int mid;
    mid = (l + r)>>1;
    if (a[mid].val > x)
        bisearch(l, mid-1, x);
    else if (a[mid].val < x)
        bisearch(mid+1, r, x);
    else {
        if(a[mid].it > d)
            bisearch(l, mid-1, x);
        else if (a[mid].it < c)
            bisearch(mid+1, r, x);
        else {
            if (a[mid].it >= c && a[mid].it <= d)
                ans++;
            bisearch(l, mid-1, x);
            bisearch(mid+1, r, x);
        }
    }
}

int main()
{
    int i, n, q, x;
    while (scanf("%d %d", &n, &q) != EOF) {
        for (i = 1; i <= n; ++i) {
            scanf("%d", &a[i].val);
            a[i].it = i;
        }
        sort(a+1, a + n + 1, cmp);
        for (i = 0; i < q; ++i) {
            scanf("%d %d %d", &c, &d, &x);
            ans = 0;
            bisearch(1, n, x);
            printf("%d\n", ans);
        }
    }
    return 0;
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Pop Count Problem (二进制数中1的个数)

原文链接:http://blog.ibread.net/375/pop-count-problem/ 以下文章中有大红色背景的文字是我转载时做的注释。 一、问题描述:求一个N位...

Google中国2015校园招聘笔试Round D APAC Test Problem B. GBus count

Problem There exists a straight line along which cities are built. Each city is given a number s...

2017年上海金马五校程序设计竞赛 Problem C : Count the Number

2017年上海金马五校程序设计竞赛 Problem C : Count the NumberProblem C : Count the NumberTime Limit: 3 sDescription...

phpweb 2072

  • 2013-05-10 14:21
  • 2.64MB
  • 下载

RFFC2072 datasheet

  • 2011-06-10 10:13
  • 2.03MB
  • 下载

hdoj2072 单词数 (set 和 map 两种做法)

题目:http://acm.hdu.edu.cn/showproblem.php?pid=2072 单词数 Problem Description lily的好朋友xiaoou333最近很空...

cbm2072量产工具V1.rar

  • 2010-07-11 12:23
  • 573KB
  • 下载

HDU 2072 单词数 详细解答

单词数Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submis...

2072 单词数(转)

对这种需要对整个字符串中单个单词进行处理的一般第一想到的是对单个字符逐个读取,但这样不会优化的话一般时间复杂度会比较大,不过可以单个单词的读取,这里介绍了用sscanf()读取的用法。 思路是: ...

HDU-2072(单词数)都是坑啊

单词数 Problem Description lily的好朋友xiaoou333最近很空,他想了一件没有什么意义的事情,就是统计一篇文章里不同单词的总数。下面你的任务是帮助xiaoou333...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)