题目传送门

题意:求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相关推荐

  1. 【杭电】[4349]Xiao Ming's Hope

    上次比赛问的是 杨辉三角第n行奇数的个数 和这个本质上是一样的 lucas定理的推广 参考了宇神的博客 hdoj 4349 Xiao Ming's Hope [lucas 推广] #include&l ...

  2. 【数论-Lucas定理】

    1.写在前面:我始终觉得,对于一个问题要知其然,更要知其所以然.Lucas定理在刚刚接触数论的时候就知道了,因为这是一个很常用的定理,常常和中国剩余定理放在一起考.最近在组合数学上出现了很多问题,但是 ...

  3. hdu 4349——Xiao Ming's Hope

    题意:给定n,让求c(n,0),c(n,1)--c(n,n)中有多少奇数. 思路:本题为Lucas定理推导题,我们分析一下 C(n,m)%2,那么由lucas定理,我们可以写 成二进制的形式观察,比如 ...

  4. 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 ...

  5. 【学习总结】数学-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为 ...

  6. 《算法竞赛进阶指南》数论篇(3)-组合计数,Lucas定理,Catalan数列,容斥原理,莫比乌斯反演,概率与数学期望,博弈论之SG函数

    文章目录 组合计数 例题:Counting swaps Lucas定理 Cnm≡Cnmodpmmodp∗Cn/pm/p(modp)C_n^m\equiv C_{n\ mod\ p}^{m\ mod\ ...

  7. 数论-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( ...

  8. 『Lucas定理以及拓展Lucas』

    Lucas定理 在『组合数学基础』中,我们已经提出了\(Lucas\)定理,并给出了\(Lucas\)定理的证明,本文仅将简单回顾,并给出代码. \(Lucas\)定理:当\(p\)为质数时,\(C_ ...

  9. Lucas定理:线性求所有逆元的方法

    Miskcoo's Space,版权所有丨如未注明,均为原创 转载请注明转自:http://blog.miskcoo.com/2014/09/linear-find-all-invert 主要绕过费马 ...

最新文章

  1. 【转载】用三段 140 字符以内的代码生成一张 1024×1024 的图片
  2. linux5.5内核,一条命令就可以升级到Linux 5.5内核或Linux 5.5以上版本
  3. 关于监控拾音器测试对比的一些小建议
  4. live555 源码分析:RTSPServer 组件结构
  5. 从无盘启动看 Linux 启动原理
  6. 图数据库neo4j安装、neo4j使用
  7. jQuery事件之传递参数
  8. Windows Live Writer 测试
  9. Canvas--文字渲染
  10. 解密 TCP/IP!
  11. Codevs 3269 混合背包(二进制优化)
  12. python中pycharm倒计时_pycharm中的快捷键和简单设置
  13. 好用的 windows10 软件推荐
  14. Detours注入DLL钩子入门教程
  15. button加下划线
  16. 硬盘(IDE硬盘与SCSI硬盘)在Linux标识的命名规则
  17. Cortex-M中特别实用的DWT计数器
  18. 金蝶软件界面文字全部变为乱码解决办法
  19. 为什么说梯度的反方向是函数下降最快的方向
  20. nginx的 ngx.var ngx.ctx ngx.req

热门文章

  1. 我使用Python和Django在自己的网站上建立了一个会员专区。 这是我学到的东西。
  2. linux卸载mpfr,Red Hat Linux在安装gcc时遇到的问题汇总
  3. JavaScript 定义类时如何将方法提取出来
  4. (C++)1028 人口普查
  5. 安卓的两种界面编写方式对比
  6. 安卓环境搭建 SDK emulator directory is missing
  7. 计算机考试批处理试题,2015计算机三级考试pc技术模拟试题及答案(八)
  8. java9可执行jar_单个java文件打成可执行jar包
  9. 玩转Vuejs--核心原理
  10. 20.Valid Parentheses (python)