AT2370 Piling Up
https://www.luogu.org/jump/atcoder/2370
题解
答案不是\(2^{2m}\)因为每轮的第一次取球可能会不够。
我们可以设\(dp[i][j]\)表示到了第\(i\)轮,当前白球有\(j\)个的方案数。
转移的话枚举下一次拿球的方案。
白白:\((i,j)->(i+1,j-1)\)
黑黑:\((i,j)->(i+1,j+1)\)
白黑:\((i,j)->(i+1,j)\)
黑白:\((i,j)->(i+1,j)\)
把每个状态放在二维平面上的话,我们其实是在统计本质不同的折线个数。
但是这样会算重。
所以我们需要让每条折线强制碰到底部。
那么我们在状态中记录一下是否碰到底部就行了。
代码
#include<bits/stdc++.h>
#define N 3002
using namespace std;
typedef long long ll;
const int mod=1e9+7;
ll dp[N][N][2];
int n,m;
inline void MOD(ll &x){x=x>=mod?x-mod:x;}
inline ll rd(){ll x=0;char c=getchar();bool f=0;while(!isdigit(c)){if(c=='-')f=1;c=getchar();}while(isdigit(c)){x=(x<<1)+(x<<3)+(c^48);c=getchar();}return f?-x:x;
}
int main(){n=rd();m=rd();for(int i=1;i<=n;++i)dp[0][i][0]=1;dp[0][0][1]=1;for(int i=1;i<=m;++i){for(int j=0;j<=n;++j)for(int k=0;k<2;++k)if(dp[i-1][j][k]){if(j){MOD(dp[i][j-1][k|(j==1)]+=dp[i-1][j][k]);MOD(dp[i][j][k|(j==1)]+=dp[i-1][j][k]);}if(j<n){MOD(dp[i][j+1][k]+=dp[i-1][j][k]);MOD(dp[i][j][k]+=dp[i-1][j][k]);}}}ll ans=0;for(int i=0;i<=n;++i)MOD(ans+=dp[m][i][1]);cout<<ans;return 0;
}
转载于:https://www.cnblogs.com/ZH-comld/p/11119522.html
AT2370 Piling Up相关推荐
- AtCoder Grand Contest 013D: Piling Up 题解
题意简化: [luogu] Piling Up 一开始有n个颜色为黑白的球,但不知道黑白色分别有多少,m次操作,每次先拿出一个球,再放入黑白球各一个,再拿出一个球,最后拿出的球按顺序排列会形成一个颜色 ...
- AT2370-[AGC013D]Piling Up【dp】
正题 题目链接:https://www.luogu.com.cn/problem/AT2370 题目大意 有nnn个黑白球,但是具体颜色个数不确定,进行mmm次操作:拿出一个球然后放入黑白球各一个,再 ...
- Domino piling
文章目录 一.Domino piling 总结 一.Domino piling 本题链接:Domino piling 题目: A. Domino piling time limit per test2 ...
- android Anr Input类型系统源码解析
我们常说Input超时,都是指的是Input事件分发超时,因此整个超时计算以及触发都在InputDispatcher这个类中.其代码路径如下:/frameworks/native/services/i ...
- 什么是“缓存友好”代码?
本文翻译自:What is a "cache-friendly" code? What is the difference between " cache unfrien ...
- Storage medium
In previous chapters we've looked at manipulating data at the file level.In this chapter,we will con ...
- linux perf - 性能测试和优化工具
Perf简介 Perf是Linux kernel自带的系统性能优化工具.虽然它的版本还只是0.0.2,Perf已经显现出它强大的实力,足以与目前Linux流行的OProfile相媲美了. Perf 的 ...
- 【译】Withdrawal symptoms
Withdrawal symptoms 脱瘾症状 After the stimulus, the hangover 经济刺激计划之后所遗留下来的 Oct 7th 2010 <经济学人>20 ...
- Zuul 2 : The Netflix Journey to Asynchronous, Non-Blocking Systems--转
原文地址:http://techblog.netflix.com/2016/09/zuul-2-netflix-journey-to-asynchronous.html We recently mad ...
最新文章
- MOSS SDK学习笔记系列文章
- mysql案例_MySQL实例crash的案例详细分析
- python3 next_对Python 3.2 迭代器的next函数实例讲解
- 剑指OFFER之字符串的排列(九度OJ1369)
- Linux并发与竞争实验(一次只允许一个应用程序操作LED灯)
- win10固态硬盘分区 整数_惠普HP笔记本Win10改Win7系统教程
- Python与MySQL连接
- wget python3_python wget
- 社区内放自助打印机,赚钱吗?
- 初探Object in java
- LMS Algorithm 最小均方算法
- 转:机器人工程师学习计划(YY硕)(后悔自己没有早点看到强力推荐)
- Python自动化办公:xlwt万字教程
- 解决waiting for all target devices to come online卡住不动、长时间不加载的情况
- 利用Tushare获取A股所有股票代码
- java算术运算符乘方_用java编写计算器 能够实现简单的加、减、乘、除、乘方、开方运算等;...
- 基于位置指纹匹配的定位算法
- php开源 会员资料,会员详情/会员信息/用户信息
- mysql 与sqlserver对比?哪个更好用?
- web漏洞扫描器原理_【技术分享】漏洞扫描技巧篇Web 漏洞扫描器