当前位置:网站首页>【集训DAY5】选数字【数学】
【集训DAY5】选数字【数学】
2022-08-09 22:35:00 【VL——MOESR】
思路:
预处理出&i==ai的所有数,然后容斥判断就行了
c o d e code code
#include<iostream>
#include<cstdio>
using namespace std;
const int MAXN = 1e5 + 10;
int n, q;
int sum[MAXN][256], a[MAXN], p[256];
long long jisuan(long long x) {
return (x * (x - 1) * (x - 2) / 6);
}
int main() {
p[0] = 0, p[1] = 1, p[2] = 1;
for(int i = 3; i <= 255; i ++) p[i] = p[i / 2] + (i & 1);
scanf("%d%d", &n, &q);
for(int i = 1; i <= n; i ++) scanf("%d", &a[i]);
for(int i = 1; i <= n; i ++)
for(int j = 0; j <= 255; j ++) {
sum[i][j] = sum[i - 1][j] + ((a[i] & j) == a[i]);
}
while(q --) {
int l, r, x;
long long ans = 0;
scanf("%d%d%d", &l, &r, &x);
for(int i = 0; i <= 255; i ++) {
if((i & x) != i) continue;
int g = p[x] - p[i];
if(g & 1) ans -= jisuan(sum[r][i] - sum[l - 1][i]);
else ans += jisuan(sum[r][i] - sum[l - 1][i]);
}
printf("%lld\n", ans);
ans = 0;
}
return 0;
}
边栏推荐
猜你喜欢
多商户商城系统功能拆解24讲-平台端分销会员
2022-08-09 mysql/stonedb-子查询性能提升-概论
kubesphere
How to know the computer boot record?
Gartner's global integrated system market data tracking, hyperconverged market growth rate is the first
complete knapsack theory
你的手机曾经被监控过吗?
iNFTnews | 迪士尼如何布局Web3
外包的水有多深?腾讯15k的外包测试岗能去吗?
The latest "Grain Academy Development Tutorial" in 2022: 10 - Front-end payment module
随机推荐
Cmake 用法记录
tiup cluster start
高手这样看现货白银走势图
tiup cluster upgrade
LeetCode952三部曲之三:再次优化(122ms -> 96ms,超51% -> 超91%)
Gartner全球集成系统市场数据追踪,超融合市场增速第一
&& 不是此版本的有效语句分隔符
Force Buckle: 474. Ones and zeros
IT传奇人物菲尔德的转型经验教训及给CIO的建议
ABAP中Collect的用法
国内十大活跃报表 BI 产品深度对比及点评
【JZOF】77 Print binary tree in zigzag
领跑政务云,连续五年中国第一
Gartner's global integrated system market data tracking, hyperconverged market growth rate is the first
The latest "Grain Academy Development Tutorial" in 2022: 10 - Front-end payment module
直播平台怎么搭建,原生js实现编辑器撤消/恢复功能
力扣:377. 组合总和 Ⅳ
Leetcode 701. 二叉搜索树中的插入操作
ALV报表总结2022.8.9
【AtomicInteger】常规用法