正题

题目链接:https://www.luogu.com.cn/problem/AT2567


题目大意

长度为nnn的包含三种颜色RGBRGBRGB的序列,mmm个限制[l,r,k][l,r,k][l,r,k]表示区间l∼rl\sim rl∼r恰好有kkk种颜色。
求方案数

1≤n≤3001\leq n\leq 3001≤n≤300


解题思路

很水的题是吧,设fi,j,kf_{i,j,k}fi,j,k​表示最近三种颜色出现位置依次是i,j,k(i>j>k)i,j,k(i>j>k)i,j,k(i>j>k)(不需要考虑这个三个位置具体的颜色,只需要用这些位置的颜色不同这一信息)

然后每次dpdpdp完到右端点把不合法的判掉就好了。

时间复杂度O(n3+mn2)O(n^3+mn^2)O(n3+mn2)


code

#include<cstdio>
#include<cstring>
#include<algorithm>
#include<queue>
#define mp(x,y) make_pair(x,y)
#define ll long long
using namespace std;
const ll N=310,P=1e9+7;
ll n,m,f[N][N][N],ans;
vector<pair<ll,ll> >q[N];
signed main()
{scanf("%lld%lld",&n,&m);n+=2;for(ll i=1;i<=m;i++){ll l,r,k;scanf("%lld%lld%lld",&l,&r,&k);l+=2;r+=2;q[r].push_back(mp(l,k));} f[2][1][0]=1;for(ll i=3;i<=n;i++){for(ll j=1;j<i;j++)for(ll k=0;k<j;k++){(f[i][i-1][j]+=f[i-1][j][k])%=P;(f[i][i-1][k]+=f[i-1][j][k])%=P;(f[i][j][k]+=f[i-1][j][k])%=P;}for(ll z=0;z<q[i].size();z++){ll l=q[i][z].first,w=q[i][z].second;for(ll j=1;j<i;j++)for(ll k=0;k<j;k++)if(1+(j>=l)+(k>=l)!=w)f[i][j][k]=0;}}for(ll i=1;i<n;i++)for(ll j=0;j<i;j++)(ans+=f[n][i][j])%=P;printf("%lld\n",ans);return 0;
}

AT2567-[ARC074C]RGB Sequence【dp】相关推荐

  1. [ARC074C] RGB Sequence(dp)

    [ARC074C] RGB Sequence Solution 显然是一道dpdpdp,我们发现直接维护当前状态有多少种颜色不好维护,因为颜色只有333种,所以可以直接记录每一种颜色最晚在哪里出现,令 ...

  2. 【DP】【期望】$P1850$换教室

    [DP][期望]\(P1850\)换教室 链接 题目描述 有 \(2n\) 节课程安排在$ n$ 个时间段上.在第 \(i\)(\(1 \leq i \leq n\))个时间段上,两节内容相同的课程同 ...

  3. Bailian2760 数字三角形【DP】

    2760:数字三角形 描述 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 (图1) 图1给出了一个数字三角形.从三角形的顶部到底部有很多条不同的路径.对于每条路径,把路径上面的数加起来可 ...

  4. NUC1131 Triangle【DP】

    Triangle 时间限制: 1000ms 内存限制: 65536KB 通过次数: 1总提交次数: 1 问题描述 图1表示一个数字三角形. 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 ...

  5. LeetCode:完全平方数【279】【DP】

    LeetCode:完全平方数[279][DP] 题目描述 给定正整数 n,找到若干个完全平方数(比如 1, 4, 9, 16, ...)使得它们的和等于 n.你需要让组成和的完全平方数的个数最少. 示 ...

  6. 【DP】序列 题解

    [DP]序列 题解 序列 题目 一个长度为kkk的整数序列bbb 1,bbb 2,-,bkbkbk(1≤bbb 1≤bbb 2≤-≤bkbkbk≤NNN)称为"好序列"当且仅当后一 ...

  7. Codeforces 1000D Yet Another Problem On a Subsequence 【dp】【组合数学】

    难点在于怎么想dp,我一开始想dp[i][j]代表前i个数挑j个能组成多少个good sebsequence,最后把dp[n][ 2到n ]加起来就行,但想不出来转移方程怎么做.后来想到我这么想是不对 ...

  8. poj 2411 Mondriaan#39;s Dream 【dp】

    题目:poj 2411 Mondriaan's Dream 题意:给出一个n*m的矩阵,让你用1*2的矩阵铺满,然后问你最多由多少种不同的方案. 分析:这是一个比較经典的题目.网上各种牛B写法一大堆. ...

  9. BestCoder冠军赛 - 1005 Game 【DP】

    [题意] 给出一个set,set中有几个数. 现在给出n个人,环成一圈搞约瑟夫... 开始时从第1号报数,每次从set中随机选出一个数s,等报数到s后,报s的人出圈,其他人继续报数. 最后只剩1人时, ...

最新文章

  1. 史上最全的git 常用命令集合
  2. postgresql 备份恢复(一)
  3. .bat文件该图标_电脑桌面图标变成白色方块图标怎么办?
  4. 阿里忘禅:蚂蚁集团分布式注册中心建设分享
  5. (一)开始使用混合边缘AI进行面部识别
  6. PyTorch(总)---PyTorch遇到令人迷人的BUG与记录
  7. Azure Linux VM密钥登录
  8. 5分钟学会制作自动化脚本——自动化脚本辅助开发IDE——Selenium IDE介绍(测试工程师必备)
  9. Springboot整合kafka
  10. 李春华:B2C商城做SEO的九个常见目标定位
  11. 做擦边网站 服务器放在狗爹,在GoDaddy搭建Prosper202服务器
  12. CCS 3.3 创建DSP TMSC6726B工程
  13. Linux+宝塔安装swoole教程
  14. AI System 人工智能系统 TVM深度学习编译器 DSL IR优化 计算图 编译 优化 内存内核调度优化 DAG 图优化 DFS TaiChi 函数注册机 Registry
  15. 【HTML】常见的块元素,行内元素,行内块元素有哪些?
  16. [项目管理]敏捷宣言
  17. 辩证法中包括一个关系、两大特征、三大规律、四种方法、五对范畴
  18. macos iTerm2 优化
  19. 自制批量SVG矢量图转普通图片格式小工具
  20. 《21天学通Java(第7版)》—— 第2章 Java编程基础 2.1 语句和表达式

热门文章

  1. 计算机视觉招聘_INDEMIND|SLAM、计算机视觉、深度学习算法招聘(社招实习)
  2. spring 单例 获取多例的位_Spring系列第6篇:玩转bean scope,避免跳坑里!
  3. $.ajax datatype默认是什么类型,理解jquery ajax中的datatype属性选项值
  4. 信管专业c语言考什么,计算机信息管理专业卫生事业单位招聘考试笔试模拟题(十)...
  5. vuex保存用户信息_Vuex状态管理
  6. c语言实现灰度图像阈值分割,灰度图像--图像分割 阈值处理之平均阈值
  7. [MyBatisPlus]代码生成器
  8. [mybatis]Mapper XML Files_CUD
  9. [剑指offer]面试题19:二叉树的镜像
  10. 《C++ Primer》14.1节练习