题目传送门: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的更多相关文章

  1. AtCoder Regular Contest 080 E:Young Maids

    题目传送门:https://arc080.contest.atcoder.jp/tasks/arc080_c 题目翻译 给你一个\(n\)的排列\(p\),一个空序列\(q\),你每次可以从\(p\) ...

  2. AtCoder Regular Contest 072 E:Alice in linear land

    题目传送门:https://arc072.contest.atcoder.jp/tasks/arc072_c 题目翻译 给你一个数组\(D\),然后给你一个操作序列\(d\),每次操作可以将\(D\) ...

  3. AtCoder Regular Contest 073 E:Ball Coloring

    题目传送门:https://arc073.contest.atcoder.jp/tasks/arc073_c 题目翻译 给你\(N\)个袋子,每个袋子里有俩白球,白球上写了数字.对于每一个袋子,你需要 ...

  4. AtCoder Regular Contest 063 E:Integers on a Tree

    题目传送门:https://arc063.contest.atcoder.jp/tasks/arc063_c 题目翻译 给你一个树,上面有\(k\)个点有权值,问你是否能把剩下的\(n-k\)个点全部 ...

  5. AtCoder Regular Contest 074 F - Lotus Leaves

    题目传送门:https://arc074.contest.atcoder.jp/tasks/arc074_d 题目大意: 给定一个\(H×W\)的网格图,o是可以踩踏的点,.是不可踩踏的点. 现有一人 ...

  6. AtCoder Regular Contest 093 E: Bichrome Spanning Tree(生成树)

    Bichrome Spanning Tree 题意: 给出一个n个点,m条边的无向连通图,现在要给每条边染色,可以染成黑色或者白色. 现在要求在染色完毕后,找出一个至少包含一条黑边和一条白边的最小生成 ...

  7. AtCoder Regular Contest 074 瞎打记

    (很长时间没更新了>_<) 由于机房的网总是奥妙重重,开考30多分钟之后我才登进去... 然后发现T1是个简单枚举,1A.T2是个简单优先队列,1A.T3似乎需要一点推导,先看了T4发现是 ...

  8. 【arc077f】AtCoder Regular Contest 074 F - Lotus Leaves

    题意 给定一个n*m的池塘,每个格子上可能有叶子. 从一个叶子出发,可以跳到相同行或相同列的叶子. 问至少去掉多少叶子,使得起点不能到达终点. \(n,m<=100\) 解法 很显然的最小割模型 ...

  9. AtCoder Regular Contest 061

    AtCoder Regular Contest 061 C.Many Formulas 题意 给长度不超过\(10\)且由\(0\)到\(9\)数字组成的串S. 可以在两数字间放\(+\)号. 求所有 ...

随机推荐

  1. 基于UML的需求分析和系统设计个人体会

    阅读了http://www.uml.org.cn/oobject/201405123.asp文章之后,对使用UML进行系统的需求分析和设计有了一个基础的理解.在此做一下整理.   1.项目开始阶段 项 ...

  2. jquery单选框radio绑定click事件实现方法

    本文实例讲述了jquery单选框radio绑定click事件实现方法.分享给大家供大家参考. 具体实现方法如下: 复制代码代码如下: <html><head><title ...

  3. 百度富文本编辑器Ueditor上传图片时标签中添加宽高

    ueditor.all.js中:直接搜索callback() function callback(){ try{ var link, json, loader, body = (iframe.cont ...

  4. 未加载Microsoft.SqlServer.management.sdk.sfc version......

    这个问题卡了我好久,于是决定记录下来,我这里缺失的是Microsoft.SqlServer.management.sdk.sfc version 12.0.0,当然你也可能后面是11开头的, 这个是由 ...

  5. 【Selenium+Python Webdriver】报错之:TypeError: user_login() missing 1 required positional argument: 'self'

    先贴一下源码: base.py文件如下: from selenium import webdriver class Page(object): ''' 页面基础类,用于所有页面的继承 ''' rb_u ...

  6. 史上最浅显易懂的Git教程3 分支管理

    假设你准备开发一个新功能,但是需要两周才能完成,第一周你写了50%的代码,如果立刻提交,由于代码还没写完,不完整的代码库会导致别人不能干活了.如果等代码全部写完再一次提交,又存在丢失每天进度的巨大风险 ...

  7. CocoaPods Podfile详解与使用

    1.为什么需要CocoaPods 在进行iOS开发的时候,总免不了使用第三方的开源库,比如SBJson.AFNetworking.Reachability等等.使用这些库的时候通常需要: 下载开源库的 ...

  8. VMware 中安装Centos

    1,在百度软件中心下载VM12 http://rj.baidu.com/soft/detail/13808.html?ald 2,一路NEXT安装,安装完之后需要秘钥激活. VMware Workst ...

  9. iOS上使用自定义ttf字体

    本文转载至 http://blog.csdn.net/allison162004/article/details/38777777 项目中想使用第三方的字体,在stackoverflow上查询解决办法 ...

  10. gridcontrol 之标题 GroupPanel设置 (标题设置,屏蔽右键)

    GroupPanel设置 例如gridcontrol显示标题:“gridcontrol小例子” gridView1.GroupPanelText="gridcontrol小例子"; ...