你好,欢迎来到电脑编程技巧与维护杂志社! 杂志社简介广告服务读者反馈编程社区  
合订本订阅
 
 
您的位置:技术专栏 / C专栏
UVA 11729 (13.09.09)
 
题意:
就是要对T个士兵洗脑, 叫他们做事
洗脑需要时间的, 为A
洗完脑就滚蛋吧, 乖乖听话做事去, 做事时间为B;
求对所有士兵洗完脑并做完全部事后, 一共花了多少时间?
 
要点:
训完一个士兵后, 这个士兵做事去了, 这时候已经可以去训下一个了
 
做法:
明显的, 我们要把做事时间最久的找出来, 这样, 他做事的时候可以去训其他士兵, 节约时间
故先对做事时间排名, 然后模拟各种情况就是了~
不要乱, 不会乱!
 
AC代码:
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include<stdio.h>  
#include<algorithm>  
    
using namespace std;  
    
struct soldier {  
    int A;  
    int B;  
}s[1234];  
    
int cmp(soldier a, soldier b) {  
    return a.B > b.B;  
}  
    
int cas = 0;  
    
int main() {  
    int T;  
    int sum;  
    while(scanf("%d", &T) != EOF && T) {  
        int t1, t2;  
        sum = 0;  
        for(int i = 0; i < T; i++)  
            scanf("%d %d", &s[i].A, &s[i].B);  
        sort(s, s+T, cmp);  
        for(int i = 0; i < T; i++) {  
            if(i == 0) {  
                sum += s[i].A;  
                t1 = s[i].B;  
            }  
            if(i != 0) {  
                t2 = s[i].A + s[i].B;  
                if(t2 > t1) {  
                        sum += s[i].A;  
                        t1 = s[i].B;  
                }  
                else {  
                    t1 = t1 - s[i].A;  
                    sum += s[i].A;  
                }  
            }  
        }  
        sum += t1;  
        printf("Case %d: ", ++cas);  
        printf("%d\n", sum);  
    }  
    return 0;  
}

 

  推荐精品文章

·2024年9月目录 
·2024年8月目录 
·2024年7月目录 
·2024年6月目录 
·2024年5月目录 
·2024年4月目录 
·2024年3月目录 
·2024年2月目录 
·2024年1月目录
·2023年12月目录
·2023年11月目录
·2023年10月目录
·2023年9月目录 
·2023年8月目录 

  联系方式
TEL:010-82561037
Fax: 010-82561614
QQ: 100164630
Mail:gaojian@comprg.com.cn

  友情链接
 
Copyright 2001-2010, www.comprg.com.cn, All Rights Reserved
京ICP备14022230号-1,电话/传真:010-82561037 82561614 ,Mail:gaojian@comprg.com.cn
地址:北京市海淀区远大路20号宝蓝大厦E座704,邮编:100089