【HDOJ6148】Valley Numer(数位DP)
题意:

1≤T≤200
● 1≤length(N)≤100
思路:
设f[i,j,k,l]为第i位为j,前i位是否贴上限(0/1),递减或递增(0/1)方案数
g[i,j,k]为不到n位,第i位为j,递减或递增方案数
const mo=;
var f:array[..,..,..,..]of longint;
g:array[..,..,..]of longint;
a:array[..]of longint;
v,n,i,j,k,l,jj,kk,ans,cas,ll:longint;
ch:string; begin readln(cas);
for v:= to cas do
begin
readln(ch);
n:=length(ch);
for i:= to n do a[i]:=;
for i:= to n do a[i]:=ord(ch[i])-ord('');
for i:= to n do
for j:= to do
for k:= to do
for l:= to do f[i,j,k,l]:=;
for i:= to a[]- do f[,i,,]:=;
f[,a[],,]:=;
for i:= to n do
for j:= to do
for k:= to do
for l:= to do
for jj:= to do
begin
if k= then kk:=;
if (k=)and(jj<a[i]) then kk:=;
if (k=)and(jj=a[i]) then kk:=;
if (k=)and(jj>a[i]) then break;
for ll:=l to do
begin
if (ll=)and(j<jj) then continue;
if (ll=)and(j>jj) then continue;
if (ll<>l)and(j=jj) then continue;
f[i,jj,kk,ll]:=(f[i,jj,kk,ll]+f[i-,j,k,l]) mod mo;
end;
end;
for i:= to n- do
for j:= to do
for k:= to do g[i,j,k]:=;
for i:= to do g[,i,]:=;
for i:= to n- do
for j:= to do
for k:= to do
for jj:= to do
for kk:=k to do
begin
if (kk=)and(j<jj) then continue;
if (kk=)and(j>jj) then continue;
if (k<>kk)and(j=jj) then continue;
g[i,jj,kk]:=(g[i,jj,kk]+g[i-,j,k]) mod mo;
end;
ans:=;
for j:= to do
for k:= to do
for l:= to do ans:=(ans+f[n,j,k,l]) mod mo;
for i:= to n- do
for j:= to do
for k:= to do ans:=(ans+g[i,j,k]) mod mo;
writeln(ans);
end; end.
【HDOJ6148】Valley Numer(数位DP)的更多相关文章
- HDU 6148 Valley Numer (数位DP)
题意:... 析:好久没写数位DP了,几乎就是不会了.... dp[i][last][s] 表示前 i 位上一位是 last,当前的状态是 s,0表示非上升,1 表示非下降,然后就很简单了,只有 0 ...
- 【HDU】6148 Valley Numer 数位DP
[算法]数位DP [题意]定义V-number为从左到看单位数字未出现先递增后递减现象的数字,求0~N中满足条件的数字个数.T<=200,lenth(n)<=100 [题解]百度之星201 ...
- 2017"百度之星"程序设计大赛 - 复赛1005&&HDU 6148 Valley Numer【数位dp】
Valley Numer Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Tota ...
- 【hdu6148】Valley Numer【数位dp模板题】
题意 对于每组数据给出一个整数n(length(n)<=100),找出不大于n的数字中有多少是Valley Numer.对于Valley的定义是它每一位的数字要么是递增,要么是递减,要么是先递减 ...
- 【HDU-6148】 Valley Numer(数位dp)
百度之星2017复赛1005 HDU-6148 Valley Numer 题意 不出现上升后直接下降数位的数,不超过n的有几个.前导零不算. 题解 dfs(当前数位的位置len,这位的数num,是否在 ...
- hdu6148 百度之星程序设计竞赛复赛 (数位dp)
Valley Numer Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Tota ...
- 【专题】数位DP
[资料] ★记忆化搜索:数位dp总结 之 从入门到模板 by wust_wenhao 论文:浅谈数位类统计问题 数位计数问题解法研究 [记忆化搜索] 数位:数字从低位到高位依次为0~len-1. 高位 ...
- 【百度之星复赛】T5 Valley Numer
Valley Numer Problem Description 众所周知,度度熊非常喜欢数字. 它最近发明了一种新的数字:Valley Number,像山谷一样的数字. 当一个数字,从左到右依次看过 ...
- # 数位DP入坑
Hdu 2089 不要62 #include<iostream> #include<cstdio> #include<cmath> #include<cstr ...
- 数位DP复习笔记
前言 复习笔记第五篇.(由于某些原因(见下),放到了第六篇后面更新)CSP-S RP++. luogu 的难度评级完全不对,所以换了顺序,换了别的题目.有点乱,见谅.要骂就骂洛谷吧,原因在T2处 由于 ...
随机推荐
- ECMAScript6之箭头函数
2015年6月17日,ECMAScript 6发布正式版本,即ECMAScript 2015. 函数作为js语言中的一等公民.自然Es6中推出的箭头函数(=>)也是备受瞩目的.那我们接下来看下传 ...
- Android动态权限申请
Android系统中,目前Dangerous级别的权限都需要动态申请.步骤如下: 1.AndroidManfiest.xml中申明需要的动态权限 <?xml version="1.0& ...
- 微信小程序组件解读和分析:十四、slider滑动选择器
slider滑动选择器组件说明: 滑动选择器. slider滑动选择器示例代码运行效果如下: 下面是WXML代码: [XML] 纯文本查看 复制代码 ? 01 02 03 04 05 06 07 08 ...
- 解决QTreeView不能设置列宽的问题
转载请注明出处:http://www.cnblogs.com/dachen408/p/7206738.html 设置model之前: ui.treeView->setColumnWidth(0, ...
- Matlab基础之单元数组和结构数组
Matlab基础之单元数组和结构数组 前言: 单元数组和结构数组是一种新的数据类型,能将不同类型.不同维数的数组组合在一起,从而方便对不同的数据类型方便管理和维护. 如上图所示的2*2矩阵中,分别存储 ...
- 大众点评APP分析随笔
移动APP:大众点评 一.最核心功能:店铺评价功能,用户可以通过此功能对商家进行评分,也可以获取其他人对商家的评分信息. 二.核心功能满足的需求: 1. 去过商家消费的用户:用户已经体验的商家提供的产 ...
- 恩智浦Freescale Cortex-A9 迅为IMX6开发板平台初体验
iTOP-i.MX6 开发板预装 Android4.4 系统,采用 9.7 寸(或者 7 寸或者 4.3 寸)IPS 屏 幕,至少 5 点以上触控,操作流畅,无论是高清视频.游戏等都会有上佳的表现,实 ...
- AIX上安装oracle10g
AIX上安装oracle10g: 建议将oracle软件装在本地磁盘,数据文件放在共享存储上 安装数据库需提前规划的工作: DBCA 创建数据库时,如果勾了EM选项,则会检测监听. 首先rootpre ...
- CAD交互绘制直线(com接口)
用户可以在控件视区任意位置绘制直线. 主要用到函数说明: _DMxDrawX::DrawLine 绘制一个直线.详细说明如下: 参数 说明 DOUBLE dX1 直线的开始点x坐标 DOUBLE dY ...
- mac 目录颜色设置
1 export CLICOLOR=1 2 export LSCOLORS=gxfxaxdxcxegedabagacad