题解 UVA501 【Black Box】】的更多相关文章

思路与中位数一题,解决方案比较像,使用对顶堆来解决. 具体实现为,使用两个堆,大根堆维护较小的值,小根堆维护较大的值,即小根堆的堆顶是较大的数中最小的,大根堆的堆顶是较小的数中最大的. 将大于大根堆堆顶的数(比所有大根堆中的元素都大)的数放入小根堆,小于等于大根堆堆顶的数(比所有小根堆中的元素都小)的数放入大根堆. 那么就保证了所有大根堆中的元素都小于小根堆中的元素. 如果将大根堆中元素个数维护为\(i\)个,那么就可以直接访问大根堆堆顶,来得到从小到大的顺序排序后的第\(i\)个元素了. \(…
题面 CF436E Cardboard Box \(n\) 个关卡,对每个关卡可以花 \(a_i\) 时间得到 \(1\) 颗星,或花 \(b_i\) 时间得到 \(2\) 颗星,或不玩.问获得 \(m\) 颗星最少需要多少时间. 数据范围:\(1\le n\le 3\cdot 10^5\),\(1\le m\le 2n\),\(a_i<b_i\). 题解 蒟蒻做这题时已经知道是反悔贪心了,但是做了 \(4\) 个小时做不出来.于是去看题解,感觉这个 \(5\) 堆做法太非人类了,于是去看 CF…
通过理解题意,我们发现: 当需要拐弯的时候,兔子需要先走回箱子的位置,再走向拐弯的方向.则拐弯操作的花费为 \(2\) .而直行的操作花费为 \(1\) . 所以, 如果不需要拐弯,也就是 \(x1=x2\) 或 \(y1=y2\) 时,直接计算花费. 如果需要拐弯,也就是 \(x1\neq x2\) 且 \(y1\neq y2\) 时,计算花费后再加2. //AC代码 #include<iostream> #include<cstdio> #include<algorith…
Cardboard Box 贪了个半天贪不对, 我发现我根本就不会贪心. 我们先按b排序, 然后枚举选两颗心的b的最大值, 在这个之前的肯定都要选一个, 因为前面的要是一个都没选的话, 你可以把当前选两颗心的替换成前面选两颗心, 然后用平衡树或者线段树维护一下前k大和就好啦. #include<bits/stdc++.h> #define LL long long #define fi first #define se second #define mk make_pair #define P…
Content 有一个兔子拖着一个盒子在走,每秒钟可以带着盒子走一个单位,也可以不带着盒子走一个单位.当且仅当兔子和盒子的距离不超过 \(1\) 时可以带着盒子走一个单位.现给出 \(t\) 次询问,每次询问给出四个整数 \(x_1,y_1,x_2,y_2\),试求出将盒子从 \((x_1,y_1)\) 拖到 \((x_2,y_2)\) 最少需要多少秒. 数据范围:\(1\leqslant t\leqslant 1000,1\leqslant x_1,y_1,x_2,y_2\leqslant 1…
[codeforces 241]C. Mirror Box 试题描述 Mirror Box is a name of a popular game in the Iranian National Amusement Park (INAP). There is a wooden box, 105 cm long and 100cm high in this game. Some parts of the box's ceiling and floor are covered by mirrors.…
1297 - Largest Box   PDF (English) Statistics Forum Time Limit: 2 second(s) Memory Limit: 32 MB In the following figure you can see a rectangular card. The width of the card is W and length of the card is L and thickness is zero. Four (x*x) squares a…
Beef McNuggets题解 Hubert Chen Farmer Brown's cows are up in arms, having heard that McDonalds is considering the introduction of a new product: Beef McNuggets. The cows are trying to find any possible way to put such a product in a negative light. One…

BOX

题目连接:http://acm.tju.edu.cn/toj/showp2392.html2392.   Box Time Limit: 1.0 Seconds   Memory Limit: 65536KTotal Runs: 846   Accepted Runs: 304    Multiple test files Ivan works at a factory that produces heavy machinery. He has a simple job — he knocks…
题面戳我 Solution 并不会做,看了下题解大概了解了.期望这个东西好难搞啊qwq 我们定义\(dp[i][j]\)表示第\(i\)步,拿到宝物前的状态为\(j\). 正着来会有很多不合法的情况,剔除比较麻烦,我们反着来考虑,因为你想如何是合法,就是状态表示拿得物品个数小于等于步数嘛,倒着来最后答案根据我们状态定义可以知道,答案是\(dp[1][0]\)嘛,然后你想,我们每向前一次,就最多剔除一个宝物,最多剔除的就是\(K\)个,其余不合法的情况到最后不会剔除完,就不会被计入答案中 转移方程…