rust
Little_Fall
冲冲冲!
展开
-
Rust Pattern - 不重叠地遍历迭代器的每两个元素
代码】RustPattern-不重叠地遍历迭代器的每两个元素。原创 2022-07-16 18:15:34 · 246 阅读 · 0 评论 -
【题解】Codeforces Round #804 (Div. 2)
要加快手速,不能甩锅给 rust,还有就是增强通用模板,比如构造题的 check。1699B. Almost Ternary Matrix构造、矩阵给两个偶数 n,m,构造一个 01 矩阵使得每个元素都只有两个相邻元素和它不等。显然除去最外层,里面的内容都是重复的,类似于:0 0 1 1 0 0 1 10 0 1 ...原创 2022-07-05 02:26:48 · 366 阅读 · 0 评论 -
leetcode周赛 299
经典 rustwa 两次,一次是因为运算的最终结果没有取模,一次是因为初始值选的有问题,建议直接 i32::MAX/2ABCD原创 2022-06-26 11:45:49 · 108 阅读 · 0 评论 -
Codeforces 1696E. Placing Jinas 高维前缀和、组合数取模
记 sum[k][i] 表示 k 维前缀和的第 i 项,比如:sum[0] = 0, 1, 0, 0sum[1] = 0, 1, 1, 1sum[2] = 0, 1, 2, 3sum[3] = 0, 1, 3, 6, …那么答案就是 sigma(sum[i+2][ai]).高维前缀和单点可以用组合数求,sum(k,n) = C(n+k-2, n-1),放到答案里也就是 sigma(C(i+ai, i+1)).相关的具体说明有个 quora 答案写的挺好:https://qr.ae/pvo6rl组合原创 2022-06-26 02:20:09 · 380 阅读 · 6 评论 -
Codeforces1696D. Permutation Graph,静态区间最大最小值,ST表
从 1 到 n 的路径一定要经过两个极值点,以此递归即可获得最优解。需要支持的操作是求静态区间的最大/最小值,可以用 ST 表,现场把我四年前的博客翻译成 rust…https://blog.csdn.net/m0_37809890/article/details/82585410......原创 2022-06-26 02:10:58 · 278 阅读 · 0 评论 -
Codeforces1696 C. Fishingprince Plays With Array
首先将两个数组切分到不能切分为止,然后判断是否相等,数组的表示经过了一定的压缩。rust:原创 2022-06-26 02:06:46 · 196 阅读 · 0 评论 -
leetcode 2766. 统计区间中的整数数目 珂朵莉树 使用 set 维护区间合并 rust/c++
给你区间的 空 集,请你设计并实现满足要求的数据结构:新增:添加一个区间到这个区间集合中。统计:计算出现在 至少一个 区间中的整数个数。实现 CountIntervals 类:CountIntervals() 使用区间的空集初始化对象void add(int left, int right) 添加区间 [left, right] 到区间集合之中。int count() 返回出现在 至少一个 区间中的整数个数。注意:区间 [left, right] 表示满足 left <= x <.原创 2022-05-15 16:14:29 · 271 阅读 · 0 评论 -
rust leetcode 周赛 286
模拟比赛,1:33:00(超时3分钟),no dirty,第一名时间 0:10:40。。。猫猫疑惑,写同样的题目花人家9倍时间,酱紫慢?rust snippet:从 vec 构建 hashset:HashSet::<i32>::from_iter(nums1.into_iter());,里面也可以是 .iter.clone()reverse string:.chars().rev().collect::<String>()string 不能加 string,但可以加 &am原创 2022-04-22 03:13:29 · 1265 阅读 · 0 评论 -
rust leetcode 周赛 287
2224 转化时间需要的最少操作数impl Solution {pub fn convert_time(current: String, correct: String) -> i32 { let (h0, m0) = current.split_once(":").unwrap(); let (h0, m0) = (h0.parse::<i32>().unwrap(), m0.parse::<i32>().unwrap()); let (h1, m原创 2022-04-22 01:01:11 · 186 阅读 · 0 评论 -
rust leetcode 周赛 288
2231 largest-number-after-digit-swaps-by-parity/impl Solution { pub fn largest_integer(num: i32) -> i32 { let mut digits = num. to_string(). chars(). map(|d| d.to_digit(10).unwrap() as i32). c原创 2022-04-21 21:03:32 · 359 阅读 · 0 评论 -
【题解】codeforces1667B. Optimal Partition
给一个长为 5e5 的数组(正负1e9),你需要将其分为若干段,使得价值之和最大,每段的价值定义是:如果段之和为正,则价值为段长度如果段之和为0,则价值为0如果段之和为负,则价值为段长度的相反数。dp,用 dp[i] 表示 1..=i 分好后的价值之和,那么有 dp[i] = max_{j=0..i} dp[j] + value(j..=i)。考虑一个性质,如果负价值或零价值的段长度大于 1,那么总可以将它拆开而结果不会更劣,所以可以认为所有负价值或零价值的段长都为 1.(实际上无需这个结论原创 2022-04-20 20:22:26 · 470 阅读 · 0 评论 -
rust leetcode 前十题
刷题集Two sumuse std::collections::HashMap;impl Solution { pub fn two_sum(nums: Vec<i32>, target: i32) -> Vec<i32> { let mut mp = HashMap::new(); for (i, num) in nums.iter().enumerate() { if let Some(&id原创 2022-03-28 00:03:47 · 501 阅读 · 0 评论