
贪心
Leo_Riddle
AFO
展开
-
codeforces 346C Number Transformation II
传送门 题意: 给两个数字a,b,有两个操作,第一个操作直接-1,第二个操作是,求a变成b的最少操作数 题解: 很明显令表示由b+k到b的最少操作数,假设b,b+k可以一步操作到达, 由此得出单调上升,即可贪心每次减去最大值 注意:到会有重复,需要用到函数 去重后的数字 当然也有别的思路:考虑到这是第一步可达区间,再从这里可以依次扩展到其他步的可达区间,有机会再写吧 代码: ...原创 2019-11-16 17:53:04 · 227 阅读 · 0 评论 -
codeforces 549C Happy Line
传送门 题意: 一行数字可以前后交换,交换后,之前在前面的数字+1,之前在后面的数字-1,问是否可以将这一行数字通过交换使得得到一行单调上升的数字 题解: 可以发现交换前后数字都只改变1 不妨将数字的下标考虑进来,先不考虑1,直接交换 ,可以发现我们交换后再减去下标就是上面的式子 所以原来的1就可以等价为直接交换 考虑到这样一个事实我们先给再排序后由于整体单增再减,也是单增的,...原创 2019-11-16 17:13:04 · 246 阅读 · 0 评论 -
codeforces 1256E Yet Another Division Into Teams
传送门 题意: n个数字,分成若干队伍(每个队伍至少3个数字),每个队伍都有最大最小值的差值,如何才能使所有队伍的最大最小差值之和最小。 题解: 容易有结论:人数 6,一定没有,人数6优 下证:不妨设 则任取 有 所以我们可以通过将所有队员划分为3、4、5人数的队伍,贪心得按照大小顺序选择队员一定优,然后通过dp划分即可得到最优解 ...原创 2019-11-16 14:33:14 · 239 阅读 · 0 评论 -
洛谷 P3817 小A的糖果
嗯,模拟加贪心. 考虑第i盒糖的吃糖优先级,肯定有第i盒糖大于第i-1盒糖,因为第i盒糖剩的越少第i+1盒糖吃的越少而第i-1盒糖已经吃了不用再考虑,所以先吃第i盒糖吃完再吃第i-1盒糖。 代码: #include #include using namespace std; int main() { int n,x,tmp,last; long long ans=0; scanf("%原创 2017-07-02 19:58:17 · 451 阅读 · 0 评论 -
bzoj P4027 [HEOI2015]兔子与樱花
传送门 好吧这题我也没想出来。我果然是个zz。。 很妙的贪心,(其实我也知道贪心,但是姿势不对),我们观察数据n TIP:遇到树一类的思博题,我们要对子树分析,观察数据范围以及询问的ans的特点(要想到树上dp或贪心或用数据结构·维护dfs序)。贪心也要尝试猜一些结论。 代码: #include #include #include #include using namespace std原创 2017-07-19 01:42:14 · 414 阅读 · 0 评论 -
codeforces 882C Hacker, pack your bags!
传送门 愚蠢的博主又上线啦! 这题博主一看排序+树状数组o(n*logn),先分类把天数相同的证件拿一个vector存(拿数组就炸了,vector的话空间就是o(n)了),然后按l第一关键字,r第二关键字,价值第三关键字排序,然后枚举n个证件,用x减去这个证件的天数,然后在相应的vector内,分两段l之前和r之后,然后树状数组求这两个区间的最大值。 然后博主非常尴尬wa了一个小时。。原创 2017-07-04 22:22:49 · 696 阅读 · 0 评论