题:https://codeforces.com/contest/1027/problem/E

题意:给定n*n的方格,可以染黑白,要求相邻俩行”完全“不同或完全相同,对于列也是一样。然后限制不能拥有k面积具有相同颜色的格子

分析:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int M=1e3+;
const int mod= ;
ll dp[M][M];///前i个存在最多连续j个相同的格子颜色
void init(){
dp[][]=1ll;
dp[][]=1ll;
for(int i=;i<=;i++){
dp[i][i]=dp[i-][i-]*2ll%mod;///因为[i][i]就相当于没限制 ,所以直接每个位置俩个选择
dp[][i]=1ll;
}
for(int i=;i<=;i++){
for(int j=;j<=i;j++){
dp[j][i]=dp[j][j];///不受限制的部分
}
///当前的j位置,可以选择与前一个位置相同,也可以选择与后一个相同
///若选择不相同,那么就在这个位置的贡献加上前一个位置的dp值
///若选择相同,那么就把这个位置和前一个位置看出一整体,然后重复上述动作;
for(int j=i+;j<=;j++)
dp[j][i]=(2ll*dp[j-][i]%mod-dp[j-i-][i]+mod)%mod; }
}
int main(){
init();
int n,k;
cin>>n>>k;
ll ans=;
for(int i=;i<=n;i++){
ll temp=dp[n][i]-dp[n][i-];
temp=temp*(dp[n][min((k-)/i,n)])%mod;
ans=(ans+temp)%mod;
}
ans*=;
cout<<ans%mod<<endl;
return ;
}

题:https://codeforces.com/contest/1248/problem/C

题意:黑白染色,限制:每个单元格最多具有一个相同颜色的相邻单元格

分析:确定了一行一列就可定下整个图

   考虑dp[i][0]为第i个填白色的方案数 所以易得:dp[i][0]=dp[i-2][0]+dp[i-1][1]

   考虑dp[i][1]为第i个填黑色的方案数 所以易得:dp[i][1]=dp[i-2][1]+dp[i-1][0]

   直接合并:dp[i]=dp[i-1]+dp[i-2];

#include <bits/stdc++.h>
#define fo(i,a,b) for(int i=a;i<=b;++i)
#define fod(i,a,b) for(int i=a;i>=b;--i)
using namespace std;
typedef long long ll;
const int M=1e5+;
const int mod=1e9+;
ll f[M];
int main(){
int n,m;
scanf("%d%d",&n,&m);
f[]=;
f[]=;
fo(i,,max(n,m))
f[i]=(f[i-]+f[i-])%mod;
printf("%I64d",((f[n]+f[m])%mod-+mod)%mod);///又因为当行和列拼在一起时会导致格子(1,1),(1,2),(2,1) 三个格子同色,所以我们的答案是f(N)+f(M)−2。 return ;
}

   

染色dp(确定一行就可行)的更多相关文章

  1. Educational Codeforces Round 62 (Rated for Div. 2)E(染色DP,构造,思维,组合数学)

    #include<bits/stdc++.h>using namespace std;const long long mod=998244353;long long f[200007][2 ...

  2. 【xsy1172】 染色 dp

    题目大意:现有$n$条排成一行的木板,每个木板有一个目标颜色.你每次能将一个区间内的木板分别染成它们的目标颜色,而这次染色的代价为这个区间内不同目标颜色的木板的数量的平方.问将全部木板染成目标颜色的最 ...

  3. BZOJ:2958 序列染色 DP

    bzoj2958 序列染色 题目传送门 Description 给出一个长度为N由B.W.X三种字符组成的字符串S,你需要把每一个X染成B或W中的一个. 对于给出的K,问有多少种染色方式使得存在整数a ...

  4. 【POJ 1112】Team Them Up!(二分图染色+DP)

    Description Your task is to divide a number of persons into two teams, in such a way, that: everyone ...

  5. poj-1112 (二分图染色+dp分组)

    #include <iostream> #include <algorithm> #include <cstring> using namespace std; ; ...

  6. 5.29 省选模拟赛 树的染色 dp 最优性优化

    LINK:树的染色 考场上以为这道题要爆蛋了 没想到 推出正解来了. 反正是先写了爆搜的 爆搜最近越写越熟练了 容易想到dp 容易设出状态 f[i][j]表示以i为根的子树内白色的值为j此时黑色的值怎 ...

  7. bzoj2958: 序列染色(DP)

    2958: 序列染色 题目:传送门 题解: 大难题啊(还是我太菜了) %一发大佬QTT 代码: #include<cstdio> #include<cstring> #incl ...

  8. DP学习记录Ⅰ

    DP学习记录Ⅱ 前言 状态定义,转移方程,边界处理,这三部分想好了,就问题不大了.重点在状态定义,转移方程是基于状态定义的,边界处理是方便转移方程的开始的.因此最好先在纸上写出自己状态的意义,越详细越 ...

  9. 【原创】【状态压缩DP】POJ3254 Corn Fields【新手向】

    一开始根本不会状压dp,上网各种找题解,但发现他们写的都很......反正我作为一个没有接触过状态压缩的,根本看不懂! 然后看了好多状态压缩的题的题解,总结了一下思路,思路很重要,有了思路转换成计算机 ...

随机推荐

  1. 移动端主页内容 part4 axios

    ajax  可以动态获取数据内容 vue中发送ajax有很多工具可用 浏览器自带的fetch 现在推荐: axios第三方模块(vue中发送ajax) 特点: 跨平台的数据请求 浏览器中xhr请求 n ...

  2. Centos6.5 安装zabbix3(收藏,非原创)

    1.安装PHP Zabbix 3.0对PHP的要求最低为5.4,而CentOS6默认为5.3.3,完全不满足要求,故需要利用第三方源,将PHP升级到5.4以上,注意,不支持PHP7 rpm -ivh  ...

  3. 干货 | 运维福音——Terraform自动化管理京东云

    干货 | 运维福音--Terraform自动化管理京东云 原创: 张宏伟 京东云开发者社区  昨天 Terraform是一个高度可扩展的IT基础架构自动化编排工具,主张基础设施即代码,可通过代码集中管 ...

  4. vue项目开始 首页 part1

    stylus 优点:css之中使用一些变量,方便我们快速编写css 项目中我们使用css开发的辅助工具帮助我们开发网站样式 安装:终端打开我们项目的文件夹 npm install stylus --s ...

  5. svg用例

    圆<circle cx="x" cy="y" r="r" style="stroke:black;fill:none&quo ...

  6. mysql,apache,php的关系

    首先要明白动态网站与静态网站 所谓的动态网页,是指跟静态网页相对的一种网页编程技术.静态网页,随着html代码的生成,页面的内容和显示效果就基本上不会发生变化了——除非你修改页面代码.而动态网页则不然 ...

  7. share团队冲刺8

    团队冲刺第八天 昨天:完善代码,解决其中的问题 今天:将除登陆界面之外的界面进行修改和完善,使其美观 问题:bindview不会用,使用时出现问题

  8. html5中如何去掉input type date默认样式

    html5中如何去掉input type date默认样式 1.时间选择的种类: HTML代码: 选择日期:<input type="date" value="20 ...

  9. SALESGROSSSALES_成本_利润

    //获取成本GETCOST_TMP:NoConcatenateLOAD T_SAL_OUTSTOCK.LE_ID, [T_SAL_OUTSTOCK.LCY CODE], T_SAL_OUTSTOCK. ...

  10. win10开发环境下安装mongodb

    MongoDB 下载 https://www.mongodb.com/download-center/community 在win10系统安装mongodb需要vc++运行库,如果没有则会提示“无法启 ...