BZOJ1902: Zju2116 Christopher
$n \leq 10^{100}$,问$C_n^m,0<=m<=n$有多少是质数$p \leq 1e7$的倍数。
一样,套高精度的题,只有战胜他才能鄙视他。
但是我TM被他鄙视了一上午!!!
好先冷静分析。用Lucas的观点看组合数,这里就是个明显的数位DP了,统计每一位时大于当前数、小于等于当前数的合法和不合法方案数,很简单的转移,详见代码。
被鄙视*1:方程抄错了。。
被鄙视*2:高精度乘单精度乘法写错了。。
当然这也不能怪我鬼知道他有乘零!
好吧怪我
//#include<iostream>
#include<cstring>
#include<cstdlib>
#include<cstdio>
//#include<vector>
//#include<queue>
//#include<time.h>
//#include<complex>
#include<algorithm>
#include<stdlib.h>
using namespace std; int n;
#define maxn 1011
int a[maxn],mod,b[maxn],lb; char s[maxn]; int len; #define LL long long
struct LLL
{
int a[],len;
LLL() {memset(a,,sizeof(a)); len=;}
void operator = (int x)
{
len=;
while (x) a[++len]=x%,x/=;
}
void operator = (const LLL &b)
{
len=b.len;
for (int i=;i<=len;i++) a[i]=b.a[i];
}
LLL operator * (int x)
{
LLL ans;
for (int i=;i<=len;i++)
{
LL tmp=a[i]*1ll*x;
ans.a[i+]+=(ans.a[i]+tmp)/;
ans.a[i]=(ans.a[i]+tmp)%;
}
ans.len=len;
while (ans.a[ans.len+])
{
ans.len++;
if (ans.a[ans.len]>=) ans.a[ans.len+]+=ans.a[ans.len]/,ans.a[ans.len]%=;
}
while (ans.a[ans.len]== && ans.len>) ans.len--;
return ans;
}
LLL operator + (const LLL &b)
{
LLL ans;
for (int i=,to=max(len,b.len);i<=to;i++)
{
ans.a[i]+=a[i]+b.a[i];
if (ans.a[i]>=)
{
ans.a[i+]++;
ans.a[i]-=;
}
}
ans.len=max(len,b.len);
while (ans.a[ans.len+]) ans.len++;
return ans;
}
void out()
{
printf("%d",a[len]);
for (int i=len-;i>;i--)
{
for (int j=;j>;j/=) if (a[i]<j) putchar('');
printf("%d",a[i]);
}
}
}f[maxn][],g[maxn]; int main()
{
scanf("%s%d",s+,&mod); len=strlen(s+);
for (int i=;i<=len;i++) a[i]=s[len-i+]-'';
lb=; while (len)
{
int tmp=;
for (int i=len;i;i--) {int now=a[i]; a[i]=(tmp*+now)/mod; tmp=(tmp*+now)%mod;}
for (;len && a[len]==;len--);
b[++lb]=tmp;
}
f[][]=; f[][]=b[]+; g[]=mod--b[];
for (int i=;i<=lb;i++)
{
f[i][]=f[i-][]*(b[i]+)+g[i-]*b[i];
f[i][]=f[i-][]*(b[i]+);
g[i]=(f[i-][]+f[i-][])*(mod--b[i])+g[i-]*(mod-b[i]);
}
f[lb][].out();
return ;
}
BZOJ1902: Zju2116 Christopher的更多相关文章
- bzoj 1902: Zju2116 Christopher lucas定理 && 数位DP
1902: Zju2116 Christopher Time Limit: 1 Sec Memory Limit: 64 MBSubmit: 172 Solved: 67[Submit][Stat ...
- bzoj AC倒序
Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem ...
- bzoj1902【Zju2116】 Christopher
题意:http://www.lydsy.com/JudgeOnline/problem.php?id=1902 sol :一眼可以看出此题应用了lucas定理(逃~ 将n,m都化为p进制,记为a[] ...
- Christopher G. Atkeson 简介
有一个事实:双足机器人的稳定性问题单靠算法是搞不定的!!! 在2015 DARPA 机器人挑战赛中,许多参赛团队的机器人使用了Atlas,他们通过安装他们自己的软件并修改来让机器人保持平衡.来自WPI ...
- Day3----《Pattern Recognition and Machine Learning》Christopher M. Bishop
其实今天只花了一点点时间来学习这本书, 如果模型的参数过多,而训练数据又不足够多的话,就会出现overfitting. overfitting可以通过regularization来解决,贝叶斯方法也可 ...
- Day2----《Pattern Recognition and Machine Learning》Christopher M. Bishop
用一个例子来讲述regression. 采用sin(2*pi*x)加入微弱的正态分布噪声的方式来获得一些数据,然后用多项式模型来进行拟合. 在评价模型的准确性时,采用了误差函数的方式,用根均方误差的方 ...
- 学习笔记-----《Pattern Recognition and Machine Learning》Christopher M. Bishop
Preface 模式识别这个词,以前一直不懂是什么意思,直到今年初,才开始打算读这本广为推荐的书,初步了解到,它的大致意思是从数据中发现特征,规律,属于机器学习的一个分支. 在前言中,阐述了什么是模式 ...
- [BZOJ1902]:[NOIP2004]虫食算(搜索)
题目传送门 题目描述 所谓虫食算,就是原先的算式中有一部分被虫子啃掉了,需要我们根据剩下的数字来判定被啃掉的字母. 来看一个简单的例子: 43#98650#45+8468#6633=444455069 ...
- 【NLP】揭秘马尔可夫模型神秘面纱系列文章(一)
初识马尔可夫和马尔可夫链 作者:白宁超 2016年7月10日20:34:20 摘要:最早接触马尔可夫模型的定义源于吴军先生<数学之美>一书,起初觉得深奥难懂且无什么用场.直到学习自然语言处 ...
随机推荐
- vue计算属性无法监听到数组内部变化
计算属性可以帮助我们简化代码,做到实时更新,不用再自己添加function去修改data. 首先看一下计算属性的基本写法(摘自官网) var vm = new Vue({ el: '#demo', d ...
- ELK日志分析 学习笔记
(贴一篇之前工作期间整理的elk学习笔记) ELK官网 https://www.elastic.co ELK日志分析系统 学习笔记 概念:ELK = elasticsearch + logstas ...
- ratio_to_report分析函数求占比
drop table test; create table test ( name varchar(20), kemu varchar(20), score number ); insert int ...
- 总结 Swift 中随机数的使用
在我们开发的过程中,时不时地需要产生一些随机数.这里我们总结一下Swift中常用的一些随机数生成函数.这里我们将在Playground中来做些示例演示. 整型随机数 如果我们想要一个整型的随机数,则可 ...
- CF815D Karen and Cards 官方题解翻译
看到这道题,网上没有中文版的官方题解,于是就自己翻译了一遍. 不是机器翻译,是一个字一个字纯手翻译的,如果有错误欢迎指正. 比如我们有一张卡片,三个参数分别是 a1 = 4, b1 = 2, c1 = ...
- 初涉trie
trie:字符串算法中的重要“数据结构” 什么是trie trie就是利用字符串的公共前缀所建成的树. 众所周知树是有很多很好的性质的,于是trie可以结合其他知识点做一些有趣的事情. trie的例题 ...
- centOS下jenkins
转:centos7搭建jenkins小记 转自:https://segmentfault.com/a/1190000007086764 安装java环境 1.查看服务器版本 centos7,继续. c ...
- MySQL中的字符串
MySQL的字符串是从1开始编号的,这与计算机编程语言有所不同,在MySQL中1代表第一个字符,-1代表最后一个字符,以此类推. MySQL中百分号“%”代表的是任意个字符,下划线“_”代表的是任意一 ...
- [php] 表单注意事项
什么是 htmlspecialchars()方法? htmlspecialchars() 函数把一些预定义的字符转换为 HTML 实体. 预定义的字符是: & (和号) 成为 & &q ...
- (转)WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
[root@bak1 bak]# scp gwsyj.sql.gz root@192.168.21.65:/data/dbdata/ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ...