// 获取程序的基目录。 System.AppDomain.CurrentDomain.BaseDirectory // 获取模块的完整路径。 System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName // 获取和设置当前目...
问题描述
一个盒子由n*m个格子组成,有一些格子里会有闪闪发光的宝石。
现在有求盒子从左边看过去,每一行都闪烁着光芒,从前面看过去,每一列也都闪烁着光芒。
问:盒子里的宝石有多少种分布情况。
答案有可能很大,所以输出答案对1000000007取模。
输入描述
多组输入数据
每组数据一行,输入两个数n m表示盒子的大小,0≤n,m≤50
输出描述
每组数据输出一行,...
分类:
其他好文 时间:
2015-01-06 13:54:37
阅读次数:
144
1.n,m<=1000 p随意 暴力2.n,m<=10^6 p<=10^9 素数合数无影响 分解质因数,然后快速幂 如果p是素数,且多次询问可以预处理阶乘的模以及阶乘的逆元3.n,m<=10^9 p<=10^5且是质数 lucas定理 多次询问也可以预处理4.n,m<=10^9 p<=10^5且是....
分类:
其他好文 时间:
2015-01-04 21:01:05
阅读次数:
160
题目链接:HDOJ - 5155题目大意有一个 n * m 的棋盘,已知每行每列都至少有一个棋子,求可能有多少种不同的棋子分布情况。答案对一个大素数取模。题目分析算法1: 使用容斥原理与递推。 首先,一个 n * m 的棋盘不考虑任何限制时,可能的分布情况为 2^(n*m) ,除去没有棋子的情况.....
分类:
其他好文 时间:
2015-01-04 15:02:55
阅读次数:
152
快速幂取模其实是a^b%c,这就是著名的RSA公钥加密的方法,当a,b都很大的时候,直接求是不可取的,所以就用到了快速幂取模。
首先你得明白他的原理,其实是用到了二分的思想,把b按照二进制展开
b = p(n)*2^n + p(n-1)*2^(n-1) +…+ p(1)*2 + p(0)。其中p(i) (0
所以此时a^b = a^ (p(n)*2^n + p(n-1...
分类:
编程语言 时间:
2015-01-01 16:09:33
阅读次数:
209
因为这里是MOD最大为100000所以我将字符串看作5个一组,并记录后面跟了多少个100000每次取5个数根据其数据进行取模更新注意过程中 100000*100000会超int#include #include #include using namespace std;#define ll long...
分类:
其他好文 时间:
2015-01-01 00:09:45
阅读次数:
215
本文主要是比较三种分布缓存负载均衡的方法,第一种是最简单的将 key的hash值对机器数取模算法,第二种是一致性哈希算法,第三种是淘宝开源的缓存解决方案tair的均衡算法。下面来分析下这三种算法的优缺点。第一种:传统的数据分布方法,将key的hash值对机器数取模 这个算法的实现非常简单,计算ha....
分类:
其他好文 时间:
2014-12-31 17:50:33
阅读次数:
331
1 锁的独占与共享
java并发包提供的加锁模式分为独占锁和共享锁,独占锁模式下,每次只能有一个线程能持有锁,ReentrantLock就是以独占方式实现的互斥锁。共享锁,则允许多个线程同时获取锁,并发访问 共享资源,如:ReadWriteLock。AQS的内部类Node定义了两个常量SHARED和EXCLUSIVE,他们分别标识 AQS队列中等待线程的锁获取模式。
很显...
分类:
编程语言 时间:
2014-12-31 14:40:25
阅读次数:
232
参考文章来源:Reait Home(http://www.reait.com/blog.html) 转载请注明,谢谢合作。 在Miller Rabbin测试素数,就用到了快速幂取模的思想。这里总结下。求a^b%c(这就是著名的RSA公钥的加密方法),当a,b很大时,直接求解这个问题不太可能 算法1:...
分类:
其他好文 时间:
2014-12-27 21:48:14
阅读次数:
154