1
0
This commit is contained in:
2026-02-04 11:15:03 +08:00
commit 8b20a5dd21
125 changed files with 4177 additions and 0 deletions

7
problems/p614/Cargo.toml Normal file
View File

@@ -0,0 +1,7 @@
[package]
name = "p614"
version = "0.1.0"
edition = "2024"
[dependencies]
num-bigint = "0.4.6"

38
problems/p614/src/main.rs Normal file
View File

@@ -0,0 +1,38 @@
// NOTE: incomplete
const MOD: i64 = 1_000_000_007;
fn solve_chunked() -> i64 {
let n = 10_000_000;
let chunk_size = 1_000_000;
let mut total_sum = 0i64;
for chunk_start in (0..n).step_by(chunk_size) {
let chunk_end = std::cmp::min(chunk_start + chunk_size, n);
let chunk_n = chunk_end - chunk_start;
let mut dp = vec![0i64; chunk_n + chunk_start + 1];
dp[0] = 1;
for num in 1..=chunk_end {
if num % 2 == 1 || num % 4 == 0 {
for i in (num..=chunk_end).rev() {
if i < dp.len() {
dp[i] = (dp[i] + dp[i - num]) % MOD;
}
}
}
}
for i in std::cmp::max(1, chunk_start)..=chunk_end {
total_sum = (total_sum + dp[i]) % MOD;
}
}
total_sum
}
fn main() {
let result = solve_chunked();
println!("{}", result);
}