cp-library

競技プログラミング用 C++ ライブラリ

View the Project on GitHub qandori/cp-library

:heavy_check_mark: test/multiplicative_prefix_sum_large.test.cpp

test/multiplicative_prefix_sum_large.test.cpp · GitHub で見る

検証問題

依存ライブラリ

コード

#define PROBLEM "https://judge.yosupo.jp/problem/sum_of_multiplicative_function_large"
#define TIME_LIMIT 30
#include "math/multiplicative_prefix_sum.hpp"
#include "components/fast_io.hpp"
#include "test/fixtures/multiplicative_prefix_sum_types.hpp"

int main() {
	using M = MultiplicativeSumModint<469762049>;
	FastInput input;
	FastOutput output;
	int t = 0;
	input.read(t);
	while (t--) {
		std::uint64_t n = 0;
		unsigned a = 0, b = 0;
		input.read(n), input.read(a), input.read(b);
		MultiplicativePrefixSum<M> sieve(n);
		auto primes = sieve.prime_sum_linear(M(a), M(b));
		auto answer = sieve.sum(primes, [a, b](std::uint64_t p, unsigned e, std::uint64_t) { return M(a) * M(e) + M(b) * M(p); });
		output.println(answer.val());
	}
}
Back to top page