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 ...
随机推荐
- 学习MongoDB(Troubleshoot Replica Sets) 集群排除故障
Test Connections Between all Members(集群中节点网络测试) 在进行Mongodb集群时,每个节点的网络都需要互动,假设有3个服务器节点. m1.example.ne ...
- AI金融知识自学偏量化方向-目录0
前提: 统计学习(统计分析)和机器学习之间的区别 金融公司采用机器学习技术及招募相关人才 了解不同类型的机器学习 有监督学习 vs 无监督学习 迭代和评估 偏差方差权衡 结合有监督学习和无监督学习(半 ...
- Java如何获取URL连接的日期?
Java编程中,如何获取URL连接的日期? 以下示例演示如何使用HttpURLConnection类的httpCon.getDate()方法获取URL连接的日期. package com.yiibai ...
- Excel文档间的数据替换 ---电脑版APP 自动操作魔法师
http://www.won-soft.com/macro/solution/excel-data-replace.htm 介绍: 在我们的日常工作中, 可能经常需要使用同各种数据表格打交道.比如财务 ...
- Mysql 查看连接数,状态 最大并发数 && 怎么设置才合理
show status like '%max_connections%'; ##mysql最大连接数 set global max_connections=1000 ##重新设置 show varia ...
- ThinkingInJava 学习 之 0000003 控制执行流程
1. if-else 2. 迭代 1. while 2. do-while 3. for 4. 逗号操作符 Java里唯一用到逗号操作符的地方就是for循环的控制表达式. 在控制表达式的初始化和步进控 ...
- android 网络图片双缓存
本文转自:http://blog.csdn.net/a79412906/article/details/10180583 Android每次加载图片很浪费时间.所以设计了一个图片缓存技术来解决每次an ...
- OpenGL——折线图柱状图饼图绘制
折线图绘制代码: #include<iostream> //旧版本 固定管线 #include<Windows.h> #include <GL/glut.h> // ...
- [转]Java中一周前一个月前时间计算方法
Java中一周前一个月前时间计算方法 在java语言中,用如下方法获取系统时间: Date date = new Date(); String year=new SimpleDateFormat(&q ...
- mysql 登录远程数据库
mysql -h${hostIP} -P${hostPort} -u${userName} -p${passwd}