AT2567 RGB Sequence dp
正解:计数dp
解题报告:
umm其实我jio得dp的题目的话就难在思想昂,,,知道状态知道转移就不难辣QAQ
所以就不说别的了直接写下思路放下代码就over辣QAQ
最基础的思想就是f[i][j][k][p]:dp到第i个点了,第一种颜色最后一次出现在j第二种在k第三种在p的方案数
然后考虑显然到i一定会等于jkp中的一个鸭,所以就可以降一维,i=max{j,k,p}
然后就欧克辣?
#include<bits/stdc++.h>
using namespace std;
#define il inline
#define fr first
#define sc second
#define ll long long
#define rg register
#define gc getchar()
#define mp make_pair
#define rp(i,x,y) for(rg int i=x;i<=y;++i)
#define my(i,x,y) for(rg int i=x;i>=y;--i) const int N=+;const ll mod=1e9+;
ll f[N][N][N],as;
int n,m;
vector< pair<int,int> >lim[N]; il int read()
{
rg char ch=gc;rg int x=;rg bool y=;
while(ch!='-' && (ch>'' || ch<''))ch=gc;
if(ch=='-')ch=gc,y=;
while(ch>='' && ch<='')x=(x<<)+(x<<)+(ch^''),ch=gc;
return y?x:-x;
} int main()
{
// freopen("rs.in","r",stdin);freopen("rs.out","w",stdout);
n=read();m=read();
rp(i,,m){int l=read(),r=read(),x=read();lim[r].push_back(mp(l,x));}
f[][][]=;
rp(i,,n)
{
int sz=lim[i].size();
rp(j,,sz-)
{
int l=lim[i][j].fr,x=lim[i][j].sc;
rp(k,,i-)
{
rp(p,,max(,k-))
{ if(x== && l<=k)f[i][k][p]=;
if(x== && (k<l || l<=p))f[i][k][p]=;
if(x== &&p<l)f[i][k][p]=;
}
}
}
if(i==n)continue;
rp(j,,i-)
{
rp(k,,max(,j-))
{
if(!f[i][j][k])continue;
f[i+][j][k]=(f[i+][j][k]+f[i][j][k])%mod;
f[i+][i][k]=(f[i+][i][k]+f[i][j][k])%mod;
f[i+][i][j]=(f[i+][i][j]+f[i][j][k])%mod;
}
}
}
rp(j,,n-)rp(k,,max(,j-))as=(as+f[n][j][k])%mod;
printf("%lld\n",(ll)as*%mod);
return ;
}
然后我居然因为把l达成1马油看见而调了0.5h,,,:D
AT2567 RGB Sequence dp的更多相关文章
- ARC074 E RGB Sequence DP
---题面--- 题解: 首先,有一个不太直观的状态,f[i][j][k][l]表示DP到i位,三种颜色最后出现的位置分别是j, k, l的方案数.因为知道了三种颜色最后出现的位置,因此也可以得知以当 ...
- 【arc074e】RGB Sequence dp
Description 丰泽爷今天也在愉快地玩Minecraft! 现在丰泽爷有一块1∗N1∗N的空地,每个格子按照顺序标记为11到NN.丰泽爷想要在这块空地上铺上红石块.绿宝石块和钻石块作为 ...
- 【arc074e】RGB Sequence(动态规划)
[arc074e]RGB Sequence(动态规划) 题面 atcoder 洛谷 翻译见洛谷 题解 直接考虑暴力\(dp\),设\(f[i][j][k][l]\)表示当前考虑到第\(i\)位,最后一 ...
- [Arc074E] RGB Sequence
[Arc074E] RGB Sequence Description 今天也在愉快地玩Minecraft!现在MM有一块1?N的空地,每个格子按照顺序标记为1到N.MM想要在这块空地上铺上红石块.绿宝 ...
- AT2567-[ARC074C]RGB Sequence【dp】
正题 题目链接:https://www.luogu.com.cn/problem/AT2567 题目大意 长度为\(n\)的包含三种颜色\(RGB\)的序列,\(m\)个限制\([l,r,k]\)表示 ...
- [AT2567] [arc074_c] RGB Sequence
题目链接 AtCoder:https://arc074.contest.atcoder.jp/tasks/arc074_c 洛谷:https://www.luogu.org/problemnew/sh ...
- Atcoder E - RGB Sequence(dp)
题目链接:http://arc074.contest.atcoder.jp/tasks/arc074_c 题意:一共有3种颜色,红色,绿色,蓝色.给出m个要求l,r,x表示在区间[l,r]内要有x种不 ...
- [poj3017] Cut the Sequence (DP + 单调队列优化 + 平衡树优化)
DP + 单调队列优化 + 平衡树 好题 Description Given an integer sequence { an } of length N, you are to cut the se ...
- Codeforces Round #277 (Div. 2) E. LIS of Sequence DP
E. LIS of Sequence Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/486/pr ...
随机推荐
- headfirst python 05, 06
处理数据 with open('james.txt') as jaf: data = jaf.readLine() james = data.strip().split(',') #先去掉空格而否有, ...
- Async Performance: Understanding the Costs of Async and Await
Stephen Toub Download the Code Sample Asynchronous programming has long been the realm of only the m ...
- HTML5超酷秒表动画 可暂停和重置秒表
关于HTML5和CSS3的时钟应用在之前我们已经分享过不少了,还有一些HTML5的日期选择应用.今天我们要分享一款基于HTML5和CSS3的圆盘秒表动画,秒表可以精确到0.001秒,并且可以在计时过程 ...
- 3. CMake 系列 - 分模块编译&安装项目
目录 1. 项目目录结构 2. 相关代码 2.1 add 模块 2.2 sub 模块 2.3 测试模块 2.4 顶层 CMakeLists.txt 3. 编译 & 安装 4. 项目安装基本语法 ...
- iOS 判断两个日期之间的间隔
本文转载至 http://www.cnblogs.com/Ewenblog/p/3891791.html 两个时间段,判断之间的相差,做一些时间范围限制使用 NSDateFormatter * d ...
- Python实现Linux命令xxd -i功能
目录 Python实现Linux命令xxd -i功能 声明 一. Linux xxd -i功能 二. xxd -i常见用途 三. 类xxd -i功能的Python实现 Python实现Linux命令x ...
- web初级开发的那些坑
1.在使用js原生的XMLHttpRequest加载.xml文件时,老是不对,按照书上的写的没错,后来才发现是我的web.xml文件中阻止了.xml文件的加载. 2.有关于string解析成json数 ...
- mysql 登录远程数据库
mysql -h${hostIP} -P${hostPort} -u${userName} -p${passwd}
- shell参数扩展
http://zuyunfei.com/2016/03/23/Shell-Truncate-File-Extension/
- CCPC-Wannafly Winter Camp Day4 G---置置置换【递推】【组合数】【逆元】
置置置换 已经提交 已经通过 63.89% Total Submission:72 Total Accepted:46 题目描述 wlswlswls有一个整数nnn,他想请你算一下有多少1...n1. ...