传送门

题意:

给出一个数列,交换数列数的位置,来使得对于任何一个i都有a1&a2&…&ai=ai+1&ai+2&…&an;求出满足条件的排列的总个数;

思路:

任何一个i都有a1&a2&…&ai=ai+1&ai+2&…&an 成立,则要满足:

a1 = a2&a3&…&an-1&an
a1 & a2&a3&…&an-1=an

即a1=an=a1&a2&a3…&an-1&an

所以我们要找出两个数所有数的与相等来作为数列的首尾

则我们需要去找数列中有多少个数所有数的与相等,记为c,如果个数小于2,则输出no;

如果个数大于等于2,则答案就是(n - 2)! * Ac2% \f is defined as #1f(#2) using the macro A_c^{2}Ac2​
代码:

#include <iostream>
#include <cstring>
#include <cmath>
#include <string>
#include <algorithm>
#include <queue>
#include <utility>
#include <stack>
#define mes memset
#define mec memcpyusing namespace std;typedef long long ll;
typedef pair<int,int>PII;const int N = 200010;
const int null = 0x3f3f3f3f;
const ll mod = 1000000007;int T;
int n;
ll a[N];int main()
{cin >> T;while(T --){cin >> n;for(int i = 1;i <= n;i ++) cin >> a[i];ll x = a[1];for(int i = 2;i <= n;i ++) x &= a[i];//cout << x << endl;ll cnt = 0;for(int i = 1;i <= n;i ++){if(a[i] == x) cnt ++;}//cout << cnt << endl; if(cnt < 2){cout << 0 << endl;continue;}int z = cnt;//  cout << cnt << endl;cnt *= (cnt - 1);cnt %= mod;//    cout << cnt << endl;ll y = 1;//cout << z << endl;for(int i = 2;i <= n - 2;i ++) y *= i,y %= mod;cout << (cnt * y) % mod << endl;}return 0;
}

Divide by Zero 2021 and Codeforces Round #714 (Div. 2)B. AND Sequences(位运算 + 思维 + 排列)相关推荐

  1. Codeforces Round #732 (Div. 2) C. AquaMoon and Strange Sort 思维

    传送门 文章目录 题意: 思路: 题意: 给你nnn个数,每个数初始方向是向右,每次可以交换相邻两个位置并且将这两个位置的方向调换,问这个序列的最终状态能否是非递减且方向都向右. n≤1e5,ai≤1 ...

  2. Codeforces Round #588 (Div. 2) D. Marcin and Training Camp 思维

    传送门 文章目录 题意: 思路: 题意: 有nnn个人,每个人都有一个能力值bib_ibi​以及他会的技能aia_iai​,当他会第xxx个技能的时候,aia_iai​的第xxx位是111.定义当xx ...

  3. Codeforces Round #727 (Div. 2) E. Game with Cards dp + 思维

    传送门 文章目录 题意: 思路: 题意: 初始有左右手,上面各有一个数字为000的卡牌,每次都有一个新卡kik_iki​,你可以将其放在左手或者右手,使两只手上的卡片范围在[ll,i,rl,i][l_ ...

  4. Codeforces Round #715 (Div. 1) C. Complete the MST 补图 + 思维 + 最小生成树

    传送门 文章目录 题意: 思路 题意: 给你一张nnn个点mmm个边的图,mmm条边是给定的,要求你给未给定的边赋值一个边权,使得所有边权异或和为000,求所有满足这种情况的图中最小生成树边权和最小的 ...

  5. Codeforces Round #632 (Div. 2) C. Eugene and an array 思维 + 前缀和

    传送门 文章目录 题意: 思路: 题意: 给定一个长度为nnn的序列aaa,定义一段区间为好区间是这段区间的所有连续子区间的和都不为000,求好区间的个数. 思路: 套路题,定义aia_iai​的前缀 ...

  6. Codeforces Round #462 (Div. 2) C. A Twisty Movement dp + 思维转换

    传送门 文章目录 题意: 思路: 题意: 给你一个长度为nnn的只包含1,21,21,2的序列aaa,你可以至多翻转一段区间,求翻转之后最长非递减子序列是多长. 思路: 考虑如果翻转的话,翻转的子区间 ...

  7. Codeforces Round #626 (Div. 2) D. Present 按位贡献 + 快排新姿势

    传送门 文章目录 题意: 思路: 题意: 给你一个长度为nnn的序列aaa,让你计算 n≤4e5,a≤1e7n\le 4e5,a\le 1e7n≤4e5,a≤1e7 思路: 首先这个式子是n2n^2n ...

  8. Codeforces Round #624 (Div. 3) E. Construct the Binary Tree 思维 + 构造

    传送门 文章目录 题意: 思路: 题意: 给你n,dn,dn,d,让你构造有nnn个点的二叉树,他们每个节点深度和为ddd. n,d≤3000n,d\le 3000n,d≤3000. 思路: 先考虑不 ...

  9. Codeforces Round #617 (Div. 3) E2. String Coloring (hard version) 思维 + dp + Dilworth定理

    传送门 文章目录 题意: 思路: 题意: 让你给一个串染色,不同颜色且相邻的一对字符可以互换位置,用最少的颜色,使交换后这个字符串字典序最小. 思路: 考虑将字符串分成若干个非递减的子序列,由于其非递 ...

  10. Divide by Zero 2018 and Codeforces Round #474 (Div. 1 + Div. 2, combined)

    思路:把边看成点,然后每条边只能从下面的边转移过来,我们将边按照u为第一关键字,w为第二关键字排序,这样就能用线段树维护啦. 1 #include<bits/stdc++.h> 2 #de ...

最新文章

  1. laravel CURD 查询构造器
  2. 使用Facebook方法处理复杂问题
  3. 聊聊springboot2的embeded container的配置改动
  4. HTML marquee标签详解
  5. python多线程编程(4): 死锁和可重入锁
  6. Android BroadcastReceiver,广播与进程通讯,APK安装广播,获取已安装列表
  7. 解决pytouch导入模型报错:AttributeError: Can‘t get attribute ‘XXX‘ on <module ‘__main__‘ from XXX>
  8. c 程序设计语言第1 3部分,《C程序设计语言(第2版新版)典藏版》 —1.3 for语句...
  9. cogs 1111. 最短路
  10. 计算机操作员高级教学大纲,计算机操作员课程教学大纲.doc
  11. 【luogu 3868】中国剩余定理模板题
  12. win2000修改主机名称
  13. 【正则】字符串按一定规则做替换
  14. golang not enough arguments in call to uuid.Must have (uuid.UUID) want (uuid.UUID, error)
  15. outlook自动保存html,outlook怎么编辑HTML源文件
  16. Win7系统应用技巧集锦
  17. mysql的_Mysql
  18. 网新恒天外派道富电话面试
  19. 有人说Python是青铜?我用50行Python代码绘制3D机场分布图
  20. 目标检测——day45 Deep Affinity Network for Multiple Object Tracking

热门文章

  1. 认知升级:什么才是真正的高情商?
  2. Qt雪花飘落程序,下雪
  3. 争对让望对思野葛对山栀注解_《笠翁对韵》注音注释(四支)
  4. 【文献翻译】利用脑电信号预测癫痫发作的机器学习:综述
  5. 回溯法采用的搜索策略_下面哪种函数是回溯法中为避免无效搜索采取的策略( )...
  6. 树莓派之安装Vulkan
  7. 未完成的IT路停在回车键---2014年末总结篇
  8. Don't Starve,好脚本,好欢乐
  9. linux这么重命名文件,如何在Linux中重命名文件
  10. 全程回顾 Blazor Day in China 精彩分享