原题链接:Tetrahedron
题面:
直角四面体的性质:
题目要我们求的,就是
E
(
1
/
O
H
2
)
E(1/OH^2)
E(1/OH2) 是多少。
根据性质:
E
(
1
/
h
2
)
=
E
(
1
/
a
2
+
1
/
b
2
+
1
/
c
2
)
=
3
E
(
1
/
a
2
)
E(1/h^2)=E(1/a^2+1/b^2+1/c^2)=3E(1/a^2)
E(1/h2)=E(1/a2+1/b2+1/c2)=3E(1/a2)
数学推导:
全部都是正经题解给的哈。
方法一:利用海伦公式和面积体积的关系推导。
方法二:运用向量叉积。
这里有一个问题,平面向量叉积的几何意义不是平行四边形的面积吗?
代码:
#include <bits/stdc++.h>
#define sc scanf
#define pf printf
using namespace std;
typedef long long LL;
typedef unsigned long long ULL;
typedef pair<int, int> PII;
const int N = 6e6 + 10, M = 2e4 + 10;
const int INF = 0x3f3f3f3f;
const double eps = 1e-7;
const int mod = 998244353;
LL inv[N], fac[N];
LL qmi(LL a, LL b)
{
LL ans = 1;
for( ; b; b >>= 1) {
if(b & 1) ans = ans * a % mod;
a = a * a % mod;
}
return ans;
}
void init()
{
inv[0] = 1;
fac[0] = 0;
for(int i = 1; i < N; i++) {
inv[i] = (LL)qmi(i, mod - 2) % mod;
fac[i] = (fac[i - 1] % mod + inv[i] * inv[i] % mod) % mod;
}
}
int main()
{
init();
int t; sc("%d", &t);
while(t--) {
int n;
sc("%d", &n);
LL ans = fac[n] % mod * inv[n] % mod * 3 % mod;
pf("%d\n", ans % mod);
}
return 0;
}