uva 11269——Setting Problems

傷城~ 2022-08-18 13:16 25阅读 0赞

题意:一共有n个问题,每个问题都有相应的s和g段,必须先解决s,然后才能解决g,两个人解决问题,问怎么解决使得总耗时最小。

思路:贪心。按照A.s+max(A.g,B.s)+B.g和B.s+max(B.g,A.s)+A.g;的ab先后顺序,排序即可。

code:

  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. const int N=105;
  4. struct node
  5. {
  6. int g,s;
  7. }v[N];
  8. bool cmp(node A,node B){
  9. return A.s+max(A.g,B.s)+B.g<B.s+max(B.g,A.s)+A.g;
  10. }
  11. int main()
  12. {
  13. int n;
  14. while (~scanf("%d",&n))
  15. {
  16. for (int i=0;i<n;i++) scanf("%d",&v[i].s);
  17. for (int i=0;i<n;i++) scanf("%d",&v[i].g);
  18. sort(v,v+n,cmp);
  19. int S=0,G=0;
  20. for (int i=0;i<n;i++){
  21. S+=v[i].s;
  22. if (G<=S) G=S+v[i].g;
  23. else G+=v[i].g;
  24. }
  25. printf("%d\n",G);
  26. }
  27. }

发表评论

表情:
评论列表 (有 0 条评论,25人围观)

还没有评论,来说两句吧...

相关阅读

    相关 uva 11269——Setting Problems

    题意:一共有n个问题,每个问题都有相应的s和g段,必须先解决s,然后才能解决g,两个人解决问题,问怎么解决使得总耗时最小。 思路:贪心。按照A.s\+max(A.g

    相关 uva 11490 ——Just Another Problem

    题意:刚开始并没有看懂,耐着性子硬读下去,才勉强弄懂大意,英语也要加强训练啊! 题目是说你有s行c列士兵,然后带着他们去打仗,为了虚张声势,在士兵的中间缺了两个边长为r的洞

    相关 UVA 10779 Collectors Problem(最大流)

    题意:现在有包括了Bob在内的N个小朋友,M种游戏卡片,Bob可以和其他人交换卡片,除了Bob,每个人的交换原则都是只给出自己拥有大于1的卡片,接受自己没有的卡片。的问他最后