poj1496 Word Index / poj1850 Code(组合数学)
题意:输出若干个给定的字符串($length<=10$)在字典序中的位置,字符串中的字母必须严格递增。
读取到非法字符串时,输出“0”,终止程序。(poj1496:继续读取)
我们分成2种情况讨论字典序小于给定字符串的字符串个数
1.长度比给定字符串小
其实长度为$i$的字符串的个数就是$C(26,i)$
因为我们随机选取$i$个字符后,从小到大依次取出,是可以保证字符串是有序的。
2.长度等于给定字符串
我们枚举每一位,计算从该位开始小于给定字符串的个数,同样可以用组合数计算。
预处理组合数一下........
#include<iostream>
#include<cstdio>
#include<cstring>
#define re register
using namespace std;
char a[];
int C[][];
int main(){
for(int i=;i<=;++i)
for(int j=;j<=i;++j)//组合数预处理
C[i][j]=(!j||i==j)?:C[i-][j]+C[i-][j-];
while(cin>>a){//用scanf就OLE(大雾)
int len=strlen(a),ans=; bool flag=;
for(int i=;i<len;++i)
if(a[i]<=a[i-]){
printf("0\n");
flag=; break;
}
if(flag) continue;//1850改为return 0;
for(int i=;i<len;++i) ans+=C[][i];//长度<len
for(int i=;i<len;++i){//长度==len,字典序排名在给定串前,枚举每一位
for(char ch=i?a[i-]+:'a';ch<a[i];++ch)//枚举每个小于a[i]的字母
ans+=C['z'-ch][len-i-];
}printf("%d\n",ans);
}return ;
}
poj1496/poj1850 Code
poj1496 Word Index / poj1850 Code(组合数学)的更多相关文章
- POJ1850——Code(组合数学)
Code DescriptionTransmitting and memorizing information is a task that requires different coding sys ...
- POJ 1496 Word Index
组合数学....和上一题是一样的.... Word Index Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 4303 Acce ...
- poj1850 Code【组合数学】By cellur925
题意: * 按照字典序的顺序从小写字母 a 开始按顺序给出序列 (序列中都为升序字符串)* a - 1* b - 2* ...* z - 26* ab - 27* ...* az - 51* bc - ...
- Code(组合数学)
Code Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 8766 Accepted: 4168 Description Tran ...
- poj1850 Code
Code Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 10059 Accepted: 4816 Description ...
- POJ 1850:Code 组合数学
Code Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 8710 Accepted: 4141 Description ...
- Discuz! x3.1 /utility/convert/index.php Code Execution Vul
catalog . 漏洞描述 . 漏洞触发条件 . 漏洞影响范围 . 漏洞代码分析 . 防御方法 . 攻防思考 1. 漏洞描述 Discuz! x3.1的插件/utility/convert/inde ...
- poj:1850 Code(组合数学?数位dp!)
题目大意:字符的字典序依次递增才是合法的字符串,将字符串依次标号如:a-1 b-2 ... z-26 ab-27 bc-52. 为什么题解都是组合数学的...我觉得数位dp很好写啊(逃 f[pos][ ...
- POJ1850 Code(组合+康托展开)
题目问一个合法字符串的字典序是第几个,合法的字符串是指里面的字符严格递增. 先判断合不合法,然后用类似康托展开的过程去求.大概过程就是用组合数算出某长度某前缀有几个,累加起来. 真难一遍写对.. #i ...
随机推荐
- PHP 允许Ajax跨域访问 (Access-Control-Allow-Origin)
Ajax访问php,报错 php顶部加上即可: header("Access-Control-Allow-Origin: *");
- 【BZOJ4196】[Noi2015]软件包管理器 树链剖分
[Noi2015]软件包管理器 树链剖分 Description Linux用户和OSX用户一定对软件包管理器不会陌生.通过软件包管理器,你可以通过一行命令安装某一个软件包,然后软件包管理器会帮助你从 ...
- Java定时器和Quartz使用
一.Java普通自定义定时器 /** * 自定义一个定时器 * @author lw */ public class MyTimer extends Thread{ private Long time ...
- intelliij jdea 的file没有setting的解决方法
- 【gulp】前端自动化工具---gulp的使用(一)------【巷子】
什么是gulp? 基于node的自动化构建工具 扩展:开发的时候分为2个节点一个是开发阶段 另一个是部署阶段 开发阶段:源文件不会被压缩 部署阶段:所有文 ...
- 3.html+.ashx(删除学生信息)
C03ListStu.ashx 0:false(删除);1:true(正常). (数据库里定义个BOOL型,TRUE表示正常FALSE表示删除) <html> <head> & ...
- 自定义Realm解析
自定义Realm解析---------------------------------------> /* * Copyright 2005-2013 shopxx.net. All right ...
- python linux 自动补全 tab.py
#!/usr/bin/env python # python startup file import sys import readline import rlcompleter import ate ...
- 多线程下载图片,滑动tableView崩溃--资源抢夺问题
最近练习使用NSoperation模拟SDWebImage下载图片,发生了崩溃的问题,还专门写博客记录这件事情: http://www.cnblogs.com/tufei7/p/7074030.htm ...
- uchome四大常用入口文件
一.四大常用入口文件 cp.php 编辑日志.相册.活动等等相关编辑操作基本上都从这个文件入口 do.php 登录.注册.找回密码.相册批量上传.在需要密码的情况 ...