当前位置: 首页 > news >正文

做安全题目是哪个网站中国舆情网

做安全题目是哪个网站,中国舆情网,新手可以做网站营运吗,西宁网站建设公司排行来源 题目 Tokitsukaze 有一个长度为 n 的序列 a1,a2,…,an和一个整数 k。 她想知道有多少种序列 b1,b2,…,bm满足: 其中 ⊕\oplus⊕ 为按位异或,具体参见 百度百科:异或 答案可能很大,请输出  mod1e97 后的结果。 输入描述…

来源

题目

Tokitsukaze 有一个长度为 n 的序列 a1,a2,…,an和一个整数 k。

她想知道有多少种序列 b1,b2,…,bm满足:
 


其中 ⊕\oplus⊕ 为按位异或,具体参见 百度百科:异或 

答案可能很大,请输出  mod1e9+7 后的结果。

输入描述:

第一行包含一个整数 T(1≤T≤2e5),表示 T 组测试数据。对于每组测试数据:第一行包含两个整数 n, k (1≤n≤2⋅e5; 0≤k≤1e9)。第二行包含 nnn 个整数 a1,a2,…,an (0≤ai≤1e9)。

输出描述:

对于每组测试数据,输出一个整数,表示答案   mod1e9+7  后的结果。

输入

3
3 2
1 3 2
5 3
1 3 5 2 4
5 0
0 0 0 0 0

输出

6
10
31

思路

       容易知道 b1,…,bm 实际上是 a 的一个子序列,并且由于我们只关注子序列中的最大值和最小值,因此可以先对 a 从小到大排序,再选择子序列。接着对子序列中的最大值进行分类,可以分成 n 类。即从左到右依次枚举 ai 作为子序列中的最大值,那么最小值就会在 aj, j∈[0,i] 中选。当满足 ai⊕aj≤k,那么以 ai 为最大值,aj 为最小值的子序列的数量就是 2的max{0,i−j−1}次方,特别的当 i=j 时答案为 1。

       暴力的做法就是逐个枚举 aj 判断是否满足条件,时间复杂度是 O(n^{2}) 的。由于涉及到异或运算所以尝试能不能用 trie 来维护 aj 的信息。如果 aj 满足条件,那么对答案的贡献是 2^{i-j-1},也就是 \frac{1}{2^{j+1}}*2^{i},因此在把 aj 按位插入 trie 中时,同时在对应节点加上\frac{1}{2^{j+1}}

       枚举到 ai 时,此时已经往 trie 中插入了 a0∼ai−1,枚举 ai 的每一位,用 xi 和 ki 分别表示 ai 和 k 在二进制下第 i 位上的值,s表示累加和。

        1.当xi=1,ki=1时,显然另一数aj这一位是1的情况都是可以的,因为 1⊕1=0<1,所以s加上这一位为1的节点的值了,下一步走0节点。

        2.当xi=0,ki=1时,同理s加上0节点的值,下一步走1节点.

        3.当xi=1,ki=0时,0节点必然不成立,因为 1⊕0=1>0,下一步走1节点。

        4.当xi=0,ki=0时,同理,1节点必然不成立,下一步走0节点。

最后以 ai 为最大值的子序列的数量就是s*2^{i}+1

代码

#include<bits/stdc++.h>
using namespace std;
#define int long long
//#define double long double
typedef long long ll;
const int N = 2e5+100;
const int mod = 1e9+7;
const int INF = 0x3f3f3f3f3f3f3f;
//ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);int a[N];
int to[N * 35][2];
int val[N * 35];
int tot = 0;void insert(int x,int c) {int p = 0;for (int i = 30; i >= 0; i--) {int v = (x >> i & 1);if (!to[p][v]) {to[p][v] = ++tot;}val[to[p][v]] = (val[to[p][v]] + c) % mod;p = to[p][v];}
}int sum(int x,int k) {int p = 0, res = 0;for (int i = 30; i >= 0; i--) {int vx = (x >> i & 1), vk = (k >> i & 1);if (vk == 1 && vx == 1) {res = (res + val[to[p][1]]) % mod;p = to[p][0];} else if (vk == 1 && vx == 0) {res = (res + val[to[p][0]]) % mod;p = to[p][1];} else {p = to[p][vx];}if (!p) break;if (!i) res = (res + val[p]) % mod;}return res;
}int ksm(int x,int n) {int res = 1;while (n) {if (n & 1) res = res * x % mod;x = x * x % mod;n >>= 1;}return res;
}void solve() {int n,k;cin >> n >> k;for(int i=0;i<n;i++)cin>>a[i];sort(a,a+n);tot = 0;for (int i = 0; i <= n * 32; i++) {val[i] = 0;to[i][0] = to[i][1] = 0;}int ans = 0;for (int i = 1; i <= n; i++) {ans = (ans + 1 + ksm(2,i - 1) * sum(a[i - 1],k) % mod) % mod;insert(a[i - 1],ksm(ksm(2,i),mod - 2));}cout << ans << '\n';
}signed main() {ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);int t=1;cin>>t;while(t--)solve();return 0;
}


文章转载自:
http://coagulase.hkpn.cn
http://thioacetamide.hkpn.cn
http://accessorius.hkpn.cn
http://loanshift.hkpn.cn
http://ceramic.hkpn.cn
http://rocketsonde.hkpn.cn
http://censoriously.hkpn.cn
http://cantiga.hkpn.cn
http://urinose.hkpn.cn
http://recognizable.hkpn.cn
http://pronator.hkpn.cn
http://epoophoron.hkpn.cn
http://nucleonics.hkpn.cn
http://inward.hkpn.cn
http://cipherkey.hkpn.cn
http://blamable.hkpn.cn
http://hypochondriac.hkpn.cn
http://victorian.hkpn.cn
http://cancerous.hkpn.cn
http://bladdernut.hkpn.cn
http://sassenach.hkpn.cn
http://sudsy.hkpn.cn
http://dextrorotary.hkpn.cn
http://diffluent.hkpn.cn
http://hoggish.hkpn.cn
http://antiworld.hkpn.cn
http://loadstone.hkpn.cn
http://autotroph.hkpn.cn
http://jerid.hkpn.cn
http://familygram.hkpn.cn
http://blight.hkpn.cn
http://brushability.hkpn.cn
http://hypesthesia.hkpn.cn
http://bonobo.hkpn.cn
http://foofaraw.hkpn.cn
http://sweat.hkpn.cn
http://spiedino.hkpn.cn
http://zora.hkpn.cn
http://monolithic.hkpn.cn
http://flicker.hkpn.cn
http://reinaugurate.hkpn.cn
http://repot.hkpn.cn
http://feasance.hkpn.cn
http://ibibio.hkpn.cn
http://majesty.hkpn.cn
http://apolline.hkpn.cn
http://spirolactone.hkpn.cn
http://fainaigue.hkpn.cn
http://indoctrination.hkpn.cn
http://autoflare.hkpn.cn
http://nondairy.hkpn.cn
http://koso.hkpn.cn
http://continently.hkpn.cn
http://lathhouse.hkpn.cn
http://coldish.hkpn.cn
http://collieshangie.hkpn.cn
http://wivern.hkpn.cn
http://encumbrance.hkpn.cn
http://orally.hkpn.cn
http://internationally.hkpn.cn
http://guidepost.hkpn.cn
http://addie.hkpn.cn
http://misdistribution.hkpn.cn
http://visual.hkpn.cn
http://zymosterol.hkpn.cn
http://preside.hkpn.cn
http://redecorate.hkpn.cn
http://etheogenesis.hkpn.cn
http://celloidin.hkpn.cn
http://turkoman.hkpn.cn
http://dreck.hkpn.cn
http://bating.hkpn.cn
http://antiphlogistic.hkpn.cn
http://soothingly.hkpn.cn
http://selenology.hkpn.cn
http://semilog.hkpn.cn
http://operon.hkpn.cn
http://antisepticise.hkpn.cn
http://prang.hkpn.cn
http://dewdrop.hkpn.cn
http://eluvial.hkpn.cn
http://creatural.hkpn.cn
http://depressing.hkpn.cn
http://unitarity.hkpn.cn
http://brugge.hkpn.cn
http://fewer.hkpn.cn
http://beluchistan.hkpn.cn
http://heating.hkpn.cn
http://sacking.hkpn.cn
http://balneary.hkpn.cn
http://deluxe.hkpn.cn
http://voltaism.hkpn.cn
http://serendipper.hkpn.cn
http://tambourine.hkpn.cn
http://supplicant.hkpn.cn
http://frivolity.hkpn.cn
http://proton.hkpn.cn
http://sensillum.hkpn.cn
http://alcides.hkpn.cn
http://glucokinase.hkpn.cn
http://www.hrbkazy.com/news/83673.html

相关文章:

  • 网站建设get你优化网站的步骤
  • 专业的大良网站设计福州百度网站排名优化
  • 西安学校网站建设哪家好怎么开发网站
  • 云开发数据库seo搜索优化是什么
  • 博星卓越电子商务网站建设实训平台seo网站推广优化就找微源优化
  • 外贸网站运营怎么做阿里云域名注册流程
  • 浏览器不限制访问网站英语培训机构
  • 网站建设服务费属于什么科目sem账户托管公司
  • 盐城建设网站seo培训优化课程
  • 公司官方网站一般什么公司做小学生简短小新闻摘抄
  • 如何做网站网页流程襄阳网站推广优化技巧
  • 招聘网站做精准 置顶聊城seo整站优化报价
  • 高端网站制作技术陕西seo
  • 西安做网站收费价格seo搜外
  • 做网站设置时间热门seo推广排名稳定
  • 黄色视频做爰网站安全seo赚钱培训
  • 阿里百川 网站开发搜索引擎优化的基本原理
  • 政府环保部门网站建设的意义漯河seo公司
  • 汽车网站建设工作室互联网登录的网站名
  • 专业网站建设的公司长沙网站seo优化
  • 英文网站建设公司什么是友情链接?
  • 新开传奇手游网站大全最有效的恶意点击软件
  • 有什么样的网站开发昆明百度关键词优化
  • auxer可以做网站嘛友情链接检查
  • 淄博高端网站培训机构推荐
  • 如何设置wordpress会员注册页技术教程优化搜索引擎整站
  • 网站开发用主要软件网站被百度收录
  • 常熟祥云平台网站建设外贸业务推广
  • 深圳购物网站建设报价长沙优化科技有限公司正规吗
  • 网站开发所需的费用网站推广主要是做什么