https://nanti.jisuanke.com/t/31453

题目

有n个格子拉成一个环,给你k,你能使用任意个数的0 ~ 2^k - 1,规定操作 i XNOR j 为~(i  ^  j),要求相邻的格子的元素的XNOR为正数,问你有几种排法,答案取模1e9 + 7。本题所使用的数字为无符号位数字。

分析

因为都是无符号了,那么题目就是要求相邻的数同或的结果不为0,即异或的结果不为2^k-1。

第1个数有种选择,第2个数到第n-1个数都有种选择,第n个数有种选择

所以答案就是

可是当第1个数和第n-1个数相同时,第n个数有种选择,与上面相比,少了一种选择。于是此时将第1个数和第n-1个数合并起来,这样长度就变成n-2了,因为当它们相同时,第n个数多了一种选择,也是唯一一种。然后递归求解。

#include<bits/stdc++.h>
using namespace std;
#define LL long long
const int mod = 1e9 + ;
const int maxn = 1e6 + ;
LL Pow(LL a, LL b){
LL ans = ;
while(b){
if(b%) ans = ans*a%mod;
a = a*a%mod;
b /= ;
}
return ans;
}
LL er[maxn], ans[maxn];
LL solve(int n, int m){
if(n==) return er[m]*(er[m]-)%mod;
if(n==) return er[m];
return (er[m]*Pow(er[m]-, n-)%mod*max(er[m]-, 0ll)%mod+solve(n-, m))%mod;
}
int main(){
int T, n, m;
er[]=;
for(int i=;i<=maxn;i++) er[i] = er[i-]*%mod;
scanf("%d", &T);
while(T--){
scanf("%d%d", &n, &m);
printf("%lld\n", solve(n, m));
}
return ;
}

ACM-ICPC 2018 徐州赛区网络预赛 A Hard to prepare(递推)的更多相关文章

  1. ACM-ICPC 2018 徐州赛区网络预赛 A Hard to prepare

    https://nanti.jisuanke.com/t/31453 题目大意: 有n个人坐成一圈,然后有\(2^k\)种颜色可以分发给每个人,每个人可以收到相同的颜色,但是相邻两个人的颜色标号同或不 ...

  2. ACM-ICPC 2018 徐州赛区网络预赛A Hard to prepare(DP)题解

    题目链接 题意:有n个格子拉成一个环,给你k,你能使用任意个数的0 ~ 2^k - 1,规定操作 i XNOR j 为~(i  ^  j),要求相邻的格子的元素的XNOR为正数,问你有几种排法,答案取 ...

  3. ACM-ICPC 2018 徐州赛区网络预赛 A.Hard to prepare 【规律递推】

    任意门:https://nanti.jisuanke.com/t/31453 A.Hard to prepare After Incident, a feast is usually held in ...

  4. ACM-ICPC 2018 徐州赛区网络预赛 A. Hard to prepare (组合数学,递归)

    A. Hard to prepare After Incident, a feast is usually held in Hakurei Shrine. This time Reimu asked ...

  5. ACM-ICPC 2018 徐州赛区网络预赛(8/11)

    ACM-ICPC 2018 徐州赛区网络预赛 A.Hard to prepare 枚举第一个选的,接下来的那个不能取前一个的取反 \(DP[i][0]\)表示选和第一个相同的 \(DP[i][1]\) ...

  6. ACM-ICPC 2018 徐州赛区网络预赛 G. Trace (思维,贪心)

    ACM-ICPC 2018 徐州赛区网络预赛 G. Trace (思维,贪心) Trace 问答问题反馈 只看题面 35.78% 1000ms 262144K There's a beach in t ...

  7. ACM-ICPC 2018 徐州赛区网络预赛 J. Maze Designer (最大生成树+LCA求节点距离)

    ACM-ICPC 2018 徐州赛区网络预赛 J. Maze Designer J. Maze Designer After the long vacation, the maze designer ...

  8. 计蒜客 1460.Ryuji doesn't want to study-树状数组 or 线段树 (ACM-ICPC 2018 徐州赛区网络预赛 H)

    H.Ryuji doesn't want to study 27.34% 1000ms 262144K   Ryuji is not a good student, and he doesn't wa ...

  9. ACM-ICPC 2018 徐州赛区网络预赛 B(dp || 博弈(未完成)

    传送门 题面: In a world where ordinary people cannot reach, a boy named "Koutarou" and a girl n ...

随机推荐

  1. centos7搭建ftp

    1.检查安装vsftpd软件 rpm –qa |grep vsftpd 这里显示已经安装了,我们来卸载它重新安装 卸载vsftpd命令 rpm –e 文件名 显示卸载完成 安装vsftpd命令 Yum ...

  2. Github上html页面(包括CSS样式和JS效果)如何显示出来

    在看Github上项目时,发现有的html页面效果能很好的展现出来,而有的则不能.对这个问题很好奇,因此研究了一下,最终做到了将页面展示出来的目的.下面以我的Github的开源项目bootstrap- ...

  3. 如何提高 windows 的使用效率?--巧用运行命令

    windows 操作系统可以使用 win+R 运行一些命令执行任务,好处是:高效.快速.准确. 启动程序 将程序 chrome 写入以下注册表中, SOFTWARE\Microsoft\Windows ...

  4. Log4j分级别存储日志到数据库

    首先先创建三张表,按照自己的需求创建 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE lo ...

  5. zabbix,php,nginx,mysql源码安装 神仙操作

    →软件包 mkdir /soft/ cd /soft ♦下载以下软件包 nginx-1.14.2.tar.gz wget http://nginx.org/download/nginx-1.14.2. ...

  6. Spring Security(三十二):10. Core Services

    Now that we have a high-level overview of the Spring Security architecture and its core classes, let ...

  7. 搭建vue.js环境

    一.安装Node.js (以下安装环境均为win10) 下载链接:https://nodejs.org/en/download/ 官网给出了两个版本,LTS和Curren.字面意思是推荐大多数用户使用 ...

  8. 《通过C#学Proto.Actor模型》之 HelloWorld

    在微服务中,数据最终一致性的一个解决方案是通过有状态的Actor模型来达到,那什么是Actor模型呢? Actor是并行的计算模型,包含状态,行为,并且包含一个邮箱,来异步处理消息. 关于Actor的 ...

  9. Java语法----Java中equals和==的区别

    [正文] 平时在学Android和Java语言的时候,总是碰到“equals”和“==”这两个字符,老感觉差不多:其实还是有一些区别的,今天干脆把它们彻底弄清楚. 一.java当中的数据类型和“==” ...

  10. Android——具有边框的Textview

    我们可以看见很多类似瀑布流的分类: 通过边框进行选择,那么这个边框是怎么变成的呢? 我们可以通过添加背景图,不过有更加简单的,如下: 我们在drawable文件中编写一个shape, <?xml ...