90pts求调
  • 板块P11397 界分数
  • 楼主__UrFnr__
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/12/15 16:50
  • 上次更新2024/12/15 20:02:43
查看原帖
90pts求调
856098
__UrFnr__楼主2024/12/15 16:50

我知道数据范围很大,但是找不出另一种做法了,代码如下:

#include <bits/stdc++.h>
#define mod 998244353
#define int unsigned long long
using namespace std;
int n, ans;

signed main () {
	cin.tie (0), cout.tie (0);
	ios::sync_with_stdio (0);
	cin >> n;
	for (int i = 1; i <= n; i ++) {
		int cnt = 0, sum = 0, ii = i, gcd;
		while (ii != cnt) {
			int gc = __gcd (ii + 1, cnt + 1);
			if (gc > 1) {
				sum ++;
				//sum %= mod;
				cnt ++, ii ++;
				gcd = __gcd (cnt, ii);
				cnt /= gcd, ii /= gcd;
			} else {
				sum ++;
				//sum %= mod;
				cnt ++;
				gcd = __gcd (cnt, ii);
				cnt /= gcd, ii /= gcd;
			}
		}
		ans += sum;
		ans %= mod;
	}
	cout << ans;
}
2024/12/15 16:50
加载中...