【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处 由于 ...
随机推荐
- shell 调试 `<<' is not matched
我的这段脚本,验证数据库连接是否正常: #! /bin/sh...while ..do....sqlplus $user/ $passwd@$sid <<!quit;! ... 单独执行 ...
- Dev之GridControl详解
Dev控件中的表格控件GridControl控件非常强大.不过,一些细枝末节的地方有时候用起来不好找挺讨厌的.使用过程中,多半借助Demo和英文帮助文档.网上具体的使用方法也多半零碎.偶遇一个简单而且 ...
- P1062 数列
题目描述 给定一个正整数k(3≤k≤15),把所有k的方幂及所有有限个互不相等的k的方幂之和构成一个递增的序列,例如,当k=3时,这个序列是: 1,3,4,9,10,12,13,… (该序列实际上就是 ...
- greendao3.2.3配置时遇到的问题
这两天我一直在研究greendao这个框架,我在GitHub下载了 greendao3.2.2:https://github.com/greenrobot/greenDAO,照着网址里面来配置: // ...
- Sql Server中清空所有数据表中的记录
Sql Server中清空所有数据表中的记录 清空所有数据表中的记录: 代码如下:exec sp_msforeachtable @Command1 ='truncate table ?'删除所有数据 ...
- python学习日记-01
一. 熟悉 在正式介绍python之前,了解下面两个基本操作对后面的学习是有好处的: (1)基本的输入输出 可以在Python中使用+.-.*./直接进行四则运算. >>> 1+3* ...
- iTOP-4418/6818开发板支持双屏异显,双屏同显
iTOP-4418/6818开发板平台安卓系统下支持双屏异显,双屏同显,客户可按照不同用途,分别播放适合屏幕显示方式的内容 ,如HDMI屏幕和LCD屏幕显示不同内容, 一个屏幕播放广告,另一个屏幕运行 ...
- Activiti数据库表结构(表详细版)
http://blog.csdn.net/hj7jay/article/details/51302829 1 Activiti数据库表结构 1.1 数据库表名说明 Activiti工作流总 ...
- Android(java)学习笔记191:ContentProvider使用之利用ContentProvider备份和还原手机短信(掌握)
1. 通过阅读系统源码我们知道: 短信的内容提供者: content://sms/ 系统短信的内容提供者的路径 2. 利用ContentProvider备份和还原手机短信: (1 ...
- CAD绘制固定矩形标注(网页版)
js中实现代码说明: function DoFixRectComment() { var ent = mxOcx.DrawCustomEntity("TestMxCustomEntity&q ...