UVa 11292 Dragon of Loowater
o(n+m)的复杂度 水龙有n个头 m个骑士 能力值为x的骑士可以砍掉龙的一个半径不超过x的头 要花x的money 求最小花费砍光头 不行输出Loowater is doomed!
#include <stdio.h> #include <algorithm> using namespace std; int a[20010]; int b[20010]; int main() { int n,m,i,j,sum; while(scanf("%d %d",&n,&m),n||m) { for(i = 0;i < n; i++) scanf("%d",&a[i]); for(j = 0;j < m; j++) scanf("%d",&b[j]); sort(a,a+n); sort(b,b+m); i = j = sum = 0; while(i < n && j < m) { if(a[i] <= b[j]) { sum += b[j]; i++; j++; } else j++; } if(i == n) printf("%d\n",sum); else puts("Loowater is doomed!"); } return 0; }
补充:软件开发 , C++ ,