蒟蒻,普及减代码求D
查看原帖
蒟蒻,普及减代码求D
188970
Twiter_ln楼主2024/7/21 18:36

rt,只过#9,其余全WA,过样例

#include<bits/stdc++.h>

using namespace std;
const int N = 5e5 + 37;
const int p = 20070720;

int T, n, ff, a[N];
int b[32], sum[32], ssum[32];

int ksm(int a, int b) {
	int ans = 1;
	while(b) {
		if(b & 1) ans = 1ll* ans * a % p;
		b >>= 1;
		a = 1ll* a * a % p;
	}
	return ans;
}

void solve() {
	scanf("%d%d", &n, &ff);
	sum[0] = 1;
	ssum[0] = 1;
	for(int i = 1; i <= n; ++ i) {
		sum[i] = 1ll* sum[i-1] * ff % p;
		ssum[i] = (ssum[i-1] + sum[i]) % p;
	}
	
	int tot = 0;
	for(int i = 1; i <= n; ++ i) {
		scanf("%d", &a[i]);
		tot += 1ll* ssum[n-i] * (i-1) % p * a[i] % p;
		tot %= p;
		tot += 1ll* ssum[n-i] * a[i];
		tot %= p;
	}
//	cout<<tot<<endl;
	int now = 0;
	while(tot) {
		++ now;
		b[now] = tot % ff;
		tot /= ff;
	}
	for(int i = now; i >= 1; -- i) printf("%d ", b[i]);
}

int main() {
	
	scanf("%d", &T);
	for(int i = 1; i <= T; ++ i) {
		solve();
	}
	
	return 0;
}
2024/7/21 18:36
加载中...