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的更多相关文章

  1. 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, ...

  2. CF R 630 div2 1332 F Independent Set

    LINK:Independent Set 题目定义了 独立集和边诱导子图.然而和题目没有多少关系. 给出一棵树 求\(\sum_{E'\neq \varnothing,E'\subset E}w(G( ...

  3. CF R303 div2 C. Woodcutters

    C. Woodcutters time limit per test 1 second memory limit per test 256 megabytes input standard input ...

  4. CF#603 Div2

    差不多半年没打cf,还是一样的菜:不过也没什么,当时是激情,现在已是兴趣了,开心就好. A Sweet Problem 思维,公式推一下过了 B PIN Codes 队友字符串取余过了,结果今天早上一 ...

  5. CF 354 div2 B 酒杯金字塔

    B. Pyramid of Glasses time limit per test 1 second memory limit per test 256 megabytes input standar ...

  6. CF R631 div2 1330 E Drazil Likes Heap

    LINK:Drazil Likes Heap 那天打CF的时候 开场A读不懂题 B码了30min才过(当时我怀疑B我写的过于繁琐了. C比B简单多了 随便yy了一个构造发现是对的.D也超级简单 dp了 ...

  7. CF#581 (div2)题解

    CF#581 题解 A BowWow and the Timetable 如果不是4幂次方直接看位数除以二向上取整,否则再减一 #include<iostream> #include< ...

  8. [CF#286 Div2 D]Mr. Kitayuta's Technology(结论题)

    题目:http://codeforces.com/contest/505/problem/D 题目大意:就是给你一个n个点的图,然后你要在图中加入尽量少的有向边,满足所有要求(x,y),即从x可以走到 ...

  9. CF 197 DIV2 Xenia and Bit Operations 线段树

    线段树!!1A 代码如下: #include<iostream> #include<cstdio> #define lson i<<1 #define rson i ...

随机推荐

  1. Synchronized锁的是什么?

    Synchronized锁的是什么? 临界区与锁 并发编程中不可避免的会出现多个线程共享同一个资源的情况,为了防止出现数据不一致情况的发生,人们引入了临界区的概念.临界区是一个用来访问共享资源的代码块 ...

  2. bootstrap悬停下拉菜单显示

    使用Bootstrap导航条组件时,如果你的导航条带有下拉菜单,那么这个带下拉菜单的导航在点击时只会浮出下拉菜单,它本身的href属性会失效,也就是失去了超链接功能,这并不是我想要的,我希望导航条的链 ...

  3. BZOJ 1131 [POI2008] STA-Station 题解

    题目 The first stage of train system reform (that has been described in the problem Railways of the th ...

  4. The Meaningless Game 思维题

    题目描述 Slastyona and her loyal dog Pushok are playing a meaningless game that is indeed very interesti ...

  5. IA-32指令解析详解

    IA-32指令解析详解 0x00 前言 这段时间忙于考试,信息论和最优化,还有算法分析,有点让人头大.期间花了几天看SEH机制,能明白个大概,但是对于VC++对于SHE的包装似乎还是不是很明白,发现逆 ...

  6. python入门005

    垃圾回收机制详解(了解) 1.引用计数 x = 10 # 直接引用 print(id(x)) y = x z = x l = ['a', 'b', x] # 间接引用 print(id(l[2])) ...

  7. WPF弹性、惯性效果应用

    WPF弹性.惯性效果.已发布在了一些网站,都是这里写的 代码改编自微软示例代码库 // Copyright © Microsoft Corporation.  All Rights Reserved. ...

  8. day38 并发编程(理论)

    目录 一.操作系统发展史 二.多道技术 1 单核实现并发的效果 2 多道技术图解 3 多道技术重点 三.进程理论 1 必备知识点 2 进程调度 3 进程的三状态 4 两对重要概念 四.开启进程的两种方 ...

  9. 三个Python自动化测试高效工具的使用总结

    ##Python语言的特点 Python 是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言. Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号 ...

  10. CUDA C++ Extensions

    敲代码的时候总是会去CUDA官方文档中找找思路,感觉每次看英文文档都要耗费一点时间来翻译,干脆自己翻译一下便于以后查阅.官方文档:cuda-c-language-extensions 目录 函数修饰符 ...