标签:
(英文题!!!! 为那些跟我一样acmer翻译一下吧 是实话 看不懂题真的很烦人 以上都是废话, 下面解释
英文题不出意外还是队友写的, 题意是第一行输入 要买的量k 要走的总长度e 店铺的数量n ; 然后就是每家店铺距离起点的距离 存货量 成本 。
ps : 将一单位的物品移动一个单位的距离要花费1磅运费;
求 需要花费的最小的成本;
(这道题的解题思路在于按照 将每家店铺以单位的物品运到终点所需要的成本 排序, 然后从成本低的开始购买直到量够为止)
)
A single integer that is the minimum cost for FJ to buy and transport the feed
2 5 3
3 1 2
4 1 2
1 1 1
7
1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<string.h> 4 #include<ctype.h> 5 #define N 1010 6 #define max(a, b)(a > b ? a : b) 7 8 typedef struct node 9 { 10 int d, t, p; 11 int money; 12 } node; 13 14 int cmp(const void *a, const void *b) 15 { 16 node *s1 = (node *)a, *s2 = (node *)b; 17 return s1->money - s2->money; 18 } 19 int main() 20 { 21 node node[N]; 22 int k, m, n, sp, st, i; 23 while(scanf("%d%d%d", &k, &m, &n) != EOF) 24 { 25 st = sp = 0; 26 for(i = 0 ; i < n ; i++) 27 { 28 scanf("%d%d%d", &node[i].d, &node[i].t, &node[i].p); 29 node[i].money = (m-node[i].d)+node[i].p; 30 } 31 qsort(node, n, sizeof(node[0]), cmp); 32 for(i = 0; i<n; i++) 33 { 34 if(st < k) 35 { 36 if(node[i].t>k-st || node[i].t == k-st) 37 { 38 sp += (k-st)*node[i].money; 39 break; 40 } 41 else 42 { 43 st += node[i].t; 44 sp += node[i].t*node[i].money; 45 } 46 } 47 } 48 printf("%d\n", sp); 49 } 50 return 0; 51 }
最后再说一句 由于能力有限 有两道不会写的没有发代码和题解;
————————END
标签:
原文地址:http://www.cnblogs.com/yishilin/p/4476699.html