首页 > TAG信息列表 > USACO12MAR
LG-P3049 [USACO12MAR]Landscaping S 题解
又是一道考试题 对一排泥土进行三种操作,使其变为目标状态,求最小花费代价。 请原谅我接下来奇怪的量词… 思路 大致方法: 很明显,求代价,就是用 dp 。但是,你会发现直接去推动态转移方程是很难的,所以,我们选择把泥土“量化”。 “量化泥土”: 我们把泥土按量进行排列,例如: 原数组是P3052 [USACO12MAR]Cows in a Skyscraper G
看到这个数据范围,显然状压 用\(f[i][j]\)表示开了i个电梯,装的牛的集合为j,每次往最后一台电梯加入牛,让最后一台电梯的重量为\(f[i][j]\) std::mt19937 r(std::chrono::system_clock::now().time_since_epoch().count()); const int N = 21; int n, W, w[N]; namespace DP { int fP3052 [USACO12MAR]Cows in a Skyscraper G
做题 OJ 题意 给出n个物品,体积为w[i],现把其分成若干组,要求每组总体积<=W,问最小分组。(n<=18) 解法 dfs+小剪枝 1,如果当前的答案超过ans 显然不合理 剪掉 2,我们可以从大到小选择每一个放在那一个电梯中 缩小枚举空间 (从小到大枚举的空间更多 耗时更长) 代码 #include<iosLuogu P3052 [USACO12MAR]Cows in a Skyscraper G
题面 题目简意: 给出 \(n\) 个物品,体积为 \(w_i\) ,现把其分成若干组,要求每组总体积 \(V \leq W\) ,问最小分组数。 看这个题意,大概率是一个DP,看一下 \(n\) 的数据范围,点明了记忆化搜索和状压DP两种方法 这篇题解来讲后者 首先确定状态,每一个正整数状态 \(s\) 的在二进制下的第 \(i-1P2698 [USACO12MAR]花盆Flowerpot——单调队列
记录每天看(抄)题解的日常; https://www.luogu.org/problem/P2698 我们可以把坐标按照x递增的顺序排个序,这样我们就只剩下纵坐标了; 如果横坐标(l,r)区间,纵坐标的最大值减去最小值大于d,那么就可以更新答案; 看出随着l的增长,r一定是递增的; 可以证明不存在(l2,r2),l2>l1且r2<r,(maxy-miny)>d,且能[USACO12MAR]花盆Flowerpot 解题报告
题意: 给出N滴水的坐标,y表示水滴的高度,x表示它下落到x轴的位置。 每滴水以每秒1个单位长度的速度下落。你需要把花盆放在x轴上的某个位置,使得从被花盆接着的第1滴水开始,到被花盆接着的最后1滴水结束,之间的时间差至少为D。 我们认为,只要水滴落到x轴上,与花盆的边沿对齐,就认为被接住。