题目

传送门

解法

用\(f_{i, j, k}\)表示有\(i\)个红石块, \(j\)个绿宝石块, \(k\)个钻石块

可以转移到\(f_{p+1, j, k}\)、 \(f_{i, p+1,k }\)、\(f_{i, j, p+1}\), \(p\)为\(max(i, j, k)\)

代码

#pragma GCC optimize(3)
#include <iostream>
#include <cstdlib>
#include <cstring>
#include <cstdio>
#include <algorithm> using namespace std; const int mod = 1000000007; const int N = 310; const int M = 310; struct node
{ int a, b;
node() { }
node(int _1, int _2) : a(_1), b(_2) { }
} list[M]; int head[N], nxt[M], tot; inline void init()
{ memset(head, -1, sizeof(head));
tot = 0;
} inline void link(int x, int y, int z)
{ list[tot] = node(y, z);
nxt[tot] = head[x];
head[x] = tot++;
} inline int max(int x, int y) { return x > y ? x : y; } inline int Plus(int a, int b) { return a + b >= mod ? a + b - mod : a + b; } int n, m; inline bool check(int a, int b, int c)
{ int num = max(a, max(b, c));
for (register int i = head[num]; ~i; i = nxt[i])
{ int l = list[i].a;
int cnt = (l <= a) + (l <= b) + (l <= c);
if (cnt != list[i].b) return 0;
}
return 1;
} int f[N][N][N]; int Dp()
{ f[0][0][0] = 1;
int Ans = 0;
register int i, j, k;
for (i = 0; i <= n; i++)
{ for (j = 0; j <= n; j++)
{ for (k = 0; k <= n; k++)
{ if (!f[i][j][k]) continue;
if (!check(i, j, k)) { f[i][j][k] = 0; continue; }
int p = max(i, max(j, k));
// if (p == n) { Ans = Plus(Ans, f[i][j][k]); continue; }
f[p+1][j][k] = Plus(f[p+1][j][k], f[i][j][k]);
f[i][p+1][k] = Plus(f[i][p+1][k], f[i][j][k]);
f[i][j][p+1] = Plus(f[i][j][p+1], f[i][j][k]);
}
}
}
for (int i = 0; i <= n; i++)
for (int j = 0; j <= n; j++)
{ Ans = Plus(Ans, f[i][j][n]);
Ans = Plus(Ans, f[i][n][j]);
Ans = Plus(Ans, f[n][i][j]);
}
return Ans;
} int main()
{ scanf("%d %d", &n, &m);
init();
for (int i = 1; i <= m; i++)
{ int l, r, x;
scanf("%d %d %d", &l, &r, &x);
if (r-l+1 < x) return 0 & puts("0");
link(r, l, x);
}
printf("%d\n", Dp());
return 0;
}

【XSY3209】RGB Sequence的更多相关文章

  1. 【arc074e】RGB Sequence(动态规划)

    [arc074e]RGB Sequence(动态规划) 题面 atcoder 洛谷 翻译见洛谷 题解 直接考虑暴力\(dp\),设\(f[i][j][k][l]\)表示当前考虑到第\(i\)位,最后一 ...

  2. 【ARC074e】RGB sequence

    Description ​ 一排\(n\)个格子,每个格子可以涂三种颜色的一种.现在给出\(m\)个形如"\([l,r]\)中必须恰好有\(x\)种颜色"的限制(\(1 \le l ...

  3. 【arc074e】RGB Sequence dp

    Description ​ 丰泽爷今天也在愉快地玩Minecraft! ​ 现在丰泽爷有一块1∗N1∗N的空地,每个格子按照顺序标记为11到NN.丰泽爷想要在这块空地上铺上红石块.绿宝石块和钻石块作为 ...

  4. 【arc071f】Infinite Sequence(动态规划)

    [arc071f]Infinite Sequence(动态规划) 题面 atcoder 洛谷 题解 不难发现如果两个不为\(1\)的数连在一起,那么后面所有数都必须相等. 设\(f[i]\)表示\([ ...

  5. 【BZOJ1367】[Baltic2004]sequence 左偏树

    [BZOJ1367][Baltic2004]sequence Description Input Output 一个整数R Sample Input 7 9 4 8 20 14 15 18 Sampl ...

  6. 【BZOJ3043】IncDec Sequence 乱搞

    [BZOJ3043]IncDec Sequence Description 给定一个长度为n的数列{a1,a2...an},每次可以选择一个区间[l,r],使这个区间内的数都加一或者都减一.问至少需要 ...

  7. 【C#】RGB,CMYK,HSB各种颜色表示的转换(转)

    [C#]RGB,CMYK,HSB各种颜色表示的转换   一.表示颜色的方式有很多种,如RGB,CMYK,HSB,Hex等等 1.RGB:这种表示颜色由三原色构成,通过红,绿,蓝三种颜色分量的不同,组合 ...

  8. T89353 【BIO】RGB三角形

    T89353 [BIO]RGB三角形 题解 对于这个题目有一个规律:  如果一个数列的长度为 3k+1(0<=k) 那么,这个数列最终缩放成的一个字母只和这个数列的首项,尾项有关 所以我们可以先 ...

  9. 【AGC025B】RGB Color

    [AGC025B]RGB Color 题面描述 Link to Atcoder Link to Luogu Takahashi has a tower which is divided into \( ...

随机推荐

  1. java string与byte互转

    1.string 转 byte[]byte[] midbytes=isoString.getBytes("UTF8");//为UTF8编码byte[] isoret = srt2. ...

  2. session--保持登录20分钟,常用与用户登录状态

    思路:request  与 session 两个作对比 1. . . 2. 3.

  3. 52.基于doc value正排索引的聚合内部原理

    主要知识点: 本节没有太懂,以后复习时补上       聚合分析的内部原理是什么????aggs,term,metric avg max,执行一个聚合操作的时候,内部原理是怎样的呢?用了什么样的数据结 ...

  4. PAT 1142 Maximal Clique

    A clique is a subset of vertices of an undirected graph such that every two distinct vertices in the ...

  5. [luoguP2854] [USACO06DEC]牛的过山车Cow Roller Coaster(DP + sort)

    传送门 先按照起点 sort 一遍. 这样每一个点的只由前面的点决定. f[i][j] 表示终点为 i,花费 j 的最优解 状态转移就是一个01背包. ——代码 #include <cstdio ...

  6. 轰炸II

    题目背景 本题为轰炸数据加强版 题目描述 一个城市遭到了M次轰炸,每次都炸了一个每条边都与边界平行的矩形 在轰炸后,有N个关键点,指挥官想知道,它们有没有受到过轰炸,如果有,被炸了几次,最后一次是第几 ...

  7. Spring 进行junit单元测试时,出现method ‘initializationError’ 错误

    首先检查一下所有的方法是否为public 然后看是否有commons-logging这个日志包

  8. codevs1031 质数环

    一个大小为N(N<=17)的质数环是由1到N共N个自然数组成的一个数环,数环上每两个相邻的数字之和为质数.如下图是一个大小为6的质数环.为了方便描述,规定数环上的第一个数字总是1.如下图可用1 ...

  9. [bzoj1022/poj3480]小约翰的游戏John_博弈论

    小约翰的游戏John 题目大意:Nim游戏.区别在于取走最后一颗石子这输. 注释:$1\le cases \le 500$,$1\le n\le 50$. 想法:anti-SG游戏Colon定理. 如 ...

  10. HDU 1166敌兵布阵

    敌兵布阵 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submis ...