問題 E - All-you-can-eat 解説 他の回答を見つつ、公式解説の解法2に沿って回答を作成。 DP難しい。。。 fn solve(t: usize, abs: Vec<(usize, usize)>) -> usize { use std::cmp::max; let mut abs = abs; abs.sort_by_key(|x| x.0); let mut dp = vec![0; t + 3001]; for &(a, b) in abs.iter() { for i in (0..t).rev() { dp[i + a] = max(dp[i] + b, dp[i + a]); } } dp.into_iter().max().unwrap() } 問題 F - Engines 解説 公式解説結構長めに書いてあるけど実装としては f64.atan2()で角度を求め
![papamitra](https://cdn-ak-scissors.b.st-hatena.com/image/square/06a15c64ba0ceec233d86d71001ebb29a9dcbf5d/height=288;version=1;width=512/https%3A%2F%2Fcdn.blog.st-hatena.com%2Fimages%2Ftheme%2Fog-image-1500.png)