ACM-贪心
文章平均质量分 63
ACM-贪心
Echo_ac
不知未来怎样,现在一定全力以赴
展开
-
AcWing 2014. 岛(USACO 2012 US Open Bronze Division)
题目链接思路:很容易想到对每个田地的高度进行从小到大的排序,再依次枚举每一个高度,看看海水涨到这个高度会不会对结果有什么影响。我们就看这个田地左右两边的田地的高度和它的关系,很容易看出只有这两种情况才会对结果有影响,-1的那三个图其实可能统一判断,具体见代码。但是这样有一个问题,就是可能出现这样的情况:中间有很多个相同高度的田,但是这些相同的其实可以看做一个田,对结果的影响是一样的,所以我们用到unique函数对初始高度进行去重注意更新答案的时候,要判断是否是枚举到不同的高度了,uniqu原创 2022-01-06 23:05:31 · 385 阅读 · 0 评论 -
Codeforces Round #763 (Div. 2) C. Balanced Stone Heaps(弱鸡分析)
题目链接思路正解是二分答案+贪心,很多人可能不明白为何检验的时候能从后往前检验,这里来分析一波。对于每次二分枚举到的最小值 xxx , 我们要保证每一堆石头的数量最后都 ≥x\geq x≥x ,如果从前往后分配,对于当前堆的石头数量 aia_iai , 我们无法知道该分配多少给 ai−1,ai−2a_{i-1}, a_{i-2}ai−1,ai−2 ,也无法知道分配了aia_iai以后能不能再让 ai≥xa_i \geq xai≥x。如果从后往前, 如果当前 bi≤xb_i \leq xbi原创 2022-01-02 11:06:26 · 475 阅读 · 0 评论 -
Codeforces Round #700 (Div. 2) B. The Great Hero (大意wa了12次)
题目点这里文章目录题解AC代码题解题目问hero能否杀死所有的怪兽刚开始想简单了,我以为不用排序直接,一个一个的看这样就死在了这样的样例2 2 22 12 2hero攻击力为2,生命值为 2,第一个怪兽攻击力2,生命力2。第二个怪兽攻击力1,生命力2.。 如果不排序,那么hero杀死第一个怪兽后自己也牺牲了,就不能杀死所有的怪兽。所以我们需要按照,怪兽的攻击力从小到大排序,如果攻击力相同则生命力小的在前面,采用这种贪心策略能过AC代码#include<bits/stdc++原创 2021-02-08 10:33:27 · 223 阅读 · 0 评论 -
ATcoder173 C(二进制枚举)
思路:数组b二进制枚举,1~h枚举行,h+1到h+w枚举列AC代码:#include <iostream>using namespace std;const int maxn = 200;char s[maxn][maxn];int main(){ int h,w,k; cin>>h>>w>>k; for(int i=1;i<=h;i++) { for(int j=1;j<=w;j+原创 2020-07-08 21:08:40 · 245 阅读 · 0 评论 -
贪心入门经典例题(一定要做)
区间覆盖问题:切长条Selfish Grazing(题目)排序安排(蒟蒻自己取的):拼数巨石滚滚枚举贪心:矩阵消除Flip Game原创 2020-07-08 17:22:50 · 188 阅读 · 0 评论 -
国王的游戏(贪心,排序)
题目思路:对于A,B两个大臣,他们前面的人的左手上的整数乘积为S,对于A:LA,RA; B:LB,RB.原创 2020-07-08 17:21:35 · 327 阅读 · 0 评论 -
矩阵消除(二进制枚举,贪心)
题目传送门文章目录思路:AC代码:思路:题目说我们选某几列,某几行,使得我们获得的权值最大。那么我们二进制枚举行,例如有4*4的矩阵,k=4, 1010表示,1行和第4行需要选,剩下2个选列,对应行置为0。那么再取处理后的矩阵的权值和前2大的列即可AC代码:#include <bits/stdc++.h>using namespace std;typedef long long LL;const int maxn = 200;int a[maxn][maxn];LL原创 2020-07-08 16:50:45 · 667 阅读 · 0 评论 -
巨石滚滚(贪心,思维)
题目文章目录思路:代码:思路:贪心+排序,但是怎样贪呢?设两个石头x y从3个方面考虑:如果都是稳定性增加,则把a更小的排在前面,因为刚开始你比较弱,当然先撞小的。如果都是稳定性减少的,这个时候总的减少的是一定的,则把b更大的放在前面,使得回复更多一点。如果一个稳定性增加,一个减少,当然先撞稳定性增加的那个代码:#include <bits/stdc++.h>using namespace std;const int maxn = 5e5+9;typedef lo原创 2020-07-08 11:40:50 · 228 阅读 · 0 评论 -
切长条(贪心 思维)
题目文章目录原创 2020-07-08 11:04:50 · 156 阅读 · 0 评论 -
拼数(排序+思维+贪心)
题目思路:如果按照字典序从大到小排序是错误的,比如231 和23应该这样排序:对于整数A 和整数B,比较AB和BA的值,若AB<BA,则按照B A顺序排,否则按照A B 顺序排.最后输出就行关于sort的自定义排序我参考的大佬,我开始写的冒泡排序AC代码:#include <bits/stdc++.h>using namespace std;typedef long long LL;const int maxn = 30;LL a[maxn];bool cmp原创 2020-07-02 21:39:56 · 287 阅读 · 0 评论