一、题意:有n头牛,每头牛每分钟会吃D个菜,把这头牛赶回去需要时间T(人再返回又需要T),一次只能赶回去一头牛,也就是说剩下的牛会继续吃菜。求牛最少吃多少菜
二、思路:贪心。按D/T将牛进行排序,然后计算即可。
三、代码:
1 #include"iostream" 2 #include"stdio.h" 3 #include"algorithm" 4 #include"string.h" 5 using namespace std; 6 7 const int MAXN=100005; 8 typedef long long ll; 9 const ll INF=100000000000;10 11 int used[MAXN];12 struct Cow13 {14 int t,d;15 double div;16 };17 Cow cows[MAXN];18 int n;19 20 bool Cmp(const Cow a,const Cow b)21 {22 return a.div>b.div;23 }24 ll Solve()25 {26 ll res=0;27 ll sum=0;28 for(int i=0;i