[CF1239A] Ivan the Fool and the Probability Theory - 组合数学

给定一个 \(n \times m\) 的方格图,每个格子可以被染成黑色或白色,且与其相邻的格子(上,下,左,右)中至多只有一个与其颜色相同。求方案数。

Solution

依稀记得当年在热身赛上碰到这个题,大家都说是 CF 原题,然后我跪了……

对于 \((i,j)\),如果它左、左上、上的颜色确定,那么这个格子的颜色就确定了

于是我们枚举 \((1,1)\) 的颜色,然后将第一行第一列的颜色确定下来,这时候行列显然相互独立

对于行,答案相当于一个 \(1/2\) 排列划分,对于列同理,于是答案为
\[
2(F_n+F_m-1)
\]

#include <bits/stdc++.h>
using namespace std;

#define int long long
const int mod = 1e9+7;

int f[100005];

signed main() {
    int n,m;
    cin>>n>>m;
    f[0]=f[1]=1;
    for(int i=2;i<=max(n,m);i++) f[i]=(f[i-1]+f[i-2])%mod;
    cout<<2*(f[n]+f[m]-1+mod)%mod;
}

原文地址:https://www.cnblogs.com/mollnn/p/12540303.html

时间: 2024-11-07 15:17:03

[CF1239A] Ivan the Fool and the Probability Theory - 组合数学的相关文章

Codeforces Round #594 (Div. 2) C. Ivan the Fool and the Probability Theory

题目原址:C. Ivan the Fool and the Probability Theory 题意:n×m的网格中填黑白格,最多有两个相邻,共用一条边为相邻,有几种填法. 思路:这题比赛写自闭了,一直觉得自己的思路没错,然后就残酷打脸,超级难受的那种. 从不能有3个及以上相邻可以得出,只要有两个相邻的就能确定全部的分布,那就变成了求一行的方法数量,再减去黑白相间的两种,而剩下就是黑白相间两种情况时有多少种了. 一行的求法:dp[ i ] [ 0 ]表示在第 i 个格子里放白色的放法有多少,d

Codeforces 1248 div2 C. Ivan the Fool and the Probability Theory (思维)

题意:给一个n×m的网格,只涂黑白,问再没有三个联通方格的情况下涂色,有多少种涂法?结果mod 1e9+7 直接说解法: 首先判断第一行的情况,做递推关系式F[ i ],F[ 1 ]显然为2,F[ 2 ]也可以任意,显然为4. 接下来F[ 3 ],需要分这个的前两个是否为连续相同的色块,如果是连续相同的色块,那么只能与前一个色块不同.我们把F[i]拓展为F[i][j],i表示到第几个块,j表示第i个的前两个是否为连续两块.那么F[ i ]的种类数分为: (1):前面是两个连续相同,那么F[ i

Codeforces Round #594 (Div. 2) B C - Ivan the Fool and the Probability Theory

题目链接:https://codeforces.com/contest/1248/problem/C 赛后补的,已经有很详细的题解了,这里只作一个记录. 每相邻两行只可能完全相同或者完全不同,而每一行只有1010101010……和01010101010……是没有连续相邻的(有连续相邻的下一行只能完全不同,即有连续相邻的从第一行开始后面的就已经固定了),n=1时答案是递推数列,F[n] = F[n-1] + F[n-2].当第一行为10101010……或0101010101时每一行只有两种状态,此

CCJ PRML Study Note - Chapter 1.2 : Probability Theory

Chapter 1.2 : Probability Theory Chapter 1.2 : Probability Theory Christopher M. Bishop, PRML, Chapter 1 Introdcution Chapter 1.2 : Probability Theory 1. Uncertainty 2. Example discussed through this chapter 3. Basic Terminology 3.1 Probability densi

一起啃PRML - 1.2 Probability Theory

@copyright 转载请注明出处 http://www.cnblogs.com/chxer/ A key concept in the field of pattern recognition is that of uncertainty. 可以看出概率论在模式识别显然是非常重要的一大块. 读其他书的时候在概率这方面就也很纠结过. 我们也还是通过一个例子来理解一下Probability Theory里面一些重要的概念. Imagine we have two boxes, one red a

[PR &amp; ML 3] [Introduction] Probability Theory

虽然学过Machine Learning和Probability今天看着一part的时候还是感觉挺有趣,听惊呆的,尤其是Bayesian Approach.奇怪发中文的笔记就很多人看,英文就没有了,其实我觉得英文的写得更好呀...囧...一边看一边写一边实现,好慢,求同道中人啊...

【PRML读书笔记-Chapter1-Introduction】1.2 Probability Theory

一个例子: 两个盒子: 一个红色:2个苹果,6个橘子; 一个蓝色:3个苹果,1个橘子; 如下图: 现在假设随机选取1个盒子,从中.取一个水果,观察它是属于哪一种水果之后,我们把它从原来的盒子中替换掉.重复多次. 假设我们40%的概率选到红盒子,60%的概率选到蓝盒子.并且当我们把取出的水果拿掉时,选择盒子中任何一个水果还是等可能的. 问题: 1.整个过程中,取得苹果的概率有多大? 2.假设已经去的了一个橘子的情况下,这个橘子来自蓝盒子的可能性有多大? (这里,推荐一篇好文:数学之美番外篇:平凡而

概率论基础知识(Probability Theory)

概率(Probability):事件发生的可能性的数值度量. 组合(Combination):从n项中选取r项的组合数,不考虑排列顺序.组合计数法则:. 排列(Permutation):从n项中选取r项的组合数,考虑排列顺序.排列计数法则:. 贝叶斯定理(Bayes's Theorem):获取新信息后对概率进行修正的一种方法.先验概率--->新信息--->应用贝叶斯定理--->后验概率.具体请见:贝叶斯定理推导(Bayes's Theorem). 离散型概率分布(Discrete Pro

CS281: Advanced Machine Learning 第二节 probability theory 概率论

概率论基本概念 离散变量 概率论中的两个基本法则:加法法则和乘法法则,加法法则定义了随机变量X与条件变量Y之间的直接联系.乘法法则定义了概率学中最重要的条件概率,同时也可以叫做联合概率,因为它描述了事件X和Y同时发生的概率. 通过上面公式可以推到出条件概率公式: 进而可以得到著名的贝叶斯公式,贝叶斯公式广泛的应用于科学界,这也被称为后验概率,因为它在咱们知道了p(Y=y)这个先验概率之后才能计算出来. 如果两个随机变量x,y满足以下公式,那么说明他们是互相独立的: 如果三个随机变量x,y,z满足