Code POJ - 1850 组合数学】的更多相关文章

题意 :字符串从a=1 b=2 c=3....z=26  ab=27开始编号 每个都是升序的 给出字符串问是几号 思路:主要是要看n位字符串有多少个 这里需要用组合数学的思想  组合数用杨辉三角形递推出 参考:https://blog.csdn.net/lyy289065406/article/details/6648492 然后就没有什么难度了 #include<cstdio> #include<cstring> using namespace std; ; char s[max…
[POJ 1850] Code 还是非常想说 数位dp真的非常方便! !. 数位dp真的非常方便!.! 数位dp真的非常方便! !! 重要的事说三遍 该题转换规则跟进制差点儿相同 到z时进一位 如az下位为bc 上位必须比下位小 依据这个规则搜出全部情况就可以 #include <iostream> #include <cstdio> #include <cstring> using namespace std; int dp[11][27]; int digit[11…
Code Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 8256 Accepted: 3906 Description Transmitting and memorizing information is a task that requires different coding systems for the best use of the available space. A well known system is t…
题目:http://poj.org/problem?id=1850 题意:按给定的规则给字母编号. 一个很简单的题目,但是却做了好久.................................. #include<iostream> #include<cstdio> #include<cstring> using namespace std; ][]; void init()//用杨辉三角的方法求组合数,C(n,m) { int i,j; ; i<=; i+…
题目大意:字符的字典序依次递增才是合法的字符串,将字符串依次标号如:a-1 b-2 ... z-26 ab-27 bc-52. 为什么题解都是组合数学的...我觉得数位dp很好写啊(逃 f[pos][pre]前pos位,前一位是pre有几个满足条件的字符串,其实等同于这个字符串的序号是多少 好像数位dp的博客真没什么东西好写的... #include<iostream> #include<cstring> #include<cstdlib> #include<cs…
Code Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 8710   Accepted: 4141 Description Transmitting and memorizing information is a task that requires different coding systems for the best use of the available space. A well known system…
https://vjudge.net/problem/POJ-1850 题意 输出某字符串在字典中的位置.字符串不合规则时输出0. 分析 首先判断字符串合法性,也就是判断是不是升序排列的.如果符合,以“vwxyz”为例,先计算长度小于5的串. 长度为1:C(26,1) 长度为2:由于规定了是升序序列,那么只要字母确定了,排列的情况也就确定了,于是此时可以认为方案数就等于从26个字母里任选两个出来,即C(26,2),经验证也是正确的. 长度为3:同上,C(26,3),长度为4:C(26,4). 接…
组合数学.... Code Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 7202 Accepted: 3361 Description Transmitting and memorizing information is a task that requires different coding systems for the best use of the available space. A well known sy…
http://poj.org/problem?id=1850 题意 :给定字符串,系统是用字符串组成的,字符串是按字典序排的.编码系统有三条规则,1这些的单词的长度是由小到大的,2相同长度的按字母在字典序的顺序排的,3 a-1,b-2,.....z-26,ab-27,..........,az-51,bc-52,............,vwxyz - 83681,..................输入的是长度不超过10的全为小写英语字母的字符串,让你输出对应的数字,如果并没有按照顺序,则输出…
Code Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 7913   Accepted: 3709 Description Transmitting and memorizing information is a task that requires different coding systems for the best use of the available space. A well known system…
Transmitting and memorizing information is a task that requires different coding systems for the best use of the available space. A well known system is that one where a number is associated to a character sequence. It is considered that the words ar…
大致题意:(与POJ1496基本一致) 输出某个str字符串在字典中的位置,由于字典是从a=1开始的,因此str的位置值就是 在str前面所有字符串的个数 +1 规定输入的字符串必须是升序排列.不降序列是非法字符串 不要求用循环输入去输入若干组字符串,但若输入非法字符串则输出0,且结束程序,这是和POJ1496最猥琐的区别,很多同学只注意到规定str的长度不同,以为把str数组长度改一下直接复制就能AC再多刷一题了,殊不知老是WA却找不到原因,大概就是这里出问题了 本题Str最长为10个字符 /…
题意: 1 如果是严格升序的字母字符串,那么可以输出非0解码,否则不能译码输出0 2 字符串解码 遵循递增原则,其值为 到现在为止的所有按字母序小于该字符串的数量 + 1; #include <iostream> using namespace std; char ans[11]; int a[10]; int c[27][27]; long long f[10]; void generc(){//生成组合数 for(int i=1;i<27;i++)c[i][0]=c[i][i]=1;…
http://poj.org/problem?id=1850 -----------------http://poj.org/problem?id=1496 两题解法类似..本题为组合数学的题,要求所给字符串在排列中的位置.所用的方法为暴力枚举. 对于长度为1的字符串有a,b,c,d.......26个:长度为2的字符串有 a开头时有ab,ac,ad,ae,af.....(25,1) 25个 //()为组合数 b开头时有bc,bd,de,.....(24,1) 24个 c开头时有cd,ce,cf…
大神们的题解我一个都没看懂........... 十分的尴尬 题意:算出闭区间内二进制中0的个数大于等于1的个数的数字有多少个 思路: 组合数学(n小于500的时候都可以出解,只不过高精比较麻烦). 这道题还算比较仁慈... Discuss里面有一段说得挺好的 看完各家算法,尝试独立分析一下: 以sample为例子 [2,12]区间的RoundNumbers(简称RN)个数:Rn[2,12]=Rn[0,12]-Rn[0,1] 即:Rn[start,finish]=Rn[0,finish]-Rn[…
#include <iostream> #include <string> using namespace std; int fac(int num); int C(int n,int m); int com( int n, int k ); int main() { //freopen("acm.acm","r",stdin); string s; int sum; int j; int i; // cout<<com(4,2)…
#include<iostream> #include<cstdio> #include<cstring> using namespace std; ][],l,ans; ]; void Get_f() { ;i<=;i++) f[i][]=; ;j<=;j++) ;i<=;i++) ;k<=;k++) f[i][j]+=f[k][j-]; } int main() { scanf(); l=strlen(s+);s[]=; ;i<=l;i…
题意:格路问题 没什么难度 难点在于如何快速计算相对较大的组合数 思路:运用手写计算组合数的方式进行计算  如c(8,3) 如果手算就是   8*7*6/(3*2*1)这样可以很快得解出 计算代码为:(精度没问题? 反正能过) u c(u n,u m){ u a=n+m; u b=min(n,m); ; ){ ans*=(1.0*a--)/(1.0*b--); } ans+=0.5;//四舍五入 return u(ans); } AC代码: #include<cstdio> #include&…
题意: 就是数位哈密顿回路 解析: 是就算了...尼玛还不能直接用dfs,得手动开栈模拟dfs emm...看了老大半天才看的一知半解 #include <iostream> #include <cstdio> #include <sstream> #include <cstring> #include <map> #include <cctype> #include <set> #include <vector&g…
求出一个长度为10^n+n-1的序列,其中包含了所有的n位数(一共10^n个数,从00000(n个0)~10^n-1) /* 典型的欧拉回路题目 对于n=4为密码想要序列最短 那么 1234 234? 这两个一定挨着, 我们就把123和34?之间连一条边权为1234?的边,这样把所有的边只找一遍, 就把所有的点连了起来 */ #include<cstdio> #include<cstring> #include<iostream> #define M 1000010 u…
OJ上的一些水题(可用来练手和增加自信) (POJ 3299,POJ 2159,POJ 2739,POJ 1083,POJ 2262,POJ 1503,POJ 3006,POJ 2255,POJ 3094) 初期: 一.基本算法: 枚举. (POJ 1753,POJ 2965) 贪心(POJ 1328,POJ 2109,POJ 2586) 递归和分治法. 递推. 构造法.(POJ 3295) 模拟法.(POJ 1068,POJ 2632,POJ 1573,POJ 2993,POJ 2996) 二…
We remind that the permutation of some final set is a one-to-one mapping of the set onto itself. Less formally, that is a way to reorder elements of the set. For example, one can define a permutation of the set {1,2,3,4,5} as follows:  This record de…
著名题单,最初来源不详.直接来源:http://blog.csdn.net/a1dark/article/details/11714009 OJ上的一些水题(可用来练手和增加自信) (POJ 3299,POJ 2159,POJ 2739,POJ 1083,POJ 2262,POJ 1503,POJ 3006,POJ 2255,POJ 3094) 初期: 一.基本算法: 枚举. (POJ 1753,POJ 2965) 贪心(POJ 1328,POJ 2109,POJ 2586) 递归和分治法. 递…
Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 22736   Accepted: 10144 Description Farmer John completed his new barn just last week, complete with all the latest milking technology. Unfortunately, due to engineering problems, all the s…
DP/四边形不等式 邮局,经典的四边形不等式例题! 关于四边形不等式的学习请看 赵爽论文<动态规划加速原理之四边形不等式> 题目总结&题解:http://blog.csdn.net/shiwei408/article/details/8791011 一个显而易见的结论是:对[l,r]这个区间内放一个邮局,放在中间的村子代价最小(类似中位数的感觉?...) 这道题我一开始想动规方程的时候想成[石子合并]那种了……实际上dp[i][j]表示的是前 j 个村庄一共建了 i 个邮局的最小花费……
DP/单调队列优化 题意:k个人粉刷总长为n的墙壁(或者说栅栏?),每个人有一个必刷点s[i](这个人也可以一点也不刷,如果刷就必须刷这个点),最大粉刷长度l[i](必须是连续粉刷一段),和粉刷一格的报酬p[i],每格不能重复粉刷,求最大报酬总和. 唉……orz了一下proverbs,表示列dp方程是我的硬伤啊…… Tricks: 转移!这个转移的边界没搞清……从$ s[i]-l[i] $到$ s[i]-1 $都是可行的,转移到的状态是$s[i]$到$s[i]+l[i]-1$ 排序!T_T很明显…
K短路/A* 经(luo)典(ti) K短路题目= = K短路学习:http://www.cnblogs.com/Hilda/p/3226692.html 流程: 先把所有边逆向,做一遍dijkstra,得到估价函数h(x)(x到T的最短路距离) f(x)=g(x)+h(x) 按f(x)维护一个堆……T第k次出堆时的g(T)即为ans 另外,需要特判:如果S==T,k++ Source Code Problem: User: sdfzyhy Memory: 11260K Time: 141MS…
中国剩余定理/扩展欧几里得 题目大意:求一般模线性方程组的解(不满足模数两两互质) solution:对于两个方程 \[ \begin{cases} m \equiv r_1 \pmod {a_1} \\ m \equiv r_2 \pmod{a_2} \end{cases} \] 我们可以列出式子 $$ a_1x+r_1=a_2y+r_2 $$ 利用扩展欧几里得解出一个可行解$M'$.那么我们就可以将两个限制条件合为一个: $$ m \equiv M' \pmod{ lcm(a_1,a_2)}…
网络流/最大流/二分or贪心 题目大意:有n个队伍,两两之间有一场比赛,胜者得分+1,负者得分+0,问最多有几只队伍打败了所有得分比他高的队伍? 可以想到如果存在这样的“strong king”那么一定是胜场较多的队伍……(比他赢得多的队伍num少,而他总共赢得场数times足够多,至少得满足times>=num吧?) 那么我们可以二分/枚举k,表示胜场前k多的队伍是stong king.(这题范围小,只有10支队伍,如果队伍较多我们就需要二分了……) 最最丧心病狂的是!!!出题人TMD卡读入!…
网络流/最大权闭合子图 胡伯涛论文里有讲…… sigh……细节处理太伤心了,先是count和ans输出弄反了,改过来顺序时又忘了必须先算出来ans!要是不执行一下Dinic的话count就无意义了……然后就是long long的问题……傻逼题白白WA了6次……sigh果然不能晚上搞…… Source Code Problem: User: sdfzyhy Memory: 2664K Time: 344MS Language: G++ Result: Accepted Source Code //…