【XSY3209】RGB Sequence
题目
解法
用\(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的更多相关文章
- 【arc074e】RGB Sequence(动态规划)
[arc074e]RGB Sequence(动态规划) 题面 atcoder 洛谷 翻译见洛谷 题解 直接考虑暴力\(dp\),设\(f[i][j][k][l]\)表示当前考虑到第\(i\)位,最后一 ...
- 【ARC074e】RGB sequence
Description 一排\(n\)个格子,每个格子可以涂三种颜色的一种.现在给出\(m\)个形如"\([l,r]\)中必须恰好有\(x\)种颜色"的限制(\(1 \le l ...
- 【arc074e】RGB Sequence dp
Description 丰泽爷今天也在愉快地玩Minecraft! 现在丰泽爷有一块1∗N1∗N的空地,每个格子按照顺序标记为11到NN.丰泽爷想要在这块空地上铺上红石块.绿宝石块和钻石块作为 ...
- 【arc071f】Infinite Sequence(动态规划)
[arc071f]Infinite Sequence(动态规划) 题面 atcoder 洛谷 题解 不难发现如果两个不为\(1\)的数连在一起,那么后面所有数都必须相等. 设\(f[i]\)表示\([ ...
- 【BZOJ1367】[Baltic2004]sequence 左偏树
[BZOJ1367][Baltic2004]sequence Description Input Output 一个整数R Sample Input 7 9 4 8 20 14 15 18 Sampl ...
- 【BZOJ3043】IncDec Sequence 乱搞
[BZOJ3043]IncDec Sequence Description 给定一个长度为n的数列{a1,a2...an},每次可以选择一个区间[l,r],使这个区间内的数都加一或者都减一.问至少需要 ...
- 【C#】RGB,CMYK,HSB各种颜色表示的转换(转)
[C#]RGB,CMYK,HSB各种颜色表示的转换 一.表示颜色的方式有很多种,如RGB,CMYK,HSB,Hex等等 1.RGB:这种表示颜色由三原色构成,通过红,绿,蓝三种颜色分量的不同,组合 ...
- T89353 【BIO】RGB三角形
T89353 [BIO]RGB三角形 题解 对于这个题目有一个规律: 如果一个数列的长度为 3k+1(0<=k) 那么,这个数列最终缩放成的一个字母只和这个数列的首项,尾项有关 所以我们可以先 ...
- 【AGC025B】RGB Color
[AGC025B]RGB Color 题面描述 Link to Atcoder Link to Luogu Takahashi has a tower which is divided into \( ...
随机推荐
- buf.writeInt32BE()函数详解
buf.writeInt32BE(value, offset[, noAssert]) buf.writeInt32LE(value, offset[, noAssert]) value {Numbe ...
- vue-cli中src/main.js 的作用
// The Vue build version to load with the `import` command // (runtime-only or standalone) has been ...
- 【DIP, OpenCV】Some Kinds Of Image Smoothing Methodologies
In digital image processing(DIP), many methods are used in smoothing images in order to suppress noi ...
- Windows Server 2008R2服务器IIS安装步骤
注意点: 添加ASP.NET ..NET 扩展性.CGI.ISAPI 扩展.ISAPI 筛选器,去掉 目录浏览(因为大多数网站用不到.) 如果需要用到asp则勾选asp,如果需要用shtm需要开启在服 ...
- java 项目连接MySQL数据库
1.导入jar包 mysql-connector-java-5.1.35百度云链接如下: 链接:https://pan.baidu.com/s/1DPvIwU_An4MA3mU5bQa6VA 密码:5 ...
- Java MyBatis 插入数据库返回主键--insertSelective这样就不用每次到数据库里面查询了
insertSelective---Java MyBatis 插入数据库返回主键--insertSelective这样就不用每次到数据库里面查询了 https://www.cnblogs.com/xi ...
- Garden of Eden
Garden of Eden Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others ...
- noip模拟赛 传球接力
[问题描述]n 个小朋友在玩传球. 小朋友们用 1 到 n 的正整数编号. 每个小朋友有一个固定的传球对象,第 i 个小朋友在接到球后会将球传给第 ai个小朋友, 并且第 i 个小朋友与第 ai个小朋 ...
- java操作数据库的工具库(from韩顺平)
需要引入jar包sqljdbc4.jar 其他关系型数据库只需要改动前面的连接过程,其他的一样 package com.cx.util; import java.io.FileInputStream; ...
- 20180725利用pmm监控管理mysql
转自:https://www.percona.com/doc/percona-monitoring-and-management/architecture.html 报警机制https://www.p ...