贪心
Carney_Lsz
要相信每天都值得期待.
展开
-
【洛谷】修理牛棚 Barn Repair(贪心、快排)
题目链接 思路: 首先可以先进行一次特判,如果给的木板数大于牛的总数则可以直接输出牛的数目(此时牛的数目就是最短木板总长度)。其次题目只是说明了有c只牛,它们的牛棚编号并非有序,所以要先对牛棚编号从大到小排序(从小到大也可以,从大到小更容易表示)。然后根据牛棚编号算出来每相邻两个牛棚之间的距离并对这个距离从大到小排序以及算出相距最远的两个牛棚距离ans,因为一共m个木板,所以对ans由大到小减去m-1个比较大距离所剩大小就是最短木板总长度。 AC: #include<iostream>原创 2020-07-27 15:23:45 · 312 阅读 · 0 评论 -
【洛谷】排队接水(贪心、排序)
题目链接 思路:需要记录下标进行排序,因此可以使用结构体来存储每个人所用时间和下标(初始位置)。又因为要求平均排队时间最短,所以要把时间短的排在前面,利用sort可以快速排序。最终输出排序后的下标顺序,然后遍历计算总等待时间除以总人数并输出即可。 AC: #include<iostream> #include<cstdio> #include<algorithm> using namespace std; struct pre { int b,num;原创 2020-07-27 11:13:54 · 319 阅读 · 0 评论 -
【HDU】Bone Collector (01背包、贪心)
题目链接 此题与【POJ】Charm Bracelet思路一样,题目大意也基本相同,所以就不赘述了。 AC: #include<iostream> #include<algorithm> #include<memory.h> const int N=10000; using namespace std; int v[N], w[N], dp[N]; int main() { int t,n,s; cin >> t; while(t原创 2020-07-27 00:32:48 · 161 阅读 · 0 评论 -
【POJ】Charm Bracelet (01背包、贪心)
题目链接 题目大意: 有一个容量为M的背包和N(1 ≤N≤ 3,402) 件物品;对于第i件物品的重量是Wi(1 ≤Wi≤ 400),而且它的价值是Di(1 ≤Di≤ 100)。现在将这N件中的其中几件物品装入背包使装入物品的总重量不超过背包容量M(1 ≤M≤ 12,880),同时使这些物品总价值最大,最后输出这个价值。 AC: #include<iostream> #include<algorithm> #include<memory.h>...原创 2020-07-27 00:03:50 · 176 阅读 · 0 评论 -
【PAT】组个最小数(贪心)
题目链接 思路: 这道题不难。首先为了防止最高位是0(题目中已经说了,含有至少一个非零数),那么就从1的位置开始向后查直到找到一个非零数并输出,然后减少一个这个数,再从零重新遍历输出,进而一定是最小的。 AC: #include<iostream> using namespace std; int main() { int a[10],i; for(i=0;i<10;i++) cin >> a[i]; for(i=1;i<10;i++) { if原创 2020-07-26 22:18:08 · 161 阅读 · 0 评论 -
【PAT】月饼(贪心)
原题链接 思路: 因为是要获得最大收益首先要算出每种月饼单价,然后从选择最高单价开始售卖。因此我们要先根据库存量和总售价来计算出月饼的单价,之后再进行从高到低排序。 AC: #include<iostream> #include<algorithm> using namespace std; struct mooncake{ double store;//库存量 double sell;//总售价 double price;//单价 }cake[1100]; boo原创 2020-07-26 19:20:55 · 215 阅读 · 0 评论