2020 牛客多校第一场

https://ac.nowcoder.com/acm/contest/5666

RK:273

Solved:2 / 10

UpSolved:5 / 10


A、B-Suffix Array

F、Infinite String Comparision

jzk开场提出了两倍最大的长度,然后 dh 说直接比较a+b和b+a即可,由于是训练赛,不想写太长的代码,然后交了一发直接比较的代码就过了

#include
using namespace std;
string s1, s2;
int main() 
{
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	while (cin >> s1 >> s2) 
	{
		string a = s1 + s2;
		string b = s2 + s1;
		if (a > b)
			cout << ">\n";
		else if (a < b)
			cout << "<\n";
		else
			cout << "=\n";
	}
}

H、Minimum-cost Flow

I、1 or 2

J、Easy Integration

开场 jzk 掏出板子,算出了这三个分数表示的值是 1/6, 1/30, 1/140,然后将6, 30 ,140丢进oeis,找到了通项公式,然后手算了一下 4 的情况就交了

#include 
#define ll long long
#define sc scanf
#define pr printf
using namespace std;
const int MAXN = 2e6 + 5;
const ll mod = 998244353;
ll invi[MAXN], fac[MAXN], inv[MAXN];
void init()
{
	invi[0] = invi[1] = 1;
	fac[0] = 1;
	inv[0] = 1;
	for (int i = 2; i < MAXN; i++)
		invi[i] = invi[mod % i] * (ll)(mod - mod / i) % mod;
	for (int i = 1; i < MAXN; i++)
	{
		fac[i] = fac[i - 1] * i % mod;
		inv[i] = invi[i] * inv[i - 1] % mod;
	}
}
int main()
{
	init();
	int n;
	while (sc("%d", &n) > 0)
	{
		ll ans = fac[n] * fac[n] % mod * inv[2 * n + 1] % mod;
		pr("%lld\n", ans);
	}
}

你可能感兴趣的:(2020,牛客多校赛)