2020HDU多校第五场

  |  

Tetrahedron (HDU-6814)(1001)

题意:已知直角四面体三个直角边长,求E(1/h^2)。

思路:这道题的话,等体积法,把1/h^2表示出来,E(1/h^2)=3E(1/a平方)。

AC代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <bits/stdc++.h>
typedef long long ll;
const int maxn = 6000010;
const int inf = 0x3f3f3f3f;
const int mod = 998244353;
using namespace std;
ll fastpow(ll base, ll n, ll mod)
{
ll ans = 1;
while (n)
{
if (n & 1)
ans *= base % mod, ans %= mod;
base *= base, base %= mod;
n >>= 1;
}
return ans % mod;
}
int T;
int n;
int sum[maxn];
int main()
{
scanf("%d", &T);
for (ll i = 1; i <= 6e6; i++)
{
sum[i] = (sum[i - 1] + fastpow(i * i % mod, mod - 2, mod)) % mod;
}
while (T--)
{

scanf("%d", &n);
printf("%lld\n", 3ll * sum[n] * fastpow(n, mod - 2, mod) % mod);
}
}

Paperfolding (HDU-6822) (1009)

题意:将一张纸折n次,四个方向都可以折,折完后取中点,横竖分别切一刀(切十字),问最后纸被分成的数量的期望(模998244353)。

思路:https://www.cnblogs.com/stelayuri/p/13435083.html

AC代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <bits/stdc++.h>
typedef long long ll;
const int maxn = 100010;
const int inf = 0x3f3f3f3f;
const ll mod = 998244353;
using namespace std;
ll qpow(ll a, ll n)
{
ll ans = 1;
a %= mod;
while (n)
{
if (n & 1)
ans = (ans * a) % mod;
n >>= 1;
a = (a * a) % mod;
}
return ans;
}
int main()
{
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int t;
cin >> t;
while (t--)
{
ll n;
cin >> n;
ll cnt1 = qpow(2, n);
ll cnt2 = qpow(3, n);
ll cnt3 = qpow(cnt1, mod - 2);
cout << (cnt1 + 1 + 2 * cnt2 * cnt3) % mod << endl;
}
return 0;
}

×

纯属好玩

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

文章目录
  1. 1. Tetrahedron (HDU-6814)(1001)
  2. 2. Paperfolding (HDU-6822) (1009)
,
字数统计:87.6k 载入天数...载入时分秒...