hdu4349xiaoming's hope(Lucas定理和位运算)
来源:互联网 发布:如何做好淘宝 编辑:程序博客网 时间:2024/05/21 01:29
这道题时间复杂度应为O(log n)。代码其短
刚开始用的是O(n),即一个数一个数判断。lucas定理在这道题p=2,
但事实上lucas(n,i,2)==true等价于(n&i)==i,然而这还是超时。
观察发现,由于求的是i=0~n中满足C(n,i)为奇数的个数。
不妨把n写成二进制,那么(n&i)==i就相当于n的二进制中的1可选可不选,例如7=111(2进制),那么满足的i可以是011,111,001,000,101,100,010,110。
所以只需统计n的二进制中1的个数cnt,答案就是1<< cnt。
bool lucas(int n ,int m,int p)
{
while(n&&m)
{
if(n%p< m%p) return false;
n/=p;m/=p;
}
return true;
}
#include <stdio.h>int main(void){ int n; while(scanf("%d",&n)!=EOF) { int cnt=0; while(n) {if(n&1) cnt++;n>>=1;} printf("%d\n",1<<cnt ); } return 0;}
0 0
- hdu4349xiaoming's hope(Lucas定理和位运算)
- [HDU 4349] Xiao Ming's Hope (lucas定理)
- [HDU4349]Xiao Ming's Hope(组合数学Lucas定理)
- hdu 4349 Xiao Ming's Hope (Lucas定理)
- HDU 4349 Xiao Ming's Hope(思路 lucas定理)
- hdu 4349 Xiao Ming's Hope(Lucas定理)
- HDU4349 Xiao Ming's Hope Lucas定理
- HDU4349-Xiao Ming's Hope(Lucas定理)
- HDU 4349 Xiao Ming's Hope(Lucas定理的推导)
- hdu 4349 Xiao Ming's Hope(Lucas定理)
- HDU 4349 Xiao Ming's Hope(数学题,Lucas定理)
- HDU 4349-Xiao Ming's Hope(Lucas定理的推广)
- hdu 4349 Xiao Ming's Hope,lucas定理
- HDU 4349 Xiao Ming's Hope (Lucas定理的应用)
- HDOJ 4349 Xiao Ming's Hope (Lucas定理变形)
- hdu - 4349 - Xiao Ming's Hope - 大大的Lucas定理 && 小小的乘法逆元
- HDU 4349 Xiao Ming's Hope (组合数的奇偶性&&Lucas定理)
- HDU ACM 4349 Xiao Ming's Hope ->lucas定理的推到
- hdu1008-电梯问题
- 8086汇编语言 段地址与偏移地址存在CS,IP寄存器中
- 8086汇编语言 转移指令是什么
- Leetcode 125. Valid Palindrome (Easy) (cpp)
- Chrome 开发工具之Timeline
- hdu4349xiaoming's hope(Lucas定理和位运算)
- LeetCode 101. Symmetric Tree
- jQuery基本选择器的使用
- JAVA 中BIO,NIO,AIO的理解
- 提取不重复的整数
- Android调用手机摄像头和相册获取图片
- 51 nod 1961 比大小
- 数据结构实验之栈六:下一较大值(二)
- ListView显示多种类型的条目