ACM-ICPC 2018 徐州赛区网络预赛 A Hard to prepare
https://nanti.jisuanke.com/t/31453
题目大意:
有n个人坐成一圈,然后有\(2^k\)种颜色可以分发给每个人,每个人可以收到相同的颜色,但是相邻两个人的颜色标号同或不能等于0,问分配方案数
注:以下所有的相同是指两个数同或为0
思路
- 通过观察得出在0~$$2^k-1$$的范围内对于每个数,与之同或为零的数是唯一的
- 首先举例尝试观察性质,假设第一个位置随便填,即有$$2k$$种不同的填法,然后考虑第二个位置和第一个位置不同的填法有$$2k-1$$种,然后考虑第三个位置和第二个位置不同的填法有$$2k-1$$种。。。。。一直考虑到第n个位置和第n-1个位置,得出前n个位置只考虑每个位置和前一个位置不同的方案数有$$2k*(2k-1){n-1}$$
- 但是并没有考虑第n个数和第一个数相同的情况,这种情况是包含在第一种情况里面的,需要把这些从前一种情况中减去,第一位依旧是$$2k$$,那么第n位便确定了,所有还剩下n-2位没有确定,保证他们和前面一位不相同,那么方案数是$$2k*(2k-1){n-2}$$,
- 但是我们并没有考虑第n-1个数和第n个数相同的情况,这种情况并不包含在第一种情况里面,但是在第二种情况的时候却把它减掉了,因此需要加回来,可见需要容斥
- 容斥
- 后一个状态 是 包含在前一个状态中的那些不合法状态
细节
- 考虑一种情况,但n为偶数的时候,考虑到最后一步的时候会出现abab这种情况,这种情况是计算,第二位和第三位相同的情况下,前两位和前面的数不相同的情况,但是第一位和第二位明显是相同的,所以这种情况,在一开始就没有被加进去,但是在最后一步却被减去了,所以在最后要加回这种情况
- ~(a^b)是不能实现同或的效果的,应该这么实现
- ab==2k-1
#include<bits/stdc++.h>
#define P 1000000007
#define ll long long
using namespace std;
int T,n,k,i;
ll m,ans;
ll pw(ll bs,ll x){
ll ans=1;while(x>0){if(x&1){ans=ans*bs%P;}bs=bs*bs%P;x>>=1;}
return ans;
}
int main(){
scanf("%d",&T);
while(T--){
scanf("%d%d",&n,&k);
m=(pw(2,k)-1+P)%P;
ans=0;
for(i=0;i<n;i++){
if(i&1){
ans-=pw(m,n-1-i);
ans=(ans+P)%P;
}
else{
ans+=pw(m,n-1-i);
ans%=P;
}
}
if((n&1)==0)ans=(ans+1)%P;
ans=ans*pw(2,k)%P;
printf("%lld\n",ans);
}
}
ACM-ICPC 2018 徐州赛区网络预赛 A Hard to prepare的更多相关文章
- ACM-ICPC 2018 徐州赛区网络预赛 A Hard to prepare(递推)
https://nanti.jisuanke.com/t/31453 题目 有n个格子拉成一个环,给你k,你能使用任意个数的0 ~ 2^k - 1,规定操作 i XNOR j 为~(i ^ j), ...
- ACM-ICPC 2018 徐州赛区网络预赛A Hard to prepare(DP)题解
题目链接 题意:有n个格子拉成一个环,给你k,你能使用任意个数的0 ~ 2^k - 1,规定操作 i XNOR j 为~(i ^ j),要求相邻的格子的元素的XNOR为正数,问你有几种排法,答案取 ...
- 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 ...
- 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 ...
- ACM-ICPC 2018 徐州赛区网络预赛(8/11)
ACM-ICPC 2018 徐州赛区网络预赛 A.Hard to prepare 枚举第一个选的,接下来的那个不能取前一个的取反 \(DP[i][0]\)表示选和第一个相同的 \(DP[i][1]\) ...
- ACM-ICPC 2018 徐州赛区网络预赛 G. Trace (思维,贪心)
ACM-ICPC 2018 徐州赛区网络预赛 G. Trace (思维,贪心) Trace 问答问题反馈 只看题面 35.78% 1000ms 262144K There's a beach in t ...
- ACM-ICPC 2018 徐州赛区网络预赛 J. Maze Designer (最大生成树+LCA求节点距离)
ACM-ICPC 2018 徐州赛区网络预赛 J. Maze Designer J. Maze Designer After the long vacation, the maze designer ...
- 计蒜客 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 ...
- ACM-ICPC 2018 徐州赛区网络预赛 B(dp || 博弈(未完成)
传送门 题面: In a world where ordinary people cannot reach, a boy named "Koutarou" and a girl n ...
随机推荐
- QT各模块
基本模块: QT core QT gui QT widgets QT multimedia QT webkit 浏览器引擎 QT network QT sql QT test 单元测试 QT webv ...
- TZOJ 1911 A Plug for UNIX(最大流)
描述 You are in charge of setting up the press room for the inaugural meeting of the United Nations In ...
- Delphi:MSBuild编译dproj工程
Delphi之命令行编译工程,传统是用dcc32来编译的,它需要设置一大堆参数. 自Delphi 2007以后,支持MSBuild编译,它直接编译.dproj工程文件,所有编译需要的东西,都已在其中设 ...
- 开机进入boot menu和application menu,无法开机
1.开机点击F1进入到bios界面 2.进入Security—Secure Boot—Disabled 如果不修改Secure boot选项为Disabled,在光驱引导时可能会出现报错 3. ...
- swift 4.2 - 根据字符串 push指定控制器
俩个方法 1. 创建类写成 类方法 import UIKit /* * 注释:获得VC * 1.字符串 和使用的控制器,直接跳转 * 2.用过字符串获得对应VC */ class JYGetPushV ...
- mysql事务四大特性
本篇讲诉数据库中事务的四大特性(ACID)和简单操作 ⑴ 原子性(Atomicity) 原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,这和前面两篇博客介绍事务的功能是一样的概念,因此事务 ...
- JSP使用sessionScope获取session值
场景:有些实体对象可以放到HttpSession对象中,保正在一个会话期间可以随时获取这个对象的属性,例如可以将登录用户的信息写入session,以保证页面随时可以获取并显示这个用户的状态信息.下面以 ...
- mysql的事务,隔离级别和锁
事务就是一组一起成功或一起失败的sql语句.事务还应该具备,原子性,一致性,隔离性和持久性. 一.事务的基本要素 (ACID) 1.原子性:事务开始后,所有的操作,要么全部成功,要么全部失败,不可能处 ...
- go语言使用go-sciter创建桌面应用(四) 固定窗口大小
有些时候我们需要创建的应用窗口大小不可改变. demo5.go代码如下: package main; import ( "github.com/sciter-sdk/go-sciter/wi ...
- netcore webapi 用户 'IIS APPPOOL\无托管代码' 登录失败
配置在iis上,除了环境配置错误的原因还有一种可能是连接字符串的问题,iis要求使用sql server的sa或者其他登录用户. ps:连接字符串: "Default": &qu ...