数值&数论&数
laziercs
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
hdu-4344-Mark the Rope-大数分解质因子模板
#include #include #include #include #include __int64 prime[]={2,3,5,7,11,13,17,19,23,29}; #define TIME 15 //Miller测试次数 __int64 gcd(__int64 a,__int64 b){return b==0?a:gcd(b,a%b);}原创 2012-08-29 13:06:22 · 824 阅读 · 0 评论 -
2012 ACM/ICPC Asia Regional Online Warmup-1003
/* http://acm.hdu.edu.cn/showproblem.php?pid=4259 题意是:给定一个排列和一个特定的置换,最后问你最少要多少步置换才能回到原来的状态 解题思路就是:找出置换中的各个置换回路的长度,答案就是各个置换回路的最小公倍数 举个例子: 排列:1 2 3 4 5 6 置换:2 3 5 4 1 6 那么第一个置换回路是1 2 3 5,长度为4,第原创 2012-08-28 18:59:27 · 639 阅读 · 0 评论 -
hdu -4282
//二分x或y,其他的直接暴力枚举就可以了 #include #include #include __int64 p[51000][32]; int main() { int sum; __int64 x,y,z,k,s,e,mid; __int64 xx,kk,k1,k2; memset(p,0,sizeof(p)); kk=1; kk<<=32;原创 2012-09-11 16:56:19 · 734 阅读 · 0 评论 -
uva 12486-Space Elevator
//http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=3930 //Problem description: Space Elevator China is building a space elevator, which will allow the原创 2012-09-19 22:10:54 · 818 阅读 · 0 评论 -
hdu-4091
//参看了大神的解题报告,好题,体现了通过分析问题来对问题进行各种剪枝,优化已致程序以最优的算法运行; //解题思路:贪心的各种优化,先用最小公倍数优化,再用最小的次数来优化,最后时间的复杂度为sqrt(n); //代码如下: #include __int64 gcd(__int64 a,__int64 b){return b==0?a:gcd(b,a%b);} int main()原创 2012-09-22 10:47:51 · 566 阅读 · 0 评论 -
自己写的高斯消元,也不知道对不对
#include double argu_matrix[300][300],x[300];//arguement matrix and x matrix int main(void) { int n,i,j,k; double sum; scanf("%d",&n); for(i=0;i<n;i++) for(j=0;j<n+1;j++) scanf("%lf",&argu_ma原创 2012-08-29 13:20:55 · 1927 阅读 · 0 评论 -
数值积分-(自适应辛普森法)
#include #include double F(double x){return log10(x);} //三点辛普森公式 double simpson(double width,double fa,double fb,double fc) { return (fb+fa+4*fc)*width/6; } //自适应simpson公式递归过程 double asr(double a原创 2013-02-22 16:31:22 · 4186 阅读 · 1 评论 -
SPOJ10649 Mirror Number(三进制回文)
/* 题目:Mirror Number 题目描述: A number is called a Mirror number if on lateral inversion, it gives the same number i.e it looks the same in a mirror. For example 101 is a mirror number while 100 is not原创 2013-03-17 16:31:51 · 1074 阅读 · 0 评论 -
ZOJ3690Choosing number
/* 题目:Choosing number 题目连接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3690 题目大意: n个人站成一行,这儿有m个数字,1,2...m,每个人选择一个数字,但是如果相邻的两个人选择了同一个数字 这个数字不能超过k,请问他们有多少种选择数字的方式? 解题思原创 2013-04-02 20:00:11 · 860 阅读 · 2 评论 -
hdu 4483(数论)
/* 这是一个经典的题目,以前遇到n范围都比较就小,可以直接枚举每一个长方形的两个对角点,最后答案就是 C(n*n,3)-2*n*C(n,3)-2*sum{sum{(n+1-i)*(n+1-j)*(gcd(i,j)-1)}}(1 然而这题的n范围比较大,直接枚举肯定不行,但是我们可以优化上面的这个公式; 第一次看到这题的时候,不会优化,到后面我做了下uva1原创 2013-06-30 23:06:18 · 1042 阅读 · 0 评论 -
hdu 3939 (Sticks and Right Triangle)
//数论(勾股数组相关),在acdream 群里看到的 实现代码如下: #include #include #include #include using namespace std; vector fac[1000001]; int prime[100000],phi[1000001],m; void init(){ //预处理phi[] int i,j; m=0原创 2013-07-22 13:29:06 · 987 阅读 · 0 评论 -
hdu 4686 (等比解法)
这题的正解是矩阵快速幂,但是在比赛的时候没有构造出矩阵,然后直接用数学的方法把这题ac了,方法如下: 可以得出an和bn都是类等比数列,类等比数列暂且定义为等比数列之间的加减乘除组合后的数列,an,bn如下: an=A0*Ax^n+Ay*(Ax^(n-1)+Ax^(n-2)+......+Ax^1+Ax^0).(n>=1) bn=B0*Bx^n+By*(Bx^(n-1)+Bx^(n-原创 2013-08-22 12:53:38 · 934 阅读 · 0 评论 -
自己实现用FFT加速多项式计算
/* * FFT之所以能加速DFT的计算,得益于n次单位复数根的几个性质: * 1.消去引理 w(d*n,d*k)=w(n,k); * 1.折半引理 w(n,k)^2=w(n/2,k); * 2.求和引理,即:sum{w(n,k)^j}=0 (0 * 详见:算法导论第30章,p527~p535 */ #include #include #include #include原创 2013-08-12 14:45:42 · 1756 阅读 · 0 评论 -
hdu 3547(Polya计数)
//根据Polya计数的原理,我们先要求出每个置换群中的循环的个数 //这里有24个置换群,为什么是24个了,很容易想到,把每一个面当作正面并按一个方向(顺时针或逆时针)旋转4次,总共6个面,所以就是24个置换群了; //我们可以先对立方体的8个顶点编号,然后就可以暴力预处理出24置换群的循环个数了,最后就是用Polya的计数公式计数了,代码如下: #include #include原创 2013-08-13 13:20:34 · 917 阅读 · 0 评论 -
hdu 1402-傅里叶_大数相乘
#include #include #include #include typedef struct vir{ double re,im; vir(){} vir(double a,double b){re=a;im=b;} vir operator +(const vir &b){ return vir(re+b.re,im+b.im);} vir operator原创 2012-08-29 12:57:57 · 1682 阅读 · 0 评论
分享