#include <cstdio>
#include <iostream>
#include <iomanip>
#include <string>
#include <cstdlib>
#include <cstring>
#include <queue>
#include <set>
#include <vector>
#include <map>
#include <algorithm>
#include <cmath>
#include <stack>
#define INF 0x3f3f3f3f
#define IMAX 2147483646
#define LINF 0x3f3f3f3f3f3f3f3f
#define ll long long
#define ull unsigned long long
#define uint unsigned int
using namespace::std;
const int mod = 11380;
int f[11][11][11][31];
int dfs(int l1, int l2, int l3, int deep) {
if (f[l1][l2][l3][deep] > -1)return f[l1][l2][l3][deep];
if (l1 + l2 + l3 == 0)return f[l1][l2][l3][deep] = 1;
if (deep == 0)return f[l1][l2][l3][deep] = 0;
int ans = 0;
for (int i = 0; i <= l3; i++) {
if (i) ans = (ans + dfs(0, 0, i - 1, deep - 1) * dfs(l1, l2, l3 - i, deep)) % mod;
for (int j = 0; j <= l2; j++) {
if (j) ans = (ans + dfs(0, j - 1, i, deep - 1) * dfs(l1, l2 - j, l3 - i, deep)) % mod;
for (int k = 1; k <= l1; k++)
ans = (ans + dfs(k - 1, j, i, deep - 1) * dfs(l1 - k, l2 - j, l3 - i, deep)) % mod;
}
}
return f[l1][l2][l3][deep] = ans;
}
int a, b,c, d;
int main() {
memset(f, -1, sizeof(f));
scanf("%d%d%d%d", &a, &b, &c, &d);
dfs(a, b, c, d);
if (d) {
dfs(a, b, c, d - 1);
printf("%d\n", (f[a][b][c][d] - f[a][b][c][d - 1] + mod) % mod);
return 0;
}
printf("%d\n", f[a][b][c][d]);
return 0;
}
相关推荐
vmware vsphere 证书过期告警处理方法
vSphere Clinet 管理页面出现“证书告警” ,检查证书未发现现有证书有过期现象
poj 1187 陨石的秘密
题目链接:http://poj.org/problem?id=1187 题目大意:求出指定要求的字符串的种数,用dp[a][b][c][d]记录有a个{},b个[],c个()深度为d的字符串的个数,然后枚举左边一段外层加括号的状态,与右边对应状态相乘即可。 #include<stdio.h> #include<stdlib.h> #include<string.h...
DEV-C++调试设置
昨天用C/C++去考了CSP,结果用DEV-C++调试总是闪退,按照我的记忆打开了调试参数,迷迷糊糊搞了一通,还是没办法调试,难受了几个小时。所以今天痛下决心,一定要写下DEV-C++设置调试的过程,警示自己! 解决步骤 1.打开DevC++找到上方工具栏 2.点击选择编译选项,再按下图所示设置即可
POJ1187 陨石的秘密 【题解】 线性DP
题面:http://poj.org/problem?id=1187 很自然想到设f[i][j][k][d]为i个小括号,j个中括号,k个大括号,深度小于等于d的解。 那么答案自然就是f[i][j][k][d] - f[i][j][k][d-1]。 但是最关键的不是在这里,而是如何转移。 我们可以假设加上小于号。 那么自然(res是加上的数) res=(res+f[a][b]...
OpenCV实战:从边缘检测到透视校正,打造智能文档扫描仪(Python代码详解)
本文详细介绍了如何使用OpenCV和Python从零开始构建一个智能文档扫描仪。通过边缘检测、透视校正和文字增强等核心技术,将倾斜、模糊的文档照片转换为清晰、方正的高质量扫描图像。文章提供了完整的代码实现和参数调优经验,帮助开发者打造稳定、高效的文档处理工具。
SAP成本核算变式OKKN配置详解:从CK11N到CK24,手把手教你搞定标准成本发布
本文深入解析SAP成本核算变式OKKN的配置原理与实战应用,涵盖从CK11N到CK24的标准成本发布全流程。详细讲解数量结构控制、价值结构配置及间接费用计算规则,帮助成本会计精准掌握标准成本计算逻辑,解决BOM版本选择、工艺路线获取等常见问题,提升企业成本管理效率。
【POJ1187】陨石的秘密
题目大意: 定义一个串:只含有 '( )','[ ]','{ }',3种(6个)字符。 定义 SS 串: 空串是SS表达式。 若A是SS表达式,且A串中不含有中括号和大括号,则(A)是SS表达式。 若A是SS表达式,且A串中不含有大括号,则[A]是SS表达式。 若A是SS表达式,则{A}是SS表达式。 定义SS串深度: 空串深度为0. 若A可以写成*A'*,其中A‘为SS串,*为任意括...
Mac新手必看:用Homebrew安装wget的保姆级教程,附常见报错一键修复
本文为Mac新手提供使用Homebrew安装wget的详细教程,涵盖从Homebrew安装到wget基础使用的全流程,并附常见报错一键修复方案。通过本指南,用户可轻松掌握命令行下载工具wget的安装与使用技巧,解决Mac环境下资源下载的各种问题。
poj 1187
//读了半大天题终于发现就是LIS问题 #include <iostream> #include <cstdio> using namespace std; const int maxn=100000; const int inf=1<<30; int s[maxn],r[maxn],d[maxn],g[maxn]; int n; int low_bound(i...
硬件工程师笔记——运算放大电路Multisim电路仿真实验汇总
本文系统介绍了运算放大电路的基础知识及其应用。主要内容包括:1)运算放大器的基本结构、理想特性及分析方法(虚短、虚断、叠加定理);2)比例运算电路(同向、反向、差分)的工作原理与仿真分析;3)求和运算、加减运算电路的实现方法;4)积分、微分、指数和对数运算电路的基本原理;5)过零电压比较器的功能特点。通过理论分析和仿真实验,详细阐述了各类运算放大电路的输入输出特性、相位关系和增益计算,为硬件工程师提供了实用的电路设计参考。
【LE Audio】CAP精讲[1]: 从理论到实操,CAP 协同流程入门全攻略
LEAudio生态中的CommonAudioProfile(CAP)是一个关键协同框架,它通过整合基础音频协议(BAP/VCP/MICP等)构建多设备协同能力。CAP定义了三大核心功能:音频流管理、设备组控制和统一交互服务,解决了传统蓝牙音频在多设备场景下的协同痛点。其规范历经v1.0到v1.0.1的优化,修正了角色定义、连接流程等关键模块,提升设备兼容性。CAP采用严格的语言约定(shall/must/should)和术语体系(ContextType/CCID/协同集),确保不同厂商设备能相互理解。
POJ 3783 Balls (线性dp 智力题)
POJ 3783 Balls (线性dp 智力题)
AutoSAR系列讲解(入门篇)1.2-AutoSAR概述
这里主要说明了AutoSAR是个什么,还有其工具链
POJ 1187 陨石的秘密 G++ 巧妙 dfs dp 真没掌握
#include <iostream> #include <cstdio> #include <cstring> using namespace std; //看博友分析 抄博友程序 巧妙 dfs dp 真没掌握 int mod=11380; int l1,l2,l3,d; int dp[12][12][12][34];//抄博友程序 dp[a][b][c][d]表示{}[]()分别有a b c个形成最大嵌套...
Camera2Demo
在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作
STM32F407中文手册
STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。
POJ-4003 The Triangle (线性dp,入门题)
线性dp入门题。一个三角形,求从定点到底部的最大和路径。
SIMATIC S7-1200, S7-1500 PID 控制[手册]
SIMATIC S7-1200, S7-1500 PID 控制[手册]
POJ 2385(线性DP)
题意 现在有两棵树,在1~t分钟内,其中一棵树会掉落一个苹果。一开始你在第一棵树下,每次你只能接住当前在的那棵树上掉落的苹果,或者花费1个体力点瞬移到另一棵树下,接住那个苹果。你总共有w个体力点。给定t,w,每分钟苹果的掉落情况,问你最多能获得多少个苹果。 分析 状态定义为 dp[i][j]:前t分钟在花费j个体力点的情况下能获得的最多苹果数。 状态转移方程 dp[i][j]=max(...
NTscan扫描工具
ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。
POJ 1187-陨石的秘密(DP)
用d[i][j][u][v]表示i个{},j个[],u个(),深度为v的序列数,根据最后一个子括号(就是最后一个反括号对应的正括号范围内的括号)分类计数。 最后一个子括号可能深度小于v,此时前面的括号深度必须为v,最后一个子括号深度也可能等于v,此时前面的括号深度可以小于或等于v。 用sum[i][j][u][v]表示i个{},j个[],u个(),深度小于等于v的序列数。没递推完i,j
poj1772线性dp
一般现代模型,不行上解题表。嗯,只要发现除了第二个以外其他数前面都可以是正或负就好了,可以dp。证明用归纳法很容易的 #include<iostream> #include<cstdio> #include<algorithm> #include<cmath> using namespace std; int dp[110][21000]; in...
题解 POJ1187 【陨石的秘密】
题目链接:Link Problem Solution 一开始很愉快地想到了一个dp,然后发现AB+C和A+BC这两种情况会重复计数。。。 但其实在枚举A+B型时,可以强制令A一定形如(C),这样就可以避免重复计数了。 Code #include<cstdio> #include<cstring> #include<algorithm> using n...
$[POJ1187]$ 陨石的秘密 题解
\(POJ1187\) 真是一个有趣的题目……我真是……唉…… 我相信肯定有很多人拿到这道题会设如下的状态: \(f[l1][l2][l3][d]\)为有\(l1\)个\(\{ \}\),\(l2\)个\([]\),\(l3\)个\(()\)时深度为\(d\)的个数,但是你想一下就会发现,不能转移! 因为你无法控制子状态中\(d\)的最大值,可怜~(@谁是鸽王) 于是就有这样一种神仙状态:\(f[...
POJ 2479-Maximum sum(线性dp)
Maximum sum Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 33918 Accepted: 10504 Description Given a set of n integers: A={a1, a2,..., an}, we define a fu
poj 1187 DP
dp[deep][l1][l2][l3] 表示小于等于deep由 l1, l2, l3 组成的串的个数 最后答案是 dp[deep][l1][l2][l3] - dp[deep-1][l1][l2][l3] 显然应当使用递推。 对于串的递推,常将其分割为两个或多个较短的子串求解。 如果将括号串S分割为两个完全独立的子串L,R,则有N(S)=N(L)*N(R),N(S)表示与串S满足相同的
poj1187
对网上的代码做了些优化。。题解的话到处都有。 #include<iostream> #include<cstdio> #include<algorithm> using namespace std; typedef long long ll; const ll mod = 11380; ll dp[31][11][11][11]; int l1, l2, l...
POJ 1187 陨石的秘密 ()[]{}帯权dp
题意:给定()[]{}的数量分别为l1,l2,l3(0 (0 题解:首先很容易想到记忆化dfs,dp[a][b][c][d]表示{}[]()分别有a b c个形成最大嵌套深度为d的方法数,然后找到子状态,但是麻烦的是d是多个子问题求max得到的,这样 在dfs的过程中没办法控制哪一个是最大的,看了下提示瞬间石化。 dp[a][b][c][
POJ 1260 Pearls(线性dp)
POJ 1260题目大意 有n种珍珠的购买列表,等级由低到高排列(等级越高价格也越高),每种珍珠需要aia_i个,每个价格是pi,(1≤ai≤1000,1≤pi≤1000)p_i,(1\le a_i\le 1000, 1 \le p_i\le 1000),对于买的每一种珍珠需要多花10个的钱,可以用等级高的珍珠替代等级低的。问最少花多少钱。 分析从变量着手考虑状态,n种珍珠,那么状态很可能和珍珠
1187简单编码
题目描述 将一串文本译成密码,密码的规律是: 将原来的小写字母全部翻译成大写字母,大写字母全部翻译成小写字母,数字的翻译规律如下: 0——>9 1——>8 2——>7 3——>6 4——>5 5——>4 6——>3 7——>2 8——>1 9——>0 然后将所有字符的顺序颠倒。 输入 输入一串文本,最大字符个数不超过100。
3637



被折叠的 条评论
为什么被折叠?



