博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu 4737 A Bit Fun 尺取法
阅读量:5313 次
发布时间:2019-06-14

本文共 1339 字,大约阅读时间需要 4 分钟。

A Bit Fun

Time Limit: 5000/2500 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)

Problem Description
There are n numbers in a array, as a
0, a
1 ... , a
n-1, and another number m. We define a function f(i, j) = a
i|a
i+1|a
i+2| ... | a
j . Where "|" is the bit-OR operation. (i <= j)
The problem is really simple: please count the number of different pairs of (i, j) where f(i, j) < m.
 

 

Input
The first line has a number T (T <= 50) , indicating the number of test cases.
For each test case, first line contains two numbers n and m.(1 <= n <= 100000, 1 <= m <= 2
30) Then n numbers come in the second line which is the array a, where 1 <= a
i <= 2
30.
 

 

Output
For every case, you should output "Case #t: " at first, without quotes. The
t is the case number starting from 1.
Then follows the answer.
 

 

Sample Input
2 3 6 1 3 5 2 4 5 4
 

 

Sample Output
Case #1: 4 Case #2: 0
 

 

Source

#include
using namespace std;#define ll __int64#define esp 0.00000000001const int N=1e5+10,M=1e6+10,inf=1e9+10,mod=1000000007;int a[N];int flag[40];void init(){ memset(flag,0,sizeof(flag));}void update(int x,int hh){ int sum=0; while(x) { flag[sum++]+=x%2*hh; x>>=1; }}int getnum(){ int ans=0; for(int i=0;i<=35;i++) { if(flag[i]) ans+=1<

 

转载于:https://www.cnblogs.com/jhz033/p/5747475.html

你可能感兴趣的文章
两种应该掌握的排序方法--------1.shell Sort
查看>>
vuejs动态组件给子组件传递数据
查看>>
javascript constrator and prototype
查看>>
杭电2065(递推)红色病毒
查看>>
No Language-Support in system setting ,Ubuntu
查看>>
spring 实现测试解耦
查看>>
Python学习笔记第二十一周
查看>>
js 获取视频的第一帧
查看>>
各种正则验证
查看>>
C#中IS和AS操作符的区别(转)
查看>>
win7远程桌面连接
查看>>
深入浅出JMS(一)——JMS简单介绍
查看>>
[PTA] 数据结构与算法题目集 6-4 链式表的按序号查找 & 6-5 链式表操作集 & 6-6 带头结点的链式表操作集...
查看>>
观察者模式(Observer)
查看>>
DPDK编译步骤
查看>>
Python基础理论 - 面向对象
查看>>
数据仓库建设—维度建模
查看>>
(转载)Ubuntu 安装GNU Scientific library(GSL)
查看>>
java Map常用方法封装
查看>>
欧几里德与扩展欧几里德算法
查看>>