为啥本体编译不过,却AC了?
  • 板块灌水区
  • 楼主封禁用户
  • 当前回复14
  • 已保存回复14
  • 发布时间2023/8/12 22:10
  • 上次更新2023/11/3 04:11:18
查看原帖
为啥本体编译不过,却AC了?
927666
封禁用户楼主2023/8/12 22:10

记录。

代码:

#include <bits/stdc++.h>
#include <atcoder/modint>
using namespace std;
#define MAXN 1000005
#define int long long
typedef atcoder::modint998244353 MINT;
int n, m;
MINT res = 1;
int sum;
bool t7760[MAXN];
int wangyinghao2023[MAXN];
void primes() {
	for(int i = 2; i < MAXN; i++ ) {
		if(t7760[i]) continue;
		for(int j = 2 * i ; j < MAXN ; 
		j+=i) {
			t7760[j] = 1;
		}
		int sum =  0; 
		for(int j = m / i ; j ; j /= i) {
			sum -= j;
		}
		for(int j = (n - m + i ) / i * i - (n - m + 1);
		  j < m; j += i ) {
		  	while(wangyinghao2023[j] % i == 0 ) {
		  	wangyinghao2023[j] /= i;
			  sum ++;
			  }
		  }
		  res *= sum + 1;
	}
}
 main() {
	cin >> n >> m;
	//iota(wangyinghao2023,
//	wangyinghao2023 + 1,
//	n  - m + 1);
	//int res = 1;
	iota(wangyinghao2023,wangyinghao2023 + m,n - m + 1);
	primes();
	for(int i = 0  ; i  < m ; i++) {
		if(wangyinghao2023[i] > 1) {
			res *= 2;
		}
}
printf("%d\n",res.val());
}
2023/8/12 22:10
加载中...