引擎中,ray与quad求交,算法未细看,但有求解二次方程,不解。ray与triangle求交,使用的是97年经典算法,仔细看过论文,多谢小武同学指点,用到了克拉默法则求解线性方程组。想模仿该方法,做ray与quad的求交,发现方程里不仅有u和v,还有uv,没法变换成线性方程组的形式。本以为引擎中q...
分类:
其他好文 时间:
2014-07-06 15:41:40
阅读次数:
181
描述
欧几里德算法
别名:辗转相除法
用途:计算两个正整数a,b的最大公约数
欧几里德拓展算法
扩展欧几里德算法是用来在已知a, b求解一组x,y,使它们满足等式:
ax+by=gcd(a,b)=d(解一定存在,根据数论中的相关定理)。扩展欧几里德常用在求解模线性方程及方程组中。
代码
C++ 欧几里德LL gcd (LL a, LL b) {
ret...
分类:
其他好文 时间:
2014-07-03 16:20:26
阅读次数:
198
有n个营地,每个营地至多容纳Ci人,给出m个条件:第i到第j个营地之间至少有k人。
问n个营地总共至少有多少人。
此题显然差分约束,要求最小值,则建立x-y>=z方程组,建图求最长路。
用d[i]表示[1,i]个帐篷中一共多少人,根据题意可得到不等关系:
1、0
2、d[j]-d[i]>=k
此外,我们添加0为附加结点,则0到其他点也要建边。
再求解0为源点的最长路即可。
...
分类:
其他好文 时间:
2014-06-30 19:41:42
阅读次数:
205
题目是要求建立一个方程组:
(mat[1][1]*x[1] + mat[1][2]*x[2] + … + mat[1][n]*x[n])%7 =mat[1][n+1]
(mat[2][1]*x[1] + mat[2][2]*x[2] + … + mat[2][n]*x[n])%7 =mat[2][n+1]
…
…
(mat[m][1]*x[1] + mat[m][...
分类:
其他好文 时间:
2014-06-30 10:56:17
阅读次数:
159
题目链接题意:给k对数,每对ai, ri。求一个最小的m值,令m%ai =
ri;分析:由于ai并不是两两互质的,
所以不能用中国剩余定理。只能两个两个的求。a1*x+r1=m=a2*y+r2联立得:a1*x-a2*y=r2-r1;设r=r2-r2;互质的模线性方程组m=r[i](mod
a[i])...
分类:
其他好文 时间:
2014-06-11 07:25:30
阅读次数:
203
解法:直接上模版。
扩展欧几里德的模版:
typedef long long LL;
LL ex_gcd(LL a,LL b,LL &x,LL &y)
{
if(b==0)
{
x=1;
y=0;
return a;
}
LL d=ex_gcd(b,a%b,x,y);
LL t=x;
x=y;...
分类:
其他好文 时间:
2014-06-08 16:56:35
阅读次数:
228
http://poj.org/problem?id=2891这道题的题意是:给你多个模性方程组:m mod ai=ri 求最小的m;中国剩余定理 1
#include 2 #include 3 #include 4 #define ll long long 5 using namespace ...
分类:
其他好文 时间:
2014-05-31 19:06:39
阅读次数:
191
$\bf命题:$设$A$为$s \times n$阶矩阵,${\eta _1},{\eta
_2}, \cdots ,{\eta _r}$为齐次线性方程组$AX=0$的一个基础解系,记$B = \left( {{\eta _1},{\eta _2},
\cdots ,{\eta _r}} \righ...
分类:
其他好文 时间:
2014-05-26 09:37:07
阅读次数:
145