随笔分类 -  数学

数学_异或的应用(HDU_1287)
摘要:1. a ^ b = b ^ a ;2. a ^ b ^ c = a ^ (b ^ c) = (a ^ b) ^ c ;3. d = a ^ b ^ c 可以推出 a = d ^ b ^ c ;4. a ^ b ^ a = b .#include #include #define M 1002int id[M];int main(){// freopen("in.txt","r",stdin); int n; while(scanf("%d",&n) != EOF) { for(int j=0; j 'Z') 阅读全文
posted @ 2013-08-15 09:33 lk1993 阅读(145) 评论(0) 推荐(0)
数学_二分幂取模(HDU_1061)
摘要:#include #include int main(int argc, char* argv[]){ #ifdef __MYLOCAL freopen("in.txt","r",stdin); #endif int t,n; scanf("%d",&t); while(t--) { scanf("%d",&n); int all = 1, a = n % 10; while(n > 0) { n % 2 == 1 ? all = all * a % 10 : NULL; ... 阅读全文
posted @ 2013-08-07 21:33 lk1993 阅读(141) 评论(0) 推荐(0)
数学_同取对数(HDU_1060)
摘要:m = n^n ==> lg(m) = lg(n^n)==> lg(m) = n*lg(n)==> m = 10^(n*lg(n))对于 10^N = 10^123.456 = 10^(123+0.456) = 10^123 * 10^0.0.45610^123 的最高位为 '1',即 10^N 的最高位取决于n*lg(n) 的小数部位#include #include #include int main(int argc, char* argv[]){ #ifdef __MYLOCAL freopen("in.txt","r&q 阅读全文
posted @ 2013-08-07 21:17 lk1993 阅读(477) 评论(0) 推荐(0)
数学_二分幂取模(HDU_1097)
摘要:b 值大,取二分幂计算#include #include #define Mint main(int argc, char* argv[]){ #ifdef __MYLOCAL freopen("in.txt","r",stdin); #endif int a,b,c,t; while(scanf("%d%d",&a,&b) != EOF) { c = 1, t = a % 10; while(b > 0) { b % 2 == 1 ? c = c * t % 10 : NULL; ... 阅读全文
posted @ 2013-08-07 20:18 lk1993 阅读(176) 评论(0) 推荐(0)
数学_大数求模(HDU_1021)
摘要:公式: (a+b)%k = (a%k + b%k)%k (a-b)%k = (a%k - b%k)%k#include #include #define M 1000000#define MOD 3int map[M] = {7,11};void init(){ for(int i=2; i<M; i++) { map[i] = (map[i-2] % MOD + map[i-1] % MOD) % MOD; }}int main(int argc, char* argv[]){ #ifdef __MYLOCAL freopen("in.txt"... 阅读全文
posted @ 2013-07-31 19:39 lk1993 阅读(175) 评论(0) 推荐(0)
数学_线性筛法建立素数表(HDU_1262)
摘要:#include #include #define MAX 0x7fffffff#define M 10000bool isPrime[M+1];void primeAdd(){ memset(isPrime,true,sizeof(isPrime)); for(int i=2;i=2) { if(isPrime[mid] && isPrime[n-mid]) { printf("%d %d\n",mid,n-mid); break; ... 阅读全文
posted @ 2013-05-20 23:59 lk1993 阅读(194) 评论(0) 推荐(0)