CF R630 div2 1332 E Height All the Same
LINK:Height All the Same
比赛的时候 被这道题给打自闭了 还有1个多小时的时候开始想 想了30min 无果 放弃治疗。
心态炸了 F不想看了 应该要把题目全看一遍的 下次不能这样了。
首先考虑总共的方案数 \((nm)^{R-L+1}\)
你发现 什么都没有了 开始分析性质。
这张矩阵图 完全可以变成01矩阵经过每一个格子不断加2 最后统一减去某个值会变成这个样子。
我们想让这个01矩阵变成全0或者全1.
开始手玩 \(1*1\) 的矩阵可以发现所有方案都合法 \(1*3\)的也是如此 考虑\(1*5\)的 发现也是如此。
\(1*4\)的就不行了。考虑\(2*2\)的发现不行 考虑\(2*3\)发现也不行 \(2*4\)也不行...
考虑\(3*3\)的 发现可以了....
大力猜结论 奇数个格子都是可以的。
偶数的格子可能可以可能不可以。
经过无数次的试验+大力猜结论 可以发现 当0或1的某个的数量为偶数的时候就可以。剩下的则不行。
这个还是不难猜的 毕竟是从偶数个格子过来的。
那么其实就等价于对于偶数个格子我们进行计算。
给每个格子分配一个权值 最后看他们的奇偶性。
可以发现都为奇数的时候 异或和为奇数 我们给依次给每个格子赋值即可f[i][j]表示前i个格子奇数个偶数或奇数 或偶数个偶数或奇数。
利用矩阵快速幂转移即可。因为一共有nm个格子。
考虑另外一种做法 统计不合法方案吧 考虑有奇数个格子为1剩下的奇数个格子为偶数。
那么方案为\(\sum_{i=1}^{nm}\)[(i&1)==1]\(C(nm,i)w1^{i}w2^{nm-i}\)
这个东西显然和 二项式定理有关。
不难得到上述式子等于\(((w1+w2)^{nm}-(w2-w1)^{nm})/2\)
这道题关键是猜出结论。
const ll MAXN=100010;
ll n,m,L,R;
inline ll ksm(ll b,ll p)
{
if(b==mod)return 0;
p=p%(mod-1);
ll cnt=1;
while(p)
{
if(p&1)cnt=cnt*b%mod;
b=b*b%mod;p=p>>1;
}
return cnt;
}
int main()
{
freopen("1.in","r",stdin);
get(n);get(m);get(L);get(R);
if((n*m)&1){putl(ksm(R-L+1,n*m));}
else
{
ll w1=(R-L+1)/2;
ll w2=w1;
if((R-L+1)&1)++w1;
putl((ksm(w1+w2,n*m)+ksm(w1-w2,n*m))%mod*ksm(2,mod-2)%mod);
}
return 0;
}
CF R630 div2 1332 E Height All the Same的更多相关文章
- cf 442 div2 F. Ann and Books(莫队算法)
cf 442 div2 F. Ann and Books(莫队算法) 题意: \(给出n和k,和a_i,sum_i表示前i个数的和,有q个查询[l,r]\) 每次查询区间\([l,r]内有多少对(i, ...
- CF R 630 div2 1332 F Independent Set
LINK:Independent Set 题目定义了 独立集和边诱导子图.然而和题目没有多少关系. 给出一棵树 求\(\sum_{E'\neq \varnothing,E'\subset E}w(G( ...
- CF R303 div2 C. Woodcutters
C. Woodcutters time limit per test 1 second memory limit per test 256 megabytes input standard input ...
- CF#603 Div2
差不多半年没打cf,还是一样的菜:不过也没什么,当时是激情,现在已是兴趣了,开心就好. A Sweet Problem 思维,公式推一下过了 B PIN Codes 队友字符串取余过了,结果今天早上一 ...
- CF 354 div2 B 酒杯金字塔
B. Pyramid of Glasses time limit per test 1 second memory limit per test 256 megabytes input standar ...
- CF R631 div2 1330 E Drazil Likes Heap
LINK:Drazil Likes Heap 那天打CF的时候 开场A读不懂题 B码了30min才过(当时我怀疑B我写的过于繁琐了. C比B简单多了 随便yy了一个构造发现是对的.D也超级简单 dp了 ...
- CF#581 (div2)题解
CF#581 题解 A BowWow and the Timetable 如果不是4幂次方直接看位数除以二向上取整,否则再减一 #include<iostream> #include< ...
- [CF#286 Div2 D]Mr. Kitayuta's Technology(结论题)
题目:http://codeforces.com/contest/505/problem/D 题目大意:就是给你一个n个点的图,然后你要在图中加入尽量少的有向边,满足所有要求(x,y),即从x可以走到 ...
- CF 197 DIV2 Xenia and Bit Operations 线段树
线段树!!1A 代码如下: #include<iostream> #include<cstdio> #define lson i<<1 #define rson i ...
随机推荐
- yml配置基本使用
1.yml 基本知识 1.1 常识 基本结构 k: v 的结构 注意:冒号和v之间必须有空格,否则会出现问题: 大小写敏感 1.2 v 多种写法 看一下下面的这个例子: # rabbitmq 初始化配 ...
- Redis基础01-redis的数据结构
参考书:<redis设计与实现> Redis虽然底层是用C语言写的,但是底层的数据结构并不是直接使用C语言的数据结构,而是自己单独封装的数据结构: Redis的底层数据结构由,简单动态字符 ...
- linux新用户(组)的那些事
linux新用户(组)的那些事 创建新用户 groupadd bigdata //添加新用户组bigdata useradd -g bigdata es //-g:为用户组添加新用户 passwd ...
- OutOfMemory相关问题(内存溢出异常OOM)
OutOfMemory(内存溢出异常OOM) java.lang.OutOfMemoryError :Thrown when the Java Virtual Machine cannot alloc ...
- 小师妹学JVM之:Dirty cards和PLAB
目录 简介 分代收集器中的空间划分 Write barrier和Dirty cards PLAB old space分配对象 总结 简介 分代垃圾回收器在进行minor GC的时候会发生什么操作呢?有 ...
- 仿Neo4j里的知识图谱,利用d3+vue开发的一个网络拓扑图
项目需要画一个类似知识图谱的节点关系图. 一开始用的是echart画的. 根据https://gallery.echartsjs.com/editor.html?c=xH1Rkt3hkb,成功画出简单 ...
- 利用docker部署elk交换机日志分析
今天我们来聊一下利用docker部署elk日志分析系统,这里解析一下elk是啥东西.elk分别是Elasticsearch,Logstash和Kibana的首字母缩写. Elasticsearch是一 ...
- 【GIT】git详解
目录 一.基础使用 二.分支管理 三.提交树操作 四.复杂工作流处理 ----------------------------------------------------------------- ...
- Django 【基础篇】
前戏 python Web程序 众所周知,对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端. #!/usr/bin/env python #cod ...
- 区分C语言中的指针函数和函数指针
1.指针函数: 类型说明符 *函数名(形参表) { .......... /*函数体*/ .......... /*函数体*/ } 其中函数名之前加了"*"号表明,这是一 ...