传送门:http://codeforces.com/gym/100015/attachments

已知一个2*n的网格,按要求染色,第一个可以随便染,之后的必须和已经染色的相邻,斜着也算相邻,求染色方案数%1000000007

还是dp

f[i][j]表示i行j个,显然i<=j<=2*i

然后f[i][j]从两个状态转移,一个是另开一行,有四个位置可以染色 f[i][j]+=f[i-1][j-1]*4

或者在i行中继续染色,有2*i-j+1个位置 f[i][j]+=f[i][j-1]*(2*i-j+1)

初始条件是f[1][1]=2,f[1][2]=2

代码如下:

#include<cstdio>
#include<cstring>#define MOD 1000000007using namespace std;int n;long long f[1005][2005];int main()
{while (1){scanf("%d",&n);if (!n){break;}memset(f,0,sizeof(f));f[1][1]=2;f[1][2]=2;for (int i=2;i<=n;i++){for (int j=i;j<=2*i;j++){f[i][j]+=f[i][j-1]*(2*i-j+1);f[i][j]+=f[i-1][j-1]*4;f[i][j]%=MOD;}}printf("%I64d\n",f[n][2*n]%MOD);}return 0;
}

Gym 100015B Ball Painting相关推荐

  1. Stanford Local Programming Contest 2011

    这几天把SLPC2011的题目做一下 这里是题目连接:SLPC2011 A.Another Rock-Paper-Scissors Problem 题目大意:给出Sonny在每一局出石头剪刀布的规则( ...

  2. SGU 183. Painting the balls( dp )

    dp..dp(i, j)表示画两个点为i-j, i的最优答案. dp(i, j) = min{ dp(i-j, k) } + cost[i] (1≤k≤M-j) 令f(i, j) = min{dp(i ...

  3. 2019.11.2图论专题(AtCoder Splatter Painting、President and Roads、Shortest Cycle、ISlands II)

    D:AtCoder Grand Contest 012 Splatter Painting 题目描述 Squid喜欢在图中为一些顶点染色(毕竟是鱿鱼 ) 现在有一张由 N 个顶点和 M 条边组成的简单 ...

  4. Codeforces gym 100685 C. Cinderella 水题

    C. Cinderella Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/100685/problem/ ...

  5. Codeforces Gym 100114 H. Milestones 离线树状数组

    H. Milestones Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/100114 Descripti ...

  6. [bzoj1582][Usaco2009 Hol]Holiday Painting 节日画画_线段树

    Holiday Painting 节日画画 bzoj-1582 Usaco-2009 Hol 题目大意:给定两个n*m的01网格图.q次操作,每次将第二个网格图的子矩阵全部变成0或1,问每一次操作后两 ...

  7. 强化学习(三) - Gym库介绍和使用,Markov决策程序实例,动态规划决策实例

    强化学习(三) - Gym库介绍和使用,Markov决策程序实例,动态规划决策实例 1. 引言 在这个部分补充之前马尔科夫决策和动态规划部分的代码.在以后的内容我会把相关代码都附到相关内容的后面.本部 ...

  8. 概念艺术绘画学习教程 Schoolism – Foolproof Concept Painting with Airi Pan

    Schoolism--万无一失的概念绘画潘 大小解压后:3.19G 含课程素材文件 1920X1080 .mp4 语言:英语+中英文字幕(根据原英文字幕机译更准确) 信息: 万无一失的概念绘画潘 本课 ...

  9. Gym - 102082G

    Gym - 102082G https://vjudge.net/problem/2198225/origin 对于数列中任意一个数,要么从最左边到它不递减,要么从最右边到到它不递减,为了满足这个条件 ...

  10. CUDA Samples: green ball

    以下CUDA sample是分别用C++和CUDA实现的生成的绿色的球图像,并对其中使用到的CUDA函数进行了解说,code参考了<GPU高性能编程CUDA实战>一书的第五章,各个文件内容 ...

最新文章

  1. 干货满满:详解四组遍历数组
  2. 宝塔部署项目报Warning: require(): open_basedir restriction in effect的解决方案
  3. js原型prototype属性用法实例
  4. 【音频处理】Melodyne 自动修正功能 ( 修正音高中心 | 修正音高补偿 | 节拍自动修正 | 量化时间 )
  5. 百练1724:ROADS
  6. 【Android 修炼手册】常用技术篇 -- Android 插件化解析
  7. 考拉RPC(koalas-rpc v1.0)源码
  8. 鸿蒙OS加持!华为MatePad2系列将搭载骁龙888/麒麟9000芯
  9. 算法——K均值聚类算法(Java实现)
  10. 关于SQLServer2005的学习笔记——异常捕获及处理
  11. Web前端-课程设计-网易严选
  12. FreeCAD源码分析:Assembly3模块
  13. 支持向量机原理与高斯核函数
  14. Oleg Shilo:基于CS-Script的Notepad++的插件_.Net技术
  15. 堆晶结构_堆晶岩形成条件
  16. 项目一:家庭记账软件
  17. mysql取出时间最近的一条字段_Mysql 根据时间取出每组数据中最新的一条
  18. SuperMap 地图裁剪
  19. web页面之响应式布局
  20. Oracle as 10g安裝問題

热门文章

  1. The kernel appears to have died. It will restart automatically.
  2. 配置authorized_keys让服务器A免密登录服务器B
  3. vscode+authorized_keys登录不上的原因
  4. Java IO中涉及到的哪些类以及哪些设计模式
  5. 关于XDR的这些问题你都了解吗?
  6. linux命令获取reboot信息,linux的reboot命令
  7. [附源码]Python计算机毕业设计大学生学科竞赛管理系统
  8. Swift GYB 简易教程
  9. python 爬虫+写入excel 小案例
  10. Android开发-窗口跳转