题目大意:字符的字典序依次递增才是合法的字符串,将字符串依次标号如:a-1 b-2 ... z-26 ab-27 bc-52。

  为什么题解都是组合数学的...我觉得数位dp很好写啊(逃

  f[pos][pre]前pos位,前一位是pre有几个满足条件的字符串,其实等同于这个字符串的序号是多少

  好像数位dp的博客真没什么东西好写的...

#include<iostream>
#include<cstring>
#include<cstdlib>
#include<cstdio>
using namespace std;
char s[];
int dp[][],a[];
int dfs(int pos,int pre,bool lead,bool limit)
{
if(pos==)
if(lead)return ;else return ;
if(!limit && dp[pos][pre]!=-)return dp[pos][pre];
int up=limit?a[pos]:;
int ans=,i;
if(lead)i=pre;else i=pre+;
for(;i<=up;i++)
ans+=dfs(pos-,i,lead && i==,limit && i==a[pos]);
if(!limit)dp[pos][pre]=ans;
return ans;
}
int solve()
{
int pos=;
for(int i=;i<strlen(s)-;i++)
if(s[i]>=s[i+])return ;
for(int i=strlen(s)-;i>=;i--)
a[++pos]=s[i]-'a'+;
return dfs(pos,,,);
}
int main()
{
memset(dp,-,sizeof(dp));
scanf("%s",s);
printf("%d\n",solve());
}

最新文章

  1. 工业串口和网络软件通讯平台(SuperIO 2.1)更新发布
  2. Java:基于LinkedList实现栈和队列
  3. MySql中的tinying,smallint,int,bigint的类型介绍——转载
  4. redis的备份
  5. virtual box ubuntu卡在开机光标
  6. iOS - OC NSSet 集合
  7. GS界面上显示的重要参考数据
  8. 【M11】禁止异常流出析构方法之外
  9. java异常练习2
  10. cocoapods使用指南
  11. 以下是jQuery和JavaScript实现相同操作的等价代码。
  12. poj 1236 Network of Schools(tarjan+缩点)
  13. Android 使用 array.xml
  14. 10-UIKit(UIDatePicker、UIPickerView、UIWebView、Storyboard)
  15. 用大白话扯扯那&quot;神奇&quot;的面向对象编程思维(一)
  16. Java之Frame
  17. Struts2多文件上传原理和示例
  18. Linux 小知识翻译 - 「syslog」
  19. vs2008快捷键
  20. polarssl rsa &amp; aes 加密与解密

热门文章

  1. 在Linux CentOS7系统中搭建LNMP
  2. &lt;cfloat&gt; (float.h)
  3. [Clr via C#读书笔记]Cp1CLR执行模型
  4. BAT 批处理脚本 教程 【转】
  5. 用命令从mysql中导出/导入表结构及数据
  6. 一些容易记混的c++相关知识点
  7. NYOJ 35 表达式求值(逆波兰式求值)
  8. android入门 — ListView的优化
  9. C# Winform防止闪频和再次运行
  10. java中sql语句能不能加分号的问题?