AtCoder Regular Contest 074 E:RGB Sequence
题目传送门:https://arc074.contest.atcoder.jp/tasks/arc074_c
题目翻译
给你一行\(n\)个格子,你需要给每个格子填红绿蓝三色之一,并且同时满足\(m\)个约束。每个约束由\(l,r,x\)来形容,表示\(l\)到\(r\)之间的所有格子颜色种数必须为\(x\),求方案数。\(n,m\leqslant 300\)
题解
设\(f[i][j][k]\)表示当前已经涂到了\(x=max\){\(i,j,k\)},最后一个红色格子在\(i\),最后一个绿色格子在\(j\),最后一个蓝色格子在\(k\)并且凡是\(r\)小于等于当前格子的约束都满足的方案数。直接转移到\(f[x+1][j][k],f[i][x+1][k],f[i][j][x+1]\)即可。因为三种颜色没有本质区别,所以我们印点\(i>j>k\)。
时间复杂度:\(O(n^3+n^2*m)\)
空间复杂度:\(O(n^3)\)
代码如下:
#include <cstdio>
#include <vector>
#include <algorithm>
using namespace std;
typedef pair<int,int>pii;
const int pps=1e9+7;
int n,m,ans;
vector<pii>q[305];
int f[305][305][305];
vector<pii>::iterator it;
int read() {
int x=0,f=1;char ch=getchar();
for(;ch<'0'||ch>'9';ch=getchar())if(ch=='-')f=-1;
for(;ch>='0'&&ch<='9';ch=getchar())x=x*10+ch-'0';
return x*f;
}
int main() {
n=read(),m=read();
for(int i=1;i<=m;i++) {
int l=read(),r=read(),x=read();
q[r].push_back(make_pair(l,x));
}f[0][0][0]=1;
for(int i=1;i<=n;i++) {
for(int j=0;j<i;j++)
for(int k=0;k<=j;k++) {//<=是因为j,k可以全部等于0
f[i][j][k]=(f[i][j][k]+f[i-1][j][k])%pps;
f[i][i-1][k]=(f[i][i-1][k]+f[i-1][j][k])%pps;
f[i][i-1][j]=(f[i][i-1][j]+f[i-1][j][k])%pps;
for(it=q[i].begin();it!=q[i].end();it++) {
int tmp=(j>=(*it).first)+(k>=(*it).first)+1;
if(tmp!=(*it).second)f[i][j][k]=0;
}
}
}
for(int i=0;i<n;i++)
for(int j=0;j<=i;j++)
ans=(ans+f[n][i][j])%pps;
printf("%d\n",ans);
return 0;
}
AtCoder Regular Contest 074 E:RGB Sequence的更多相关文章
- AtCoder Regular Contest 080 E:Young Maids
题目传送门:https://arc080.contest.atcoder.jp/tasks/arc080_c 题目翻译 给你一个\(n\)的排列\(p\),一个空序列\(q\),你每次可以从\(p\) ...
- AtCoder Regular Contest 072 E:Alice in linear land
题目传送门:https://arc072.contest.atcoder.jp/tasks/arc072_c 题目翻译 给你一个数组\(D\),然后给你一个操作序列\(d\),每次操作可以将\(D\) ...
- AtCoder Regular Contest 073 E:Ball Coloring
题目传送门:https://arc073.contest.atcoder.jp/tasks/arc073_c 题目翻译 给你\(N\)个袋子,每个袋子里有俩白球,白球上写了数字.对于每一个袋子,你需要 ...
- AtCoder Regular Contest 063 E:Integers on a Tree
题目传送门:https://arc063.contest.atcoder.jp/tasks/arc063_c 题目翻译 给你一个树,上面有\(k\)个点有权值,问你是否能把剩下的\(n-k\)个点全部 ...
- AtCoder Regular Contest 074 F - Lotus Leaves
题目传送门:https://arc074.contest.atcoder.jp/tasks/arc074_d 题目大意: 给定一个\(H×W\)的网格图,o是可以踩踏的点,.是不可踩踏的点. 现有一人 ...
- AtCoder Regular Contest 093 E: Bichrome Spanning Tree(生成树)
Bichrome Spanning Tree 题意: 给出一个n个点,m条边的无向连通图,现在要给每条边染色,可以染成黑色或者白色. 现在要求在染色完毕后,找出一个至少包含一条黑边和一条白边的最小生成 ...
- AtCoder Regular Contest 074 瞎打记
(很长时间没更新了>_<) 由于机房的网总是奥妙重重,开考30多分钟之后我才登进去... 然后发现T1是个简单枚举,1A.T2是个简单优先队列,1A.T3似乎需要一点推导,先看了T4发现是 ...
- 【arc077f】AtCoder Regular Contest 074 F - Lotus Leaves
题意 给定一个n*m的池塘,每个格子上可能有叶子. 从一个叶子出发,可以跳到相同行或相同列的叶子. 问至少去掉多少叶子,使得起点不能到达终点. \(n,m<=100\) 解法 很显然的最小割模型 ...
- AtCoder Regular Contest 061
AtCoder Regular Contest 061 C.Many Formulas 题意 给长度不超过\(10\)且由\(0\)到\(9\)数字组成的串S. 可以在两数字间放\(+\)号. 求所有 ...
随机推荐
- EventListener中的handleEvent
在研究代码时发现类似这样一段代码: function TEST() {} TEST.prototype = { init:function() { window.addEventListener('m ...
- FileOutPutStream 的写操作
package xinhuiji_day07; import java.io.File;import java.io.FileNotFoundException;import java.io.File ...
- HDFS源码分析DataXceiver之整体流程
在<HDFS源码分析之DataXceiverServer>一文中,我们了解到在DataNode中,有一个后台工作的线程DataXceiverServer.它被用于接收来自客户端或其他数据节 ...
- 【SQLServer2008】之改变主键当为null时也不会报错,可以入数据库。
在SqlServer红框中设置主键,右键会有添加主键选项,并且设置不能为null. 当我们插入主键数据如果为null时,会插不进去,这时候我们需要修改一下,如下图: “标识规范”中选择“是”,就可以了 ...
- android的Environment类 Android存储访问及目录
http://www.cnblogs.com/mengdd/p/3742623.html http://blog.csdn.net/barnett_zhubo/article/details/6832 ...
- Unity3D研究院之拓展Scene视图
Scene视图是编辑游戏模型的地方,其实它还可以进行编辑.如下图所示,我给Scene视图做了简单的编辑. Scene视图的拓展是基于对象的,意思就是你必须在Hierarchy视图中选择一个对象才行.H ...
- 【BZOJ3771】Triple 生成函数+FFT
[BZOJ3771]Triple Description 我们讲一个悲伤的故事. 从前有一个贫穷的樵夫在河边砍柴. 这时候河里出现了一个水神,夺过了他的斧头,说: “这把斧头,是不是你的?” 樵夫一看 ...
- 单例模式(Mongo对象的创建)
单例模式: 饿汉式单例 //饿汉式单例类.在类初始化时,已经自行实例化 public class Singleton1 { //私有的默认构造子 private Singleton1() {} //已 ...
- Hibernate的配置文件 Hibernate.cfg.xml与xxx.hbm.xml
1.hibernate.cfg.xml配置如下: (数据库连接配置) <?xml version="1.0" encoding="UTF-8"?>& ...
- The connection between feature spaces and smoothness is not obvious, and is one of the things we’ll discuss in the course.
http://www.gatsby.ucl.ac.uk/~gretton/coursefiles/lecture4_introToRKHS.pdf