数论(Lucas定理) HDOJ 4349 Xiao Ming's Hope
题目传送门
题意:求C (n,0),C (n,1),C (n,2)...C (n,n)中奇数的个数
分析:Lucas 定理:A、B是非负整数,p是质数。AB写成p进制:A=a[n]a[n-1]...a[0],B=b[n]b[n-1]...b[0]。则组合数C(A,B)与C(a[n],b[n])*C(a[n-1],b[n-1])*...*C(a[0],b[0]) mod p同。即:Lucas (n,m,p)=C (n%p,m%p) * Lucas (n/p,m/p,p)
我是打表找规律的,就是: 2^二进制下1的个数。这定理可以求C (n, m) % p 详细解释
收获:1. 没思路时一定要打个表找找规律 2. Lucas定理
代码:
/************************************************
* Author :Running_Time
* Created Time :2015-8-27 8:48:05
* File Name :J.cpp************************************************/#include <cstdio>
#include <algorithm>
#include <iostream>
#include <sstream>
#include <cstring>
#include <cmath>
#include <string>
#include <vector>
#include <queue>
#include <deque>
#include <stack>
#include <list>
#include <map>
#include <set>
#include <bitset>
#include <cstdlib>
#include <ctime>
using namespace std;#define lson l, mid, rt << 1
#define rson mid + 1, r, rt << 1 | 1
typedef long long ll;
const int N = 1e5 + 10;
const int INF = 0x3f3f3f3f;
const int MOD = 1e9 + 7;int main(void) {int n;while (scanf ("%d", &n) == 1) {int cnt = 0;while (n) {if (n & 1) cnt++;n >>= 1;}ll ans = 1;for (int i=1; i<=cnt; ++i) ans *= 2;printf ("%I64d\n", ans);}return 0;
}
转载于:https://www.cnblogs.com/Running-Time/p/4764360.html
数论(Lucas定理) HDOJ 4349 Xiao Ming's Hope相关推荐
- 【杭电】[4349]Xiao Ming's Hope
上次比赛问的是 杨辉三角第n行奇数的个数 和这个本质上是一样的 lucas定理的推广 参考了宇神的博客 hdoj 4349 Xiao Ming's Hope [lucas 推广] #include&l ...
- 【数论-Lucas定理】
1.写在前面:我始终觉得,对于一个问题要知其然,更要知其所以然.Lucas定理在刚刚接触数论的时候就知道了,因为这是一个很常用的定理,常常和中国剩余定理放在一起考.最近在组合数学上出现了很多问题,但是 ...
- hdu 4349——Xiao Ming's Hope
题意:给定n,让求c(n,0),c(n,1)--c(n,n)中有多少奇数. 思路:本题为Lucas定理推导题,我们分析一下 C(n,m)%2,那么由lucas定理,我们可以写 成二进制的形式观察,比如 ...
- HDU 4349 Xiao Ming#39;s Hope 组合数学
题意:给你n,问在C(n,1),C(n,2)...C(n,n)中有多少个奇数. 比赛的时候打表看出规律,这里给一个数学上的说明. Lucas定理:A,B非负整数,p是质数,A,B化为p进制分别为a[n ...
- 【学习总结】数学-lucas定理
定义: 数论Lucas定理是用来求 C(mn)%p的值,p是素数. 描述: lucas(n,m,p)=lucas(n/p,m/p,p)∗C(m%pn%p) lucas(n,0,p)=1 证明: 设p为 ...
- 《算法竞赛进阶指南》数论篇(3)-组合计数,Lucas定理,Catalan数列,容斥原理,莫比乌斯反演,概率与数学期望,博弈论之SG函数
文章目录 组合计数 例题:Counting swaps Lucas定理 Cnm≡Cnmodpmmodp∗Cn/pm/p(modp)C_n^m\equiv C_{n\ mod\ p}^{m\ mod\ ...
- 数论-Lucas(卢卡斯定理)
Lucas定理是用来求 c(n,m) mod p,p为素数的值. 对于C(n, m) mod p.这里的n,m,p(p为素数)都很大的情况.就不能再用C(n, m) = C(n - 1,m) + C( ...
- 『Lucas定理以及拓展Lucas』
Lucas定理 在『组合数学基础』中,我们已经提出了\(Lucas\)定理,并给出了\(Lucas\)定理的证明,本文仅将简单回顾,并给出代码. \(Lucas\)定理:当\(p\)为质数时,\(C_ ...
- Lucas定理:线性求所有逆元的方法
Miskcoo's Space,版权所有丨如未注明,均为原创 转载请注明转自:http://blog.miskcoo.com/2014/09/linear-find-all-invert 主要绕过费马 ...
最新文章
- 【转载】用三段 140 字符以内的代码生成一张 1024×1024 的图片
- linux5.5内核,一条命令就可以升级到Linux 5.5内核或Linux 5.5以上版本
- 关于监控拾音器测试对比的一些小建议
- live555 源码分析:RTSPServer 组件结构
- 从无盘启动看 Linux 启动原理
- 图数据库neo4j安装、neo4j使用
- jQuery事件之传递参数
- Windows Live Writer 测试
- Canvas--文字渲染
- 解密 TCP/IP!
- Codevs 3269 混合背包(二进制优化)
- python中pycharm倒计时_pycharm中的快捷键和简单设置
- 好用的 windows10 软件推荐
- Detours注入DLL钩子入门教程
- button加下划线
- 硬盘(IDE硬盘与SCSI硬盘)在Linux标识的命名规则
- Cortex-M中特别实用的DWT计数器
- 金蝶软件界面文字全部变为乱码解决办法
- 为什么说梯度的反方向是函数下降最快的方向
- nginx的 ngx.var ngx.ctx ngx.req
热门文章
- 我使用Python和Django在自己的网站上建立了一个会员专区。 这是我学到的东西。
- linux卸载mpfr,Red Hat Linux在安装gcc时遇到的问题汇总
- JavaScript 定义类时如何将方法提取出来
- (C++)1028 人口普查
- 安卓的两种界面编写方式对比
- 安卓环境搭建 SDK emulator directory is missing
- 计算机考试批处理试题,2015计算机三级考试pc技术模拟试题及答案(八)
- java9可执行jar_单个java文件打成可执行jar包
- 玩转Vuejs--核心原理
- 20.Valid Parentheses (python)