如果有数n曾经用除二取余法 复杂度logn 不多说有一个logv的方法 v为1的个数 复杂度比logn小int Count(int x){ int ans = 0; while(x) { x &= (x-1); ans++; } return ans;}这里用到了位运算 x&(x-1)每次去掉一.....
分类:
其他好文 时间:
2014-10-07 20:12:04
阅读次数:
166
/*
刚开始我考虑0的情况,想将他剔除就将lcmn设为-1,这样还要判断0和lcmn是-1的情况很麻烦而且但是一直出错
后来觉得不用管0的情况就行了,可以认为符合。
解:将lcmn离散化,因为1-9的公倍数必是2520的因子并且只有48个
所以用一个数组离散化,记忆的时候直接调用离散数组即可
因为一个数的所有数字的最小公倍数必定是2520的因子,所以将这个数对2520取余缩小范围并记忆
三维,第一...
分类:
其他好文 时间:
2014-10-07 20:06:33
阅读次数:
259
题意:给出一个标准2-3树的叶子节点(最底层节点)个数 L,求2-3数的形成方案数并取余分析:如果有L个叶子枚举每个可以使x*2+y*3=L的xy 那么在最底层就有c(x+y,x)种2,3的放法上一层就是有x+y个叶子的子问题这样就可以递推算了枚举时首先注意到 x=L y=-L 是一组特解,因此可以...
分类:
其他好文 时间:
2014-10-03 10:26:04
阅读次数:
201
2014-10-0220:34:27时间限制: 1 s 空间限制: 128000 KB 题目描述 Description输入b,p,k的值,编程计算bpmodk的值。其中的b,p,k*k为长整型数(2^31范围内)。输入描述 Input Descriptionb p k输出描述 Output Des...
分类:
其他好文 时间:
2014-10-02 23:16:03
阅读次数:
242
/*
数位dp
开一个二维数组用来储存前len状态对10取余,有10种状态0-9;
然后直接过一遍就行了
*/
#include
#include
#define ll __int64
#define N 20
ll digit[N],dp[N][11];
ll dfs(ll len,ll cnt,ll ok) {
if(!len) {
if(cnt==0)//如果可以整除返回1...
分类:
其他好文 时间:
2014-10-02 22:49:13
阅读次数:
187
后面两种写法很巧妙。一种利用位域,一种利用取余。这里如果不用unsigned char来做位域的话,大小就为4. unsigned char才符合题目要求。 1 void chess1() { 2 struct { 3 unsigned char a:4; 4 ...
分类:
其他好文 时间:
2014-10-01 18:46:11
阅读次数:
168
插空法 大组合数取余
#include
#include
using namespace std;
typedef long long LL;
//求整数x和y,使得ax+by=d, 且|x|+|y|最小。其中d=gcd(a,b)
void gcd(LL a, LL b, LL& d, LL& x, LL& y)
{
if(!b)
{
d = a;
x = 1;
y = ...
分类:
其他好文 时间:
2014-09-29 19:37:31
阅读次数:
218
题目意思很简单:求第n个Fibonacci数,如果超过八位输出前四位和后四位中间输出...,否则直接输出Fibonacci数是多少。
后四位很好求,直接矩阵加速递推对10000取余的结果就是。
前四位搜了一下:http://blog.csdn.net/xieqinghuang/article/details/7789908
Fibonacci的通项公式,对,fibonacci数是有通...
分类:
其他好文 时间:
2014-09-29 13:52:51
阅读次数:
301
同样是确定某位上的数,当确定某一位后,其后面的排列数是确定的,所以可以用除法和取余数的方法来确定这一位的值#include #include #include using namespace std;int lim[10];bool vis[20];int ans[20],ansl;void ini...
分类:
其他好文 时间:
2014-09-28 23:31:45
阅读次数:
179
求最大公约数的Euclid算法需要用到大量的取模运算,这在大多数计算机上是一项复杂的工作,相比之下减法运算、测试数的奇偶性、折半运算的执行速度都要更快些。二进制最大公约数算法避免了Euclid算法的取余数过程。二进制最大公约数基于下述事实:若a、b都是偶数,则gcd(a,b)=2*gcd(a/2,b...
分类:
其他好文 时间:
2014-09-28 03:13:30
阅读次数:
191