数学
文章平均质量分 79
丿Smile灬晨星
这个作者很懒,什么都没留下…
展开
-
3D数学基础:图形与游戏开发(第7章矩阵)笔记
矩阵-数学定义矩阵的维度和记法方阵向量作为矩阵使用转置行向量和列向量之间转置转置引理标量和矩阵的乘法矩阵乘法注意事项向量与矩阵的乘法注意事项行向量和列向量矩阵几何解释矩阵是怎样变换向量的矩阵的形式总结矩阵-数学定义在线性代数中,矩阵就是以行和列的形式组织的矩形数字块。向量是标量的数组,矩阵是向量的数组。矩阵的维度和记法M=⎡⎣⎢m11m21m31m12m22m32m1原创 2017-10-19 20:44:44 · 616 阅读 · 0 评论 -
zoj3903-数学公式(快速幂除法逆元组合数模板)
参考代码:#pragma comment(linker, "/STACK:1024000000,1024000000")#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;typedef long lon原创 2015-10-11 17:26:41 · 1154 阅读 · 2 评论 -
Codeforces 360C - Levko and Strings 组合数学+DP
纠结了两天才差不多明白原理 顿时觉得自己弱爆了。。。贴上自己的理解,统计时怎么分类想明白基本就ok了Accode:#include#include#include#include#include#include#include#includeusing namespace std;typedef long long LL;const int NS=2010;原创 2013-11-15 13:35:32 · 1001 阅读 · 0 评论 -
hdu4498 数值积分
写了个牛顿-科茨积分模板,然后求出抛物线再[0,100]之间的所有交点分段积分。ACcode:#include#include#include#include#include#include#includeusing namespace std;typedef long long LL;typedef double db;const int NS=原创 2013-09-11 23:03:14 · 1272 阅读 · 0 评论 -
hdu4661 树形DP
这次被虐残了,很好想的树上统计拓扑排序数,比赛的时候找儿子节点循环判断有一个很恶心的错误,一直到比赛结束都没找出来。ACcode:#pragma comment(linker, "/STACK:1024000000,1024000000")#include#include#include#include#include#include#includeusing na原创 2013-08-09 03:36:44 · 856 阅读 · 0 评论 -
hdu4609 傅里叶变换
只想说弱爆了,学完FFT还是不知道思路,只好到网上看解题思路,标程和网上统计方法不同,不过都是求补集。ACcode:#include#include#include#includeusing namespace std;typedef long long LL;const int NS=1<<18;const double pi=acos(-1.0);int n原创 2013-07-29 21:18:49 · 1221 阅读 · 0 评论 -
hdu1402 傅里叶变换
模板题,直接套FFT。ACcode:#include#include#include#include#include#include#includeusing namespace std;int ans[NS];char s1[NS],s2[NS];const int NS=1<<18;const double pi=acos(-1.0);struct原创 2013-07-29 21:20:34 · 917 阅读 · 0 评论 -
poj 1038 状态压缩~棋盘覆盖
用三进制存当前行和前一行的状态,用滚动数组记录,不然会超空间。ACcode:#include#include#include#includeint const NS=10;int const MS=150;int const MAX=59049;int const INF=1<<10;int n,m,k,x,y,ans,T;int bit[MAX+10][NS]原创 2013-07-13 02:50:06 · 915 阅读 · 0 评论 -
hdu3681 状态压缩最优值
写起来有点麻烦,没什么新思维,注意好细节就行。ACcode:#include#include#include#includeusing namespace std;const int NS=16,INF=1<<30;struct node{ int x,y,id; bool operator < (const node &cmp) const原创 2013-07-11 17:40:12 · 984 阅读 · 0 评论 -
UESTC 1548 高次幂
直接代公式。。。ACcode:#include#includetypedef long long LL;const int MOD=1000000007;int b,c;LL a,ans,flag;LL quick_pow(LL x,int y,int mod){ LL res=1; while (y) { if (y&原创 2013-06-26 13:42:02 · 596 阅读 · 0 评论 -
hdu4746 Mophues
花了几天时间熟悉莫比乌斯反演,看了一些讲得比较好的blog链接如下Acdreamer贾志鹏线性筛zimpha's blog形式1.F(x)=∑nd|nf(d)⇒f(x)=∑nd|nμ(d)F(nd)形式2.F(x)=∑nx|nf(n)⇒f(x)=∑nx|nμ(nx)F(n)ACcode:#include#include#include#include原创 2015-09-24 15:59:46 · 519 阅读 · 0 评论 -
Codeforces598C(极角排序)
先占坑ACcode://#pragma comment(linker, "/STACK:1024000000,1024000000")#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;原创 2015-11-15 21:30:21 · 929 阅读 · 0 评论 -
Codeforces621E 矩阵构造快速幂
矩阵连乘原创 2016-02-01 13:12:52 · 790 阅读 · 0 评论 -
3D数学基础:图形与游戏开发(第6章3D向量类)笔记
3D向量类1类接口思考基本操作执行操作2Vector3类3设计决策float与double运算符重载仅提供最重要的操作不要重载过多的运算符使用const成员函数使用const引用参数成员函数与非成员函数无缺省初始化不要使用虚函数不要使用屏蔽信息全局常量零不存在Point3类关于优化3D向量类1、类接口思考这个类将提供什么操作. -在哪些数据上执行这些操作.原创 2017-08-15 14:17:35 · 595 阅读 · 0 评论 -
3D数学基础:图形与游戏开发第5章笔记
向量运算线性代数与几何符号约定零向量负向量向量大小长度或模标量与向量的乘法标准化向量向量的加法和减法距离公式向量点乘向量叉乘线性代数公式练习向量运算线性代数与几何符号约定零向量负向量运算法则几何解释向量大小(长度或模)运算法则几何解释标量与向量的乘法运算法则几何解释标准化向量原创 2017-08-11 09:41:30 · 931 阅读 · 0 评论 -
3D数学基础:图形与游戏开发第4章笔记
向量数学定义几何定义向量向量有两种不同但相关的意义,一种是纯抽象的数学意义,另一种是几何意义。数学定义向量就是一个数字列表(数组)速度、位移是向量,速率、长度是标量记法:行向量和列向量 整数下表引用第几维分量,如V2 x、y、z、w表示4D向量的分量几何定义向量是有大小和方向的有向线段。 1. 向量的大小就是向量的长度(模),向量有非负的长度 2. 向量的方向描述了空间中向量原创 2017-07-27 01:09:21 · 612 阅读 · 1 评论 -
3D数学基础 图形与游戏开发笔记 第3章
多坐标系世界坐标系物体坐标系摄像机坐标系惯性坐标系嵌套式坐标系描述坐标系坐标系转换练习多坐标系世界坐标系别名:全局坐标系、宇宙坐标系 经典问题:每个物体的位置和方向摄像机的位置和方向世界中每一点的地形是什么各物体从哪里来、到哪里去(npc的运动策略)物体坐标系别名:模型坐标系 问题:周围有需要相互作用的物体吗?(我是否要攻击它)哪个方向?在我前面?右边?(我应该攻击原创 2017-07-27 00:32:27 · 893 阅读 · 1 评论 -
欧拉函数 素数线性筛法模板
const int PN = 1000000;int phi[PN+10], prime[PN+10], tot;bool isPrime[PN+10];void getPhiPrime(){ phi[1]=1; isPrime[1] = false; for(int i=2; i<=PN; i++) //相当于分解质因式的逆过程 { if(原创 2016-04-10 14:14:50 · 709 阅读 · 0 评论 -
MillerRabin质数判定+PollardRho质因子分解
参考 matrix67,kuangbin blog测试 POJ1811#include#include#include#include#include#include#includeusing namespace std;typedef long long LL;#define maxn 10000/************************原创 2016-04-10 17:02:17 · 569 阅读 · 0 评论 -
高斯消元解异或方程组 模板
Code:struct matrix{ const int RNS = 55; const int CNS = 55; int row, col; int a[RNS][CNS], b[RNS]; void init(int _row, int _col) { row = _row, col = _col; me原创 2016-03-20 23:28:03 · 1409 阅读 · 0 评论 -
fzu2198(矩阵乘法模板)
参考代码:#pragma comment(linker, "/STACK:1024000000,1024000000")#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;typedef long lon原创 2015-10-07 14:53:12 · 488 阅读 · 0 评论 -
hdu4569 模方程求根
先求出模p的根,然后加上p的倍数枚举求模p的平方的根。ACcode:#include#includetypedef long long LL;const int NS=10010;int deg,p,q,a[10],ans;int b[NS],top;int cal(int d,int x,int mod){ LL t; int res=0;原创 2013-07-11 13:05:03 · 828 阅读 · 0 评论 -
UESTC1721 组合数学
枚举盒子数,递推求n个盒子放k个球,可以不放。ACcode:#include#includetypedef long long LL;const int NS=1010;const int MOD=1000000007;int a[NS][NS];void prepare(){ for (int i=0;i<NS;i++) a[i][1]=a[0]原创 2013-06-25 04:34:05 · 610 阅读 · 0 评论 -
hdu 4407 容斥原理
刚开始看的时候以为是线段树,怎么想也想不通,看了思路之后,才知道条件给的很优越,用容斥原理统计区间和,由于m不大,再用辗转相除统计改变的数,注意用64位整数。 ACcode:#include#include#include#includeusing std::map;typedef long long LL;const int nsize=440000;原创 2013-03-08 20:03:50 · 722 阅读 · 0 评论 -
hdu1133 大数+卡特兰数
今天看模版的时候感觉大数模版写的太差了,在网上找了一个,代码很漂亮,理解之后找题目练习一下,把卡特兰数证明看了一遍就懂了。。。 ACcode:#include#include#include#include#include#includeusing namespace std;#define MAXN 9999#define MAXSIZE 100#define D原创 2013-02-24 15:27:28 · 856 阅读 · 0 评论 -
uva 10288 期望求和
在书上看到这题,又把期望的概念复习了一遍,然后推了半天公式,结果就是n*Sigma(1/i),运算过程注意约分,可能会超int64。 ACcode:#include#include#includetypedef long long LL;LL gcd(LL aa,LL bb){ return bb==0?aa:gcd(bb,aa%bb);}原创 2013-03-04 19:46:34 · 1522 阅读 · 1 评论 -
poj1811 Millar_Rabin+Pollard_rho
存抄模板,Millar-Rabin算法原理看懂了,Pollard_rho表示找不到证明,只能照着模板敲了一遍。 ACcode:#include#include#includetypedef long long LL;#define MAX ((LL)1<<61)const int CT=201;const int Times=50;LL min_fa原创 2013-03-04 16:56:09 · 596 阅读 · 0 评论 -
uva 11038
排列组合的题目,分位数考虑,累加每一位上为0时有多少种情况。n的第i位为0=n左边的数(高位)*10^in的第i位不为0 =(n左边的数-1)*10^i+(i位右边的数+1)res=f(n)-f(m-1); ACcode:#include#define LL long longLL num0(LL n){ LL cnt=0,k=0,j=1,c;原创 2013-01-16 14:42:15 · 749 阅读 · 0 评论 -
反螺旋矩阵
#include#include#includeusing namespace std;int main(){ int n,x,y,i,j,len,lim,s; while (~scanf("%d",&n)) { lim=(int)(sqrt(n-1)+1); // x=y=10000; for (x=1; x<=l原创 2012-10-22 01:53:51 · 947 阅读 · 0 评论 -
hdu~3501~欧拉函数
欧拉函数+公式(i&n-i)成对出现,sum=n*(n-1-eular(n))/2,okACcode:#include#include#include#define LL long long using namespace std;const int MOD=1000000007;int n;int eular(int n){ int i,k=n;原创 2012-10-06 20:18:34 · 431 阅读 · 0 评论 -
hdu~4196~素数
看了题目还好,再看看数据范围,没想法,果断借鉴前辈的思想。先打素数表,并且将小于等于i的合数之积存于sum[i],计算时统计素数幂数,如果为偶数个将没乘进去的素数加入,否则就不用加入此素数。ACcode:#include#include#define LL long long using namespace std;const int size=10000000;c原创 2012-10-08 20:24:49 · 623 阅读 · 0 评论 -
hdu4200&&hdu3364 高斯消元
基础题目,犯了个小错误,调了很久,甭提多郁闷了,不多说了,直接贴代码。4200ACcode:#include#include#define min(a,b) a<b?a:b; #define max(a,b) a>b?a:b; int n,d,row,col,ans;char g[110][110];int num[110];void gauss(){原创 2012-09-14 12:21:01 · 1269 阅读 · 0 评论 -
poj2549 3sum/二分查找
由此题目了解到有一个3sum算法,自己又将a+b存起来用二分查找AC了,不过3sum的时间复杂度高些但耗时反倒少些。。。。 ACcode:/**3sum O(n^3)*/#include #include #include using namespace std;const int MAXN = 1005;bool flag;int n, d,原创 2013-03-12 18:42:35 · 777 阅读 · 0 评论 -
hdu4465 期望公式
一开始看错题目了,推出来的公式模拟第一组数据都过不了,后来看了题解重新读题才知道要取到n+1步,期望公式很好推,运算过程中乘以概率值不会导致精度溢出,具体过程看代码。。。ACcode:#includeint n;double p,res;double solve(int n,double pro){ double ans=n*pro,s=1;原创 2013-03-17 01:59:18 · 1173 阅读 · 0 评论 -
CF285E DP+组合数学
很经典的递推,将当前第i+1个位置是否放了i+2这个数记录下来,t=f[i][j][x][y];1、如果i+1上为i+2则:if (i+22、如果i+1上为i则:if (x==0) add(f[i+1][j+1][y][0],t);3、如果当前位为其他数:add(f[i+1][j][y][0],t);开始用减去乘积的时候没用模运算,用循环加上来果断超时了,细节仍然是很大原创 2013-04-02 14:03:40 · 1155 阅读 · 0 评论 -
UESTC1552 欧拉函数
很好的题目,想到欧拉函数了,不过看数据量3000组,估计会超时就没去想了。想不通上网查了一下,也是用欧拉函数做的,敲了一下就过了。ACcode:#include#includeint eular(int n){ int res=1; for (int i=2;i*i<=n;i++) if (n%i==0) { n/=i,res原创 2013-06-25 01:57:25 · 794 阅读 · 0 评论 -
hdu4259 群置换
数列变换,先预处理每一个位置的下一个位置,然后找出每一个位置的循环节求最小公倍数。ACcode:#include#include#includetypedef long long LL;const int NS=810;LL res[NS][NS];int next[NS];int num[NS];LL gcd(LL a,LL b){ return b原创 2013-06-13 23:29:56 · 805 阅读 · 0 评论 -
poj3420 状态压缩+矩阵连乘
第一次写状态压缩,一开始没看懂状态怎么表示的,跟lyc一起琢磨了好久才弄明白。题目比较容易,注意m=1的情况就ok了。ACcode:#include#includetypedef long long LL;const int NS=16;int n,m;int a[NS][NS],b[NS][NS],c[NS][NS],t[NS][NS];void dfs(原创 2013-04-16 01:01:16 · 1228 阅读 · 0 评论 -
高次幂取模
公式:A^x%C=A^(x%phi(C)+phi(C))%C,具体证明见ACblog。FZU1759 HDU2837 HDU3609 HDU3221ACcode:/**hdu3609*/#include#include#include#include#includeusing namespace std;typedef long lon原创 2013-05-08 22:22:56 · 1404 阅读 · 0 评论 -
组合数取模
求C(n,k)%pp是素数 1、1=<k<=10^6,1<=n<=10^18,求出mod p的分子a和分母b,a*b^(p-2)即为所求;FZU20202、1hdu3037 hdu3944p不是素数3、1=分解因式再用快速幂 hdu33984、1,P=p1^c1 * p2^c2 * p3^c3 * … *pt ^ ct原创 2013-05-09 00:50:58 · 1561 阅读 · 0 评论