题目描述

彩虹有七种颜色,红橙黄绿青蓝紫。

你现在有一个n∗m的方格板.

要求给方格板涂色,要求任意相邻两个格子的颜色不能相同.

请你计算一下有多少种不同的方案。

输入描述:

输入仅包含两个整数n,m(1≤n≤4,1≤m≤10)。

输出描述:

输出总方案数,由于结果可能很大,故答案需要对1000000007取模。

示例1

输入

2 1

输出

42

题解:7种颜色染格子,要求相邻格子颜色不相同,求染色的方案数。

​ 经典状压dp。

​ 我们令dp(i,j)表示第i行状态为j的染色方案数,其中状态j模拟一个n位7进制数,第k位为0-6分别代表格子(i,k)上的颜色为第1-7种颜色,则有dp转移方程
f[i][j]=∑f[i−1][k] if j和k没有颜色重叠 f[i][j]=∑f[i-1][k] j和k没有颜色重叠 f[i][j]=∑f[i−1][k],if j和k没有颜色重叠​答案即为 ​ 答案即为 ​答案即为∑f[m][i] 0≤i<7^n
​ 但是本题要注意处理一下一行的合法颜色,不然会TLE

#include<bits/stdc++.h>
using namespace std;
//#pragma GCC optimize(2)
//#define rep(i,a,b) for(int i=a;i<=b;i++)
//#define rep2(i,a,b) for(int i=a;i>=b;i--)
///* run this program using the console pauser or add your own getch, system("pause") or input loop */
#define sc(x) scanf("%d",&x)
#define sl(x) scanf("%lld",&x)
#define ll long long
#define pb push_back
typedef pair<int,int>PII;
const int Max=1e6+5;
const ll INF=4e18;
const ll mod=1e9+7;
ll dp[20][6000];
vector<int>v[Max];
bool check(vector<int>a,vector<int>b){for(int i=0;i<a.size();i++){if(a[i]==b[i]) return false;}return true;
}
int main(){int n,m;sc(n);sc(m);int res=1;for(int i=1;i<=n;i++) res*=7;int cnt=0;for(int i=0;i<res;i++){int num=i;vector<int>temp;while(num!=0){temp.pb(num%7);num/=7;}int len=temp.size();for(int j=1;j<=n-len;j++) temp.pb(0);bool flag=true;for(int j=1;j<temp.size();j++){if(temp[j]==temp[j-1]){flag=false;break;}}if(flag) v[++cnt]=temp;}for(int i=1;i<=cnt;++i) dp[1][i]=1 ;for(int i=2;i<=m;i++){for(int j=1;j<=cnt;j++){for(int k=1;k<=cnt;k++){if(check(v[j],v[k])){dp[i][j]+=dp[i-1][k];dp[i][j]%=mod;}}}}ll ans=0;for(int i=1;i<=cnt;i++){ans=(ans+dp[m][i])%mod;}cout<<ans<<endl;
}

牛客 彩虹 【经典状压dp】相关推荐

  1. 牛客 郊区春游 状压+最短路

    题目链接:郊区春游 思路:首先先用floyd求一下各个点之间的最短路,那么接下来就是找出一条最短路将R个点串起来.最简单的就是枚举每一种排列然后求最小值,那么时间复杂度就是15!,也就是1307674 ...

  2. 【2019牛客暑期多校训练营(第五场)- E】independent set 1(最大独立集,状压dp)

    题干: 链接:https://ac.nowcoder.com/acm/contest/885/E 来源:牛客网 Note: For C++ languages, the memory limit is ...

  3. 牛客网 小白月赛4 D-郊区春游 最短路+状压dp

    链接: https://www.nowcoder.com/acm/contest/134/D来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524 ...

  4. 牛客推荐系统开发之选飞行棋子(状压dp)

    链接:登录-专业IT笔试面试备考平台_牛客网 牛客的新开发的推荐系统使得牛客的DAU(日活跃用户数量)上升了一个档次,于是牛客的老板组织了一场团建.在团建时,牛牛.牛妹.王清楚和茶山牛四人想要愉快地玩 ...

  5. 牛客题单_动态规划课程状压dp习题

    牛客题单_动态规划课程状压dp习题 文章目录 牛客题单_动态规划课程状压dp习题 NC14732 锁 NC15034 德玛西亚万岁 NC16418 宝藏 NC17061 多彩的树 NC17890 方格 ...

  6. 【牛客 - 301哈尔滨理工大学软件与微电子学院第八届程序设计竞赛同步赛(高年级)】小乐乐搭积木(状压dp)

    题干: 小乐乐想要给自己搭建一个积木城堡. 积木城堡我们假设为n*m的平面矩形. 小乐乐现在手里有1*2,2*1两种地砖. 小乐乐想知道自己有多少种组合方案. 输入描述: 第一行输入整数n,m.(1& ...

  7. 牛客练习赛$18E\ pocky$游戏 状压$dp$

    正解:状压$dp$ 解题报告: 传送门$QwQ$ 首先注意下题目,这个$a_i$不是个排列,,,我开始想了好久说这不是傻逼题直接做嘛然后一看样例发现我是傻逼$/dk$ 一个套路,看到绝对值问题一般就是 ...

  8. 牛客网Chino with Queue【状压DP】

    Chino的数学很差,因此Cocoa非常担心.今天,Cocoa准备教Chino和排队有关的问题. 我们总是会学各种排列组合的问题,那些题目大多数都是套路.而Cocoa不喜欢套路. 通常来说,每个人在排 ...

  9. 最短Hamilton路径(状压dp)

    链接:https://ac.nowcoder.com/acm/problem/50909 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言5242 ...

  10. 郊区春游(状压dp)

    链接:https://ac.nowcoder.com/acm/contest/134/D 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言5242 ...

最新文章

  1. 【文章】本站收集与转载文章目录
  2. DHCP服务器的搭建
  3. math and date、ajax、画布
  4. VUE项目中 获得多个复选框 checkbox 选中的值(jquery)+ 解决 Uncaught TypeError: Cannot read property ‘push‘ of undefine
  5. 架构师技术文档:Redis+Nginx+Dubbo+Spring+架构师精选视频
  6. sprinboot整合activity
  7. Vue 应用性能优化指南(转)
  8. VisualGDB调试,实现VS环境下调试Android
  9. BZOJ 1911: [Apio2010]特别行动队 [斜率优化DP]
  10. 查看php-fpm进程数_查看php-fpm开启的进程数以及每个进程的内存限制
  11. 微型 ORM-FluentData 实例详解
  12. SQL Server 2012完全备份、差异备份、事务日志备份和还原操作
  13. 学习Java面向对象编程和设计模式最好的5本书
  14. 正则摄动法matlab,孤立特征值情况的矩阵摄动法
  15. Ikbc C87 键盘功能组合键
  16. Mybatis最入门---分页查询(逻辑分页与SQL语句分页)
  17. 以下选项中不是python对文件的写操作方法的是_以下选项中,不是 Python 对文件的读操作方法的是...
  18. 禅卡塔罗:一个真正厉害的塔罗师是什么样的?
  19. 整理了一周的Python资料,包含各阶段所需网站、项目,收藏了慢慢来
  20. 【杂记】一个不错的国外论文没费下载网站

热门文章

  1. 小米手机怎么在图片显示定位服务器,小米浏览器中,图片导致fixed定位的元素无法显示...
  2. RTMP播放器网页互联网直播音视频流媒体播放器EasyPlayer-RTMP-iOS播放H265格式的视频源
  3. stm32单片机的智能交通灯设计
  4. 经典面试题 TCP和UDP有什么区别?
  5. 微信编辑器有哪些呢?
  6. 局域网文件传输工具---LANDrop 使用记录
  7. C4D如何将界面和参数设置快速恢复到默认值?
  8. vue 自己捣鼓周日程日历组件(WSchedule)
  9. python时间格式转换为美式日期_python中有关时间日期格式转换问题
  10. cat3 utp是不是网线_CAT网线知识