UVA 11292 The Dragon of 贪心
生活随笔
收集整理的這篇文章主要介紹了
UVA 11292 The Dragon of 贪心
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
題意是 一個(gè)龍有n個(gè)頭 頭都有直徑 有m個(gè)騎士 騎士有身高 如果身高超過直徑 騎士就能砍下龍頭 一個(gè)騎士只能砍一個(gè)頭 國王雇傭騎士 價(jià)格是騎士的身高 求國王最少要多少錢才能殺掉龍 如果殺不掉 就輸出?Loowater is doomed!
貪心思想,直接騎士和龍頭都從小到大排,從最小的騎士開始選去砍龍頭。。
#include <stdio.h> #include <string.h> #include <algorithm> using namespace std; const int MAXN = 20005; int n, m, d[MAXN], k[MAXN], ans; void init() { ans = 0; for (int i = 0; i < n; i ++) scanf("%d", &d[i]); for (int i = 0; i < m; i ++) scanf("%d", &k[i]); } void solve() { init(); sort(d, d + n); sort(k, k + m); int j = 0; for (int i = 0; i < m; i ++) { if (k[i] >= d[j]) { ans += k[i]; j ++; if (j == n) { printf("%d\n", ans); return; } } } printf("Loowater is doomed!\n"); } int main() { while (~scanf("%d%d", &n, &m) && n + m) { solve(); } return 0; }
貪心思想,直接騎士和龍頭都從小到大排,從最小的騎士開始選去砍龍頭。。
#include <stdio.h> #include <string.h> #include <algorithm> using namespace std; const int MAXN = 20005; int n, m, d[MAXN], k[MAXN], ans; void init() { ans = 0; for (int i = 0; i < n; i ++) scanf("%d", &d[i]); for (int i = 0; i < m; i ++) scanf("%d", &k[i]); } void solve() { init(); sort(d, d + n); sort(k, k + m); int j = 0; for (int i = 0; i < m; i ++) { if (k[i] >= d[j]) { ans += k[i]; j ++; if (j == n) { printf("%d\n", ans); return; } } } printf("Loowater is doomed!\n"); } int main() { while (~scanf("%d%d", &n, &m) && n + m) { solve(); } return 0; }
總結(jié)
以上是生活随笔為你收集整理的UVA 11292 The Dragon of 贪心的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Dart是一个怎样的语言?
- 下一篇: 封装一个类搞定90%安卓客户端与服务器端