洛谷 P2695 騎士的工作
阿新 • • 發佈:2018-03-22
個人 print ref 描述 round -o name spa 如果
輸入樣例#1: 復制
洛谷 P2695 騎士的工作
題目背景
你作為一個村的村長,保衛村莊是理所當然的了.今天,村莊裏來了一只惡龍,他有n個頭,惡龍到處殺人放火。你著急了。不過天無絕人之路,現在來了一個騎士團。裏面有m位成員(往下看)
題目描述
每個人都可以砍掉一個大小不超過(<=)z的頭,要money個金幣,求最小花費。
輸入輸出格式
輸入格式:
第一行兩個整數 n m
下接n行,一個整數 表示n個頭的大小。
下接m行,每個人可以砍的頭大小或金幣(金幣==頭的大小)。
輸出格式:
一個整數,最小花費。如果無解,輸出“you died!”
輸入輸出樣例
2 3 5 4 7 8 4輸出樣例#1: 復制
11
說明
1<=n,m<=20000
思路:排序+枚舉 難度:普及/提高-
#include<algorithm> #include<cstdio> using namespace std; int n, m, k = 1; int sum, tot; int a[20005], b[20005]; int main() { scanf("%d%d", &n, &m); if(n > m) { printf("you died!"); return 0; } for(int i = 1; i <= n; i++) scanf("%d", &a[i]); for(int i = 1; i <= m; i++) scanf("%d", &b[i]); sort(a+1, a+n+1); sort(b+1, b+m+1); for(int i = 1; i <= n; i++) for(int j = k; j <= m; j++) if(a[i] <= b[j]) { sum+= b[j]; k = j+1; tot++; break; } if(tot == n) printf("%d", sum); else printf("you died!"); return 0; }
洛谷 P2695 騎士的工作