首先,一定要读好题,不然一定会做错。我第一遍就做错了,然后又读了一遍题才发现我的漏洞。 如果只是盲目的去做,那么一定会做错。而且一定要自己出数据,样例不可信!还有一定要画图。
我的思路是:先把每一棵有花生的树存到了一个struct,然后把这个struct进行排序,因为题中说了一定要先摘最大的花生树。然后遍历每一棵花生树,如果去第i棵花生树的时间+采摘的时间+返回的时间<=总时间,那么一定要这棵树,否则就停止循环,因为下面的花生树一定摘不了,因为题中说了一定要摘最大的花生树。
代码如下:
#include <iostream> #include <cstring> #include <string> #include <algorithm> #include <queue> #include <stack> #include <iomanip> #include <math.h> #include <cmath> #include <ctime> #include <cstdio> #define inf 0x7fffffff #define ll long long //#include <windows.h> //#include <bits/stdc++.h> using namespace std;
123456789101112131415