Catalog
洛谷P1086花生采摘

解题过程如下,刚开始以为要冬天规划,实则不用。

#include <iostream>
#include <algorithm>
using namespace std;
int p[200][200];
int k;
struct peanut {
int x, y;
int t;
int num;
};
peanut pnut[5010];
bool cmp(peanut a, peanut b) {
return a.num > b.num;
}
int main() {
int m, n,time, k = 0;
cin >> m >> n >> time;
int t;
for(int i = 1; i <=m;i++)
for (int j = 1; j <= n; j++) {
cin >> p[i][j];
if (p[i][j] > 0) {
pnut[k].num = p[i][j];
pnut[k].x = i;
pnut[k].y = j;
k++;
}
}

sort(pnut, pnut + k, cmp);
int ans = 0;
for (int i = 0; i < k; i++) {
if (i == 0) pnut[i].t = pnut[i].x + 1;
else pnut[i].t = pnut[i - 1].t + abs(pnut[i].x - pnut[i - 1].x) + abs(pnut[i].y - pnut[i - 1].y) + 1;
if (pnut[i].t + pnut[i].x <= time) ans += pnut[i].num;
}

cout << ans;
}
Author: superzhaoyang
Link: http://yoursite.com/2019/10/10/洛谷P1086花生采摘/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
Donate
  • 微信
  • 支付宝

Comment