题意:http://www.lydsy.com/JudgeOnline/problem.php?id=1902

sol  :一眼可以看出此题应用了lucas定理(逃~

   将n,m都化为p进制,记为a[],b[]

   则对于我们所求的C(n,m)%p,有C(n,m)=∏ (i from 1 to n) (p^i)*(C(a[i],b[i]))%p

   若C(n,m)为p的倍数,则存在某一位b[i]>a[i]

   即此题要求有多少个<n的数,且其p进制下存在某一位比n的p进制的对应位大

   求出a[]后直接数位dp即可

#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
using namespace std;
const int Mx=;
struct Node
{
int n,g[];
void pre(int k) {n=; g[]=k;}
Node operator*(const int &b)
{
Node c; int y=; c.n=n;
if(!b) { c.pre(); return c; }
for(int i=;i<=n;i++) { y+=g[i]*b; c.g[i]=y%; y/=; }
while(y) { c.g[++c.n]=y%; y/=; }
return c;
}
Node operator+(const Node &b)
{
Node c; int y=,p;
if(n>b.n)
{
c.n=n; for(int i=;i<=n;i++) c.g[i]=g[i]; p=b.n;
for(int i=;i<=b.n;i++) { y+=b.g[i]+c.g[i]; c.g[i]=y%; y/=; }
while(y&&p<n) { y+=c.g[++p]; c.g[p]=y%; y/=; }
}
else
{
c.n=b.n; for(int i=;i<=b.n;i++) c.g[i]=b.g[i]; p=n;
for(int i=;i<=n;i++) { y+=g[i]+c.g[i]; c.g[i]=y%; y/=; }
while(y&&p<b.n) { y+=c.g[++p]; c.g[p]=y%; y/=; }
}
if(y) c.g[++c.n]=y;
return c;
}
int operator/(const int &b)
{
int y=;
for(int i=n;i>=;i--)
{
y=y*+g[i];
if (y<b) g[i]=;
else {g[i]=y/b; y%=b;}
}
while(n>&&!g[n]) n--;
return y;
}
void read()
{
char s[Mx]; scanf("%s",s+); n=strlen(s+);
for(int i=;i<=n;i++) g[n+-i]=s[i]-'';
}
} x,mul,ans,f[Mx];
int p,a[Mx],cnt;
int main()
{
x.read(); scanf("%d",&p);
while(x.n!=||x.g[]) a[++cnt]=x/p;
f[].pre(),mul.pre(),ans.pre();
for(int i=;i<cnt;i++)
{
f[i]=mul*(p--a[i]);
f[i]=f[i]+f[i-]*(a[i]+);
mul=mul*p;
}
for(int i=cnt;i>;i--) ans=ans+f[i-]*a[i];
for(int i=ans.n;i>=;i--) printf("%d",ans.g[i]);
return ;
}

bzoj1902【Zju2116】 Christopher的更多相关文章

  1. 【NLP】揭秘马尔可夫模型神秘面纱系列文章(一)

    初识马尔可夫和马尔可夫链 作者:白宁超 2016年7月10日20:34:20 摘要:最早接触马尔可夫模型的定义源于吴军先生<数学之美>一书,起初觉得深奥难懂且无什么用场.直到学习自然语言处 ...

  2. 【NLP】揭秘马尔可夫模型神秘面纱系列文章(二)

    马尔可夫模型与隐马尔可夫模型 作者:白宁超 2016年7月11日15:31:11 摘要:最早接触马尔可夫模型的定义源于吴军先生<数学之美>一书,起初觉得深奥难懂且无什么用场.直到学习自然语 ...

  3. 【NLP】揭秘马尔可夫模型神秘面纱系列文章(三)

    向前算法解决隐马尔可夫模型似然度问题 作者:白宁超 2016年7月11日22:54:57 摘要:最早接触马尔可夫模型的定义源于吴军先生<数学之美>一书,起初觉得深奥难懂且无什么用场.直到学 ...

  4. 【NLP】揭秘马尔可夫模型神秘面纱系列文章(四)

    维特比算法解决隐马尔可夫模型解码问题(中文句法标注) 作者:白宁超 2016年7月12日14:08:28 摘要:最早接触马尔可夫模型的定义源于吴军先生<数学之美>一书,起初觉得深奥难懂且无 ...

  5. 【NLP】揭秘马尔可夫模型神秘面纱系列文章(五)

    向前向后算法解决隐马尔可夫模型机器学习问题 作者:白宁超 2016年7月12日14:28:10 摘要:最早接触马尔可夫模型的定义源于吴军先生<数学之美>一书,起初觉得深奥难懂且无什么用场. ...

  6. 【翻译】理解 LSTM 网络

    目录 理解 LSTM 网络 递归神经网络 长期依赖性问题 LSTM 网络 LSTM 的核心想法 逐步解析 LSTM 的流程 长短期记忆的变种 结论 鸣谢 本文翻译自 Christopher Olah ...

  7. 【翻译】理解 LSTM 及其图示

    目录 理解 LSTM 及其图示 本文翻译自 Shi Yan 的博文 Understanding LSTM and its diagrams,原文阐释了作者对 Christopher Olah 博文 U ...

  8. Python高手之路【六】python基础之字符串格式化

    Python的字符串格式化有两种方式: 百分号方式.format方式 百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存.[PEP-3101] This ...

  9. 【原】谈谈对Objective-C中代理模式的误解

    [原]谈谈对Objective-C中代理模式的误解 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 这篇文章主要是对代理模式和委托模式进行了对比,个人认为Objective ...

随机推荐

  1. highcharts与ajax的应用

    整理一份完整的例子,以供参考: <1>页面chart.html: <span style="font-size:14px;"><!DOCTYPE HT ...

  2. Bootstrap 历练实例 - 折叠(Collapse)插件方法

    方法 下面是一些折叠(Collapse)插件中有用的方法: 方法 描述 实例 Options:.collapse(options) 激活内容为可折叠元素.接受一个可选的 options 对象. $(' ...

  3. C# StreamReader对象

    1.读取文件 输入流用于从外部源读取数据,在很多情况下,数据源可以是磁盘上的文件或网络的某些位置,任何可能发送数据的位置都可以是数据源,比如网络应用程序,web服务,甚至是控制台.StreamRead ...

  4. 自动化运维工具——ansible命令使用(二)

    一.Ansible系列命令使用 ansible命令执行过程 1 . 加载自己的配置文件 默认/etc/ansible/ansible.cfg 2 . 加载自己对应的模块文件,如command 3 . ...

  5. mui的选项卡js选中指定项

    dom结构:在一定条件下想默认选中第二个选项卡 <div id="segmentedControl" class="mui-segmented-control mu ...

  6. Android系统中标准Intent的使用

    Android系统用于Activity的标准Intent 1.根据联系人ID显示联系人信息= Intent intent=new Intent(); intent.setAction(Intent.A ...

  7. [译]The Python Tutorial#12. Virtual Environments and Packages

    [译]The Python Tutorial#Virtual Environments and Packages 12.1 Introduction Python应用经常使用不属于标准库的包和模块.应 ...

  8. Face The Right Way POJ - 3276 (开关问题)

    Face The Right Way Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 6707   Accepted: 312 ...

  9. [BZOJ2331]地板(插头DP)

    Description lxhgww的小名叫"小L",这是因为他总是很喜欢L型的东西.小L家的客厅是一个的矩形,现在他想用L型的地板来铺满整个客厅,客厅里有些位置有柱子,不能铺地板 ...

  10. Sublime Text配置python以及快捷键总结

    1.打开Tools > Build System > New Build System.. 2.点击New Build System后,会生成一个空配置文件,在这个配置文件内覆盖配置信息, ...