zoukankan      html  css  js  c++  java
  • POJ——位查询

    总时间限制: 
    5000ms 
    内存限制: 
    65536kB
    描述

        给出N个范围在[0, 65535]的整数,编程支持以下的操作:


    (1)修改操作:C d,所有的数都增加d。如果超过65535,把结果模65536。 0 <= d <= 65535 
    (2)查询操作:Q i,统计在N个正整数中有多少个整数其对应的二进制形式的第i位二进制位为非0。0 <= i <= 15。并且最低位i为0。


      最后,输出所有查询操作的统计值。

    输入
    输入的第一行为两个正整数N,M,其中N为操作的整数的个数,而M为具体有多少个操作。
    输入的第二行为N个正整数,为进行操作的N个正整数。
    下面有M行,分别表示M个操作。

    N<=100000,M<=200000
    输出
    输出所有查询操作Q的统计值,每一个查询操作统计结果输出为一行。
    样例输入
    3 5
    1 2 4
    Q 1
    Q 2
    C 1
    Q 1
    Q 2
    样例输出
    1
    1
    2
    1
    
    提示
    只输出查询操作Q的统计值。
     1 #include <iostream>
     2 
     3 using namespace std;
     4 
     5 int main()
     6 {
     7     int i, j;
     8     int N, M;
     9     int num[100001], val, sum, check;
    10     char op;
    11     cin >> N >> M;
    12     for(i = 0; i < N; i++)
    13     {
    14         cin >> num[i];
    15     }
    16     for(i = 0; i < M; i++)
    17     {
    18         cin >> op;
    19         cin >> val;
    20         if(op == 'C')
    21         {
    22             for(j = 0; j < N; j++)
    23             {
    24                 num[j] += val;
    25                 num[j] %= 65536;
    26             }
    27         }
    28         else if(op == 'Q')
    29         {
    30             sum = 0;
    31             for(j = 0; j < N; j++)
    32             {
    33                 check = num[j] >> val;
    34                 if(check % 2 == 1)
    35                 {
    36                     sum++;
    37                 }
    38             }
    39             cout << sum << endl;
    40         }
    41     }
    42     return 0;
    43 }
    欢迎来我的个人网站:http://www.rxwcv.cn
  • 相关阅读:
    网络基础之网络协议篇
    JVM-07-执行引擎
    JVM-06-对象实例化、内存布局、访问定位以及直接内存
    JVM-05-方法区
    JVM-04-堆
    JVM-03-本地方法接口和本地方法栈
    JVM-02-程序计数器 虚拟机栈
    JVM-01-类加载子系统
    JVM-00-引言
    swagger
  • 原文地址:https://www.cnblogs.com/Hewie/p/3439849.html
Copyright © 2011-2022 走看看