Matches Puzzle Game
Matches Puzzle Game
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5456
数位DP
首先我把C-A=B改为A+B=C(我觉得会简单一点<( ̄3 ̄)>)
注意到前面填的数字不影响后面的数字,所以可以定义状态:
dp[i][j][a][b]表示已经用了i根火柴,进位为j,A前面能否再加数字(a),B前面能否再加数字(b)
然后根据a和b的值进行分类讨论即可。
(最近期中考好烦啊好多事都没弄)
代码如下:
/*苟利国家生死已,岂因祸福避趋之*/
#include<cstdio>
#include<iostream>
#include<cstring>
#define MATCH 505
#define TOWARDS 2
#define FA 2//前止
#define FB 2
using namespace std;
typedef long long LL;
LL p[]={,,,,,,,,,};
LL T,n,m,dp[MATCH][TOWARDS][FA][FB];
void init(){
memset(dp,,sizeof(dp));
dp[][][][]=;
scanf("%I64d%I64d",&n,&m);
n-=;
}
int main(void){
scanf("%I64d",&T);
for(LL times=;times<=T;++times){
init();
for(LL i=;i<n;++i)
for(LL j=;j<;++j)
for(LL a=;a<;++a)
for(LL b=;b<;++b)
if(dp[i][j][a][b]){
if(a==&&b==&&j==&&i+p[]<=n){
dp[i+p[]][][][]=(dp[i+p[]][][][]+dp[i][j][a][b])%m;
}else if(a==&&b==){
for(LL x=;x<=;++x){
LL r=x+j;
LL rr=i+p[x]+p[r%];
if(rr<=n){
dp[rr][r/][a][]=(dp[rr][r/][a][]+dp[i][j][a][b])%m;
if(x!=)dp[rr][r/][a][]=(dp[rr][r/][a][]+dp[i][j][a][b])%m;
}
}
}else if(a==&&b==){
for(LL x=;x<=;++x){
LL r=x+j;
LL rr=i+p[x]+p[r%];
if(rr<=n){
dp[rr][r/][][b]=(dp[rr][r/][][b]+dp[i][j][a][b])%m;
if(x!=)dp[rr][r/][][b]=(dp[rr][r/][][b]+dp[i][j][a][b])%m;
}
}
}else if(a==&&b==){
for(LL x=;x<=;++x)
for(LL y=;y<=;++y){
LL r=x+y+j;
LL rr=i+p[x]+p[y]+p[r%];
if(rr<=n){
dp[rr][r/][a][b]=(dp[rr][r/][a][b]+dp[i][j][a][b])%m;
if(x!=)dp[rr][r/][][b]=(dp[rr][r/][][b]+dp[i][j][a][b])%m;
if(y!=)dp[rr][r/][a][]=(dp[rr][r/][a][]+dp[i][j][a][b])%m;
if(x!=&&y!=)dp[rr][r/][][]=(dp[rr][r/][][]+dp[i][j][a][b])%m;
}
}
}
}
printf("Case #%I64d: %I64d\n",times,dp[n][][][]);
}
}
Matches Puzzle Game的更多相关文章
- HDU5456 Matches Puzzle Game(DP)
题目 Source http://acm.hdu.edu.cn/showproblem.php?pid=5456 Description As an exciting puzzle game for ...
- 【HDU 5456】 Matches Puzzle Game (数位DP)
Matches Puzzle Game Problem Description As an exciting puzzle game for kids and girlfriends, the Mat ...
- 2015年ACM沈阳网络赛(准备做掉4道:)
Traversal Best Solver Minimum Cut Dividing This Product Excited Database Fang Fang Matches Puzzle Ga ...
- 2015 ACM/ICPC Asia Regional Shenyang Online
1001 Traversal 1002 Best Solver 1003 Minimum Cut 类似于POJ 3417的做法. 考虑每条新边对树边的覆盖次数. 每条树边被覆盖的次数其实就是断裂这条树 ...
- CF613E Puzzle Lover
题意 英文版题面 Problems Submit Status Standings Custom test .input-output-copier { font-size: 1.2rem; floa ...
- keil MDK error: L6236E: No section matches selector - no section 错误
今天板子刚到,新建的第一个工程就报错了. .\Objects\cse.sct(7): error: L6236E: No section matches selector - no section t ...
- Puzzle 面向服务/切面(AOP/IOC)开发框架 For .Net
Puzzle 面向服务/切面AOP开发框架 For .Net AOP主要实现的目的是针对业务处理过程中的切面进行提取,它所面对的是处理过程中的某个步骤或阶段,以获得逻辑过程中各部分之间低耦合性的隔离效 ...
- 解决Android中No resource found that matches android:TextAppearance.Material.Widget.Button.Inverse问题
解决Android中No resource found that matches android:TextAppearance.Material.Widget.Button.Inverse问题http ...
- Matches正则使用提取内容
用VS新建WinForm程序,窗体上是三个文本框和一个按钮.可以自己构造正则表达式,自己修改匹配内容 正则表达是要提取的部分为hewenqitext 代码如下: using System; using ...
随机推荐
- neovim的新体验
A. 缘由 vim下的CtrlP插件好用,但是当文件较多时,不能很快检索,时有卡死的情况发生.听说neovim引入了很多新的功能,例如异步处理,job管理等. B. 安装neovim1. Ubunt ...
- PHP判断一个变量是否可以通过foreach进行遍历
<?php if( !is_array( $items ) && !$items instanceof Traversable ) //Throw exception here ...
- H5 App页面 绝对定位 软键盘弹出时顶起底部按钮
做H5 App页面时,有时候,按钮可能会放到页面的最底下,这个时候可能会用到绝对定位(position: absolute),但是,当input 输入框被点击时,弹出的软键盘会顶起底部的按钮,就像这样 ...
- ubuntu下update-alternatives命令的使用
在ubuntu系统中,update-alternatives是专门维护系统命令链接符的工具,其可以对某个工具的多个软件版本进行管理,通过它可以很方便的设置系统默认使用哪个命令的哪个软件版本. 在命令行 ...
- CodeForces 685B Kay and Snowflake
树的重心,树形$dp$. 记录以$x$为$root$的子树的节点个数为$sz[x]$,重儿子为$son[x]$,重心为$ans[x]$. 首先要知道一个结论:以$x$为$root$的子树的重心$ans ...
- java 生成二维码
package com.sun.erwei; import java.awt.Graphics2D;import java.awt.geom.AffineTransform;import java.a ...
- css3制作3d旋转相册
此处只是记录,解析可见原文:http://www.cnblogs.com/skyblue-li/p/6092799.html <!DOCTYPE html> <html xmlns= ...
- expri on the testdisk
首先,根据GNU的编译知识,来分析下载下来的目录,虽然里面有很多win的,andriod的文件,就不要管了,考入centos里面去, 按下面顺序执行就ok了. 第一步执行顺序: #autoscan ...
- Mssql 行转列
) set @sql='' --初始化变量@sql --变量多值赋值 ,,'')--去掉首个',' set @sql=' select * from( select objectid,name,jyj ...
- 整理了一份React-Native学习指南
原文: http://www.w3ctech.com/topic/909 自己在学习React-Native过程中整理的一份学习指南,包含 教程.开源app和资源网站等,还在不断更新中.欢迎pull ...