【数据结构】第1周 线性表 3:位查询
来源:互联网 发布:马勒交响曲知乎 编辑:程序博客网 时间:2024/04/29 21:25
3:位查询
- 查看
- 提交
- 统计
- 提问
- 总时间限制:
- 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 51 2 4Q 1Q 2C 1Q 1Q 2
- 样例输出
1121
- 提示
- 只输出查询操作Q的统计值。
# include<stdio.h>int a[100005], b[200005];int main(void){ char c[2]; int i, N, M, k, j, cnt, t=0; scanf("%d%d", &N, &M); for(i=0; i<N; i++) scanf("%d", &a[i]); for(i=0; i<M; i++) { scanf("%s%d", c, &k); if(c[0]=='C') { for(j=0; j<N; j++) a[j]=(a[j]+k)%65536; } else { cnt=0; for(j=0; j<N; j++) { if(a[j]&(1<<k)) { cnt++; } } b[t++]=cnt; } } for(i=0; i<t; i++) printf("%d\n", b[i]); return 0;}
- 【数据结构】第1周 线性表 3:位查询
- [数据结构与算法]第一周(二):线性表---位查询&&放苹果
- 【数据结构】第1周 线性表 1:多项式加法
- 【数据结构】第1周 线性表 2:字符串插入
- 【数据结构】第1周 线性表 4:放苹果
- 《大话数据结构》第3章.线性表
- 《大话数据结构》学习记录1--第1,2章和第3章的顺序线性表
- 线性表-约瑟夫问题(数据结构基础 第2周)
- 线性表-多项式加法(数据结构基础 第2周)
- 数据结构和算法学习第1天:线性表
- 数据结构之算法2.6-在顺序线性表L中查找第1个值与e满足compare()的元素的位序
- 数据结构与算法MOOC / 第2周 线性表(Linear Lists)1:约瑟夫问题
- 第14周 项目1-数据结构例程——线性表的折半查找
- 数据结构线性表1
- 数据结构--1、线性表
- 数据结构1--线性表
- 数据结构(1):线性表
- 数据结构(1)-线性表
- Linux工具大全_patch
- C# Hadoop学习笔记(十)—C#的分布式计算运行结果
- Linux工具大全_bzip2
- PHP使用CURL模拟POST/GET方式提交数据,支持HTTPS请求
- android4.0 编译错误-----AccelerometerPlayActivity.java:19: 无法访问 android.app.Activity
- 【数据结构】第1周 线性表 3:位查询
- 【JAVASwing】根据显示器分辨率大小生成消息框
- 应用金数据在线订单功能 为中小企业带来真正价值
- 110507 The Stern-Brocot Number System
- 看到了百度理财的技术,才知道小米的技术才是最牛的
- 2013年工作中遇到的20个问题:261-280
- linux串口的操作
- The Power of Java 7 NIO.2
- 我的c++程序(2)