【codechef】Chef and Bracket-Pairs (分层dp)

编程之美初赛第二场 扑克牌(四维dp,难) 一副不含王的扑克牌由52张牌组成,由红桃、黑桃、梅花、方块4组牌组成,每组13张不同的面值。现在给定52张牌中的若干张,请计算将它们排成一列,相邻的牌面值不同的方案数。 牌的表示方法为XY,其中X为面值,为2、3、4、5、6、7、8、9、T、J、Q、K、A中的一个。Y为花色,为S、H、D、C中的一个。如2S、2H、TD等。 输入 第一行为一个整数T,为数据组数。 之后每组数据占一行。这 阅读详情


Input:
11
-1 -2 9 2 -3 -4 3 4 8 8 1 

Output:
12
http://www.codechef.com/problems/CHEFBR/

#include<iostream>  
#include<algorithm>  
#include<string>  
#include<map>  
#include<set>  
#include<cmath>  
#include<vector>
#include<queue>
#include<string.h>  
#include<stdlib.h>  
#include<cstdio>  
#define ll long long  
#define mod 1000000007
using namespace std; 
int x[101];
ll dp[101][101];  //dp[j][i]表示j到i有多少个平衡子序列 
int main(){
	int n;
	cin>>n;
	for(int i=1;i<=n;++i){
		cin>>x[i];
	}
	for(int i=0;i<101;++i)
		for(int j=0;j<101;++j) //初始化(因为乘法所以设成1) 
			dp[i][j]=1;
	for(int i=1;i<=n;++i){
		for(int j=1;j<=i;++j)   //未算上i点时的子序列个数
			dp[j][i]=dp[j][i-1]; 
		if(x[i]>0){  //算上i点时的子序列个数(为了不算多,只取右括号的情况 )
			for(int j=i-1;j>=1;--j){  //j为k到i的中间位置 
				if(x[j]+x[i]==0){     //匹配 
					for(int k=1;k<=j;++k)  //这里要注意不是j-1(因为[j,i]也要被算上)
						dp[k][i]=(dp[k][i]+(dp[k][j-1]*dp[j+1][i-1])%mod)%mod;
						//把k到i去除掉j位置和i位置后剩余的两段平衡序列个数相乘 
				}
			}
		}
	}
	cout<<dp[1][n]<<endl;
    return 0;     
}    


hznu1858 至少选k个点框起来的最小正方形的边长 这题很容易想到二分+离散化+枚举。然而我没有想出来的点有如下: 1.枚举的到底是什么(如果说是把某个点作为正方形左上顶点枚举,肯定不对,然后就没想法了)。但是我想到了必定会有两个顶点在两条相交的边上。于是把所有点的横坐标放在集合{x},把所有点的纵坐标放在集合{y},于是最后就是枚举{x}*{y}种可能(★) 2.由于数据有1500,所以在每个二分的枚举里面不能直接的算出区域里个数(会超时), 阅读详情

相关推荐

zoj 2852 Deck of Cards扑克牌(三维dp)

21-point is a small game played with cards. Its aim is to accumulate the points on the cards so as to get 21 points. This game also appears on some cell phones. To simplify the problem, let's have

芒果街上的小屋(此博客暂时停用) 842

入坑 VSCode,编辑器设置及插件设置

从 WebStorm 养成的习惯,废弃了之前用 Eclipse 的时候,时不时地按一下 ⌘S 以消除保存忧虑的习惯。

程序员小麦的博客 3185

产业园区如何高效对接企业技术需求与高校科研成果?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

CodeChef:Chef and Problems(分块 & 二分)

Chef was invited to the party of N people numbered from 1 to N. Chef knows the growth of all the people, i.e. he knows the growth of the ith person is denoted by an integer Ainot exceeding M. Che

junior19的博客 928

Multisim14.0仿真实战:从零搭建RS/JK触发器电路(附真值表+波形图)

本文通过Multisim 14.0软件,提供了从零搭建RS触发器和JK触发器电路的详细仿真实战教程。内容涵盖核心概念解析、电路搭建步骤、动态波形观测及真值表分析,重点探讨了RS触发器的非法状态问题以及JK触发器的四种工作模式,帮助读者直观理解时序逻辑电路的“记忆”功能与设计要点。

weixin_29175469的博客 275

SystemRDL:从寄存器描述到自动化生成的完整指南

本文详细介绍了SystemRDL如何通过“一份描述,多处生成”的理念,彻底解决芯片与FPGA设计中手动维护寄存器带来的不一致与低效问题。文章提供了从语言快速上手、核心组件讲解到使用PeakRDL工具链实现自动化代码与文档生成的完整实战指南,帮助硬件工程师构建高效、可靠的寄存器开发流程。

weixin_29243279的博客 659

vscode1.62原生代码块边缘导轨着色与Bracket Pair Colorizer的对标和差异化(附配置)

前言 听闻 vscode1.62 已发布,相信聪明的 vscode 使用者已经在 vscode1.61 要升级为 1.62 ,或已升级为 1.62 ,虽然本次 1.62 的版本变化没有 awesome 级别的 feature ,但格外引人注意的就是与 Bracket Pair Colorizer 这个插件的对标和差异化。 对标 追溯古老的 vscode 1.60 版本,官方开始提供更好的正则引擎去识别括号并附加彩色着色,就已经开启了 Bracket Pair Colorizer 的对标时代,详情可见下文:

幻日のヨハネ 6423

ubuntu下编译qtwebengine

ubuntu qtwebengine

tianyu的专栏 - Linux site:blog.youkuaiyun.com/wishfly 1463

codechef Chef and Bracket-Pairs

好dp

408

使用MATLAB的COMSOL LiveLink:实时连接和数据传输

COMSOL LiveLink是一种功能强大的MATLAB工具包,它允许用户在MATLAB环境中与COMSOL Multiphysics软件进行实时连接和数据传输。COMSOL LiveLink是一种功能强大的MATLAB工具包,它允许用户在MATLAB环境中与COMSOL Multiphysics软件进行实时连接和数据传输。使用COMSOL LiveLink,你可以进行更复杂的模型设置和数据传输使用MATLAB的COMSOL LiveLink:实时连接和数据传输。

PixelNinja的博客 2093

小工匠聊架构-分布式场景下的并发幂等性常见的解决方案

Pre 我们来回顾下单体时代 单体时代,应用部署在一台主机上,可以使用JVM级别的锁来控制并发请求 。 随着应用规模的不断扩大,集群化或者微服务化的分布式部署越来越普及,每个应用都是一个单独的JVM应用,所以单体时代的这种处理方式已经无法满足当前架构下的业务需求了。 JVM级别的锁已经无法满足跨进程之间访问控制了,进而演化出来了分布式锁。 分布式锁 能否解决幂等性问题? 分布式锁解决什么问题? 简言之: 解决跨进程间无法共享本地资源的问题 ,解决的是分布式场景下并发访问的问题。 为什么需要确保并发.

小工匠 2万+

hznu 1524 排队买票(dp)【类卡特兰构造】

有M个小孩到公园玩,门票是1元。其中N个小孩带的钱为1元,K个小孩带的钱为2元。售票员没有零钱,问这些小孩共有多少种排队方法,使得售票员总能找得开零钱。注意:两个拿一元零钱的小孩,他们的位置互换,也算是一种新的排法。(M&lt;=10)输入输入一行,M,N,K(其中M=N+K,M&lt;=10)。输出输出一行,总的排队方案。样例输入4 2 2样例输出8http://hsacm.cn/JudgeOn...

芒果街上的小屋(此博客暂时停用) 2944

零基础学simulink仿真建模--基于Simulink进行近端策略优化(PPO)路径规划的仿真建模

特点高效性与稳定性:通过引入剪裁机制,在更新策略时限制步长,从而提高了训练过程的稳定性和效率。适用于多种动作空间:可以处理连续和离散的动作空间问题。无需模型:不需要预先知道环境的确切模型,适合复杂或未知环境。挑战收敛速度与稳定性:确保算法能够在合理的时间内找到近似最优解,并保持训练过程的稳定性。探索与利用平衡:在探索新路径和利用已知信息之间取得平衡。计算资源:对于大规模状态空间和动作空间,计算资源需求较高。首先明确要模拟的任务内容。目标(例如到达指定地点、避开障碍物等)。

amy_mhd的博客 250

CF629C 在s两端在加两个串p和q 使得总长度为n,并且最后的s'符合规范的方法

给你一个长度为m的只含()的括号串s, 要求在s两端在加两个串p和q, 使得总长度为n,并且最后的s'(即p+s+q)是符合规范的。求添加p、q的方法数 可以在现有思路上+点击打开链接这题二维代码的理解。 还有一种做法:点击打开链接

芒果街上的小屋(此博客暂时停用) 1544

还在用 RaiDrive/Rclone 挂载网盘?教您使用Windows 原生 WebDAV 丝滑直连 AList/Openlist,让你的网盘秒变本地硬盘!

网盘文件分散管理?😩 别再依赖第三方工具了!本文教你如何在 Windows 下,利用原生 WebDAV 功能,将 Openlist 网盘直接映射为本地硬盘!💻 操作简单,告别繁琐,让你的云端文件像本地文件一样丝滑!🚀 轻松实现高效管理,快来体验吧!

XiaoqiangClub的博客 2974

javafx结合Scene Builder自定义fxml实现漂亮的登录界面、自定义最小化、关闭按钮

本节主要介绍了如何结合Scene Builder工具来制作一个好看又漂亮的登录界面,以及介绍了如何在程序中调用生成界面文件fxml文件,如何获取到fxml文件中的组件等,并演示登录、最小化和关闭等功能。

c1007857613的专栏 5222

【51nod】1092 回文字符串

回文串是指aba、abba、cccbccc、aaaa这种左右对称的字符串。每个字符串都可以通过向中间添加一些字符,使之变为回文字符串。 例如:abbc 添加2个字符可以变为 acbbca,也可以添加3个变为 abbcbba。方案1只需要添加2个字符,是所有方案中添加字符数量最少的。 两种截然不同的思路: 1.先求出原字符串与逆序字符串的最长公共子序列(可不连续),ans=总长度-

芒果街上的小屋(此博客暂时停用) 1495

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

CF484D 把数组划分成几段,求所有段的最大值-最小值之和的最大值

In a kindergarten, the children are being divided into groups. The teacher put the children in a line and associated each child with his or her integer charisma value. Each child should go to exactly

芒果街上的小屋(此博客暂时停用) 1256

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

POJ2411: Mondriaan's Dream(1*2铺地砖,DP)

Squares and rectangles fascinated the famous Dutch painter Piet Mondriaan. One night, after producing the drawings in his 'toilet series' (where he had to use his toilet paper to draw on, for all of h

芒果街上的小屋(此博客暂时停用) 1184

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

hdu5544 Pick The Sticks(dp)

还是得正视这场比赛了。。不说了,就放代码。 http://acm.hdu.edu.cn/showproblem.php?pid=5543 #include #include #include #include//int dx[4]={0,0,-1,1};int dy[4]={-1,1,0,0}; #include//int gcd(int a,int b){return b?gcd(b,a

芒果街上的小屋(此博客暂时停用) 1111

CERC2014 Outer spaceinvaders(区间DP,推理)

有N个外星人,第i个外星人会在ai时间出现,离你距离di,并且必须在bi时间之前被消灭。你有一把很NB的武器,攻击范围是个半径为R的圆,R可以任意调整,不过你以R的范围每攻击一次就要消耗R单位能量。外星人被攻击一次就会死掉。求需要消灭所有外星人的最小消耗能量。  dp[i][j] = min(dp[i][j], c[h]+ f[i][k] + f[k][j])(a[h]是i秒到j秒里出现的d

芒果街上的小屋(此博客暂时停用) 1060

hznu 1636: 方格取数(dp,灵活题)

设有N*N的方格图(N 某人从图的左上角的A 点出发,可以向下行走,也可以向右走,直到到达右下角的B点。在走过的路上,他可以取走方格中的数(取走后的方格中将变为数字0)。 此人从A点到B 点共走两次,试找出2条这样的路径,使得取得的数之和为最大。 输入  输入的第一行为一个整数N(表示N*N的方格图),接下来的每行有三个整数,前两个表示位置,第三个数为该位置上所放的

芒果街上的小屋(此博客暂时停用) 986

hdu4466 将长度为n线段瓜分成若干个相似三角形,有多少种分法(划分dp)

三角形顺序不同视为不同方案。 题解:http://www.cnblogs.com/jianglangcaijin/p/3465526.html #include #define ll long long #define mod 1000000007 #define maxn 5000000 using namespace std; int dp[maxn+5]; int power[

芒果街上的小屋(此博客暂时停用) 956

ZOJ 3929 Deque and Balls

放在这里为了警醒我以后不要出现太多低级bug。。。 #include #define ll long long #define mod 1000000007 using namespace std; ll power[100005]; ll r[100005]; ll dp[100005]; int main(){ power[0]=1; for(int i=1;i<=100000;++i)

芒果街上的小屋(此博客暂时停用) 922

hznu 1139: Minimax Triangulation(dp,三角形面积模板)

Triangulation of surfaces has applications in the Finite Element Method of solid mechanics. The objective is to estimate the stress and strain on complex objects by partitioning them into small simp

芒果街上的小屋(此博客暂时停用) 839

【codechef】Chef and the Cards(dp,推论)

从前有 N 张卡片,在桌上摊成了一排。每张卡片上有两个数字,一个写在上边,一个写在下边,每个数字都是 1 到 N 之间的一个整数(也包含 1 和 N)。同时,在所有卡片的上边的数字中,1 到 N 的每个数字恰好出现了一次。下边的数字也一样。 大厨想要给这些卡片重新排个序。他希望在重排之后,卡片上边的数字构成的序列,还有卡片下边的数字构成的序列,这两个序列的最长公共子串尽量长。 这里子串的意思是

芒果街上的小屋(此博客暂时停用) 829
上一篇: 【codechef】Alok-nath and His Sanskars(数字能不能被等分,记忆化深搜)
下一篇: hdu 5261 蜀道难(deque 双端队列)
ccyy-
博客等级 码龄12年 31粉丝 244原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值