| Crates.io | bitset-fixed |
| lib.rs | bitset-fixed |
| version | 0.1.0 |
| created_at | 2019-06-27 04:12:04.085216+00 |
| updated_at | 2019-06-27 04:12:04.085216+00 |
| description | Bitset for DP. |
| homepage | |
| repository | |
| max_upload_size | |
| id | 143912 |
| size | 13,904 |
Bitset for DP.
Example for AGC20-C
use bitset_fixed::BitSet;
use rand::prelude::*;
fn main() {
let mut rng = StdRng::seed_from_u64(114514);
let n: Vec<usize> = (0..25).map(|_| rng.next_u32() as usize % 2000).collect();
let sum = n.iter().sum::<usize>();
let mut bitset = BitSet::new(sum + 1);
bitset.set(0, true);
for &x in &n {
bitset |= &(&bitset << x);
}
let ans = ((sum + 1) / 2..).find(|&i| bitset[i]).unwrap();
println!("N = {:?}\nAnswer = {}", n, ans);
}