题意: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. CPP-基础:C_C++变量命名规则

    C_C++变量命名规则 变量命名规则是为了增强代码的可读性和容易维护性.以下为C++必须遵守的变量命名规则: 1. 变量名只能是字母(A-Z,a-z)和数字(0-9)或者下划线(_)组成. 2. 第一 ...

  2. Uva 长城守卫——1335 - Beijing Guards

    二分查找+一定的技巧 #include<iostream> using namespace std; +; int n,r[maxn],Left[maxn],Right[maxn];//因 ...

  3. 【前端_js】Chrome禁止缓存的方法

    在前端开发中,浏览器缓存使得我们改了代码后页面不变,得经常手动清理缓存. 1.按如下操作即可禁用浏览器缓存, 这种方法基本能够做到完全禁止缓存,然而缺点是必须要将开发模式一直打开,占用屏幕空间.而且, ...

  4. JDBC的连接mySql的基本知识

    这只是我自己的随笔博客~,用于偶尔回忆知识,可能存在一些错误,如有错误,欢迎指正~ 首先对于JDBC连接MySQL,要了解基本的框架结构 画的比较烂,大约就是这样的结构 然后看一下具体实现的 代码:: ...

  5. 六、MySQL 删除数据库

    MySQL 删除数据库 使用普通用户登陆 MySQL 服务器,你可能需要特定的权限来创建或者删除 MySQL 数据库,所以我们这边使用 root 用户登录,root 用户拥有最高权限. 在删除数据库过 ...

  6. Session 会话保持

    本文将详细讨论session的工作机制并且对在Java web application中应用session机制时常见的问题作出解答 一.术语session session,中文经常翻译为会话,其本来的 ...

  7. vue 项目中使用mock假数据实现前后端分离

    也是查了很多的资料,整理出来.实现了前后端的分离,用到的技术vue-cli,webpack,node,json-server.首先全局安装json-server cnpm i json-server ...

  8. java util - Hex转换工具

    测试代码 package cn.java.codec.hex; public class Test { public static void main(String[] args) { String ...

  9. Codeforces Round #443 (Div. 2) C 位运算

    C. Short Program time limit per test 2 seconds memory limit per test 256 megabytes input standard in ...

  10. V4L2学习(五)VIVI虚拟摄像头驱动

    概述 前面简单分析了内核中虚拟摄像头驱动 vivi 的框架与实现,本文参考 vivi 来写一个虚拟摄像头驱动,查询.设置视频格式相对简单,难点在于 vb2_buf 的处理过程. 数据采集流程分析 在我 ...