poj 1017 经典贪心算法

测了很多数据,很多注意的情况,主要是开始的时候分清思路,并且需要严谨

 

终于AC,代码如下

 

#include<stdio.h>
#include<algorithm>
using namespace std;

int main()
{
    int a[10];
    //freopen("E:\\input.txt","r",stdin);
    //freopen("E:\\output.txt","w",stdout);
    while(scanf("%d%d%d%d%d%d",&a[1],&a[2],&a[3],&a[4],&a[5],&a[6])!=EOF)
    {

        if(a[1]+a[2]+a[3]+a[4]+a[5]+a[6]==0)
            break;

        int ans=a[6]+a[5]+a[4];

        //5+1;
        int temp=a[5]*11;
        if(temp>=a[1])
            a[1]=0;
        else
            a[1]=a[1]-temp;

        //4+2+1;
        temp=a[4]*5;
        if(temp>=a[2]){
            a[4]=(temp-a[2])*4;
            a[2]=0;
//a【4】如果还可以放 1
            if(a[4]>=a[1])
                a[1]=0;
            else
                a[1]=a[1]-a[4];
        }
        else
            a[2]=a[2]-temp;

        //3+3+2+1;
        ans+=a[3]/4;
        temp=a[3]%4;
        int temp1=0,temp2=0;
        if(temp==1){
            temp1=7;
            temp2=5;
            ans++;
        }
        else if(temp==2){
            temp1=6;
            temp2=3;
            ans++;
        }
        else if(temp==3){
            temp2=1;
            temp1=5;
            ans++;
        }
        else{
            temp1=0;
            temp2=0;
        }
        a[2]=a[2]-temp2;
        a[1]=a[1]-temp1;
        if(a[2]<0&&a[1]>0)
            a[1]=a[1]+a[2]*4;

        if(a[2]>0){
            ans+=a[2]/9;
            if(a[2]%9){
                a[2]=36-a[2]%9*4;
                a[1]=a[1]-a[2];
                ans++;
            }
        }
        if(a[1]>0){
            ans+=a[1]/36;
            ans+=(a[1]%36==0?0:1);
        }
        printf("%d\n",ans);
    }

    return 0;
}

 

 

 

 

 

 

input

41 467 334 0 9 4
478 358 962 4 5 5
281 827 961 1 5 2
827 436 391 4 2 3
292 382 421 6 8 5
447 726 771 8 9 2
667 299 35 4 3 1
322 333 673 4 1 1
253 868 547 4 2 7
37 859 723 1 9 8
316 35 190 2 8 6
40 942 264 8 6 5
890 729 370 0 6 1
393 548 629 3 4 4
756 840 966 6 1 8
944 439 626 3 7 8
118 82 929 1 3 5
639 658 704 0 7 6
673 386 21 5 4 2
270 829 777 3 7 2
986 290 161 6 5 7
655 574 31 2 0 0
941 724 966 0 7 1
7 337 457 7 3 3
945 909 209 8 1 8
422 946 506 0 3 8
900 591 762 5 0 9
624 537 548 3 5 1
602 350 291 6 4 0
596 21 348 9 8 4
281 734 53 9 8 8
900 788 127 7 8 3
648 483 807 1 0 7
813 514 309 6 5 1
600 249 519 6 8 3
224 8 844 9 9 2
195 485 93 3 3 7
314 503 448 0 8 8
580 796 798 1 9 8
9 157 472 2 8 2
38 179 190 7 8 1
815 888 156 1 2 4
272 55 328 6 2 6
875 433 869 2 4 6
881 998 322 1 1 9
557 476 892 9 5 2
600 510 3 9 1 8
401 789 255 3 2 5
182 285 88 6 7 7
832 932 169 4 1 9
976 329 368 2 5 5
434 549 441 2 5 0
718 753 139 3 9 6
687 529 549 7 6 9
193 195 297 6 6 5
488 282 455 4 4 1
316 671 786 3 3 5
185 53 912 8 2 5
313 756 321 8 6 2
481 144 196 2 9 1
535 450 173 6 4 9
292 439 253 4 4 0
745 649 186 3 4 2
168 18 787 5 8 1
202 625 477 4 4 4
334 874 372 9 3 0
487 297 518 7 3 0
763 668 192 5 2 0
213 627 802 9 7 5
543 924 23 2 1 1
3 432 505 3 5 1
492 142 222 6 4 0
187 360 413 4 0 0
235 833 711 0 6 7
285 550 140 4 5 4
19 125 576 4 8 2
371 466 678 3 1 4
18 464 119 2 0 7
60 926 10 7 0 5
576 227 43 8 4 9
882 86 565 7 7 4
625 627 629 8 3 0
902 962 123 6 7 1
195 525 264 0 2 6
30 326 11 1 1 7
153 520 790 4 8 3
940 851 662 9 0 3
958 578 365 7 7 0
58 439 303 0 7 4
477 108 113 7 1 0
460 428 993 4 5 0
111 704 835 6 2 0
823 485 556 6 6 7
526 357 337 1 9 1
896 22 617 2 7 6
585 41 423 9 9 5
559 932 296 5 3 2
584 734 654 2 7 9
532 963 607 3 1 5
67 848 675 8 3 2
754 511 741 5 9 5
221 870 626 4 5 3
850 398 279 1 3 4
637 534 556 3 6 5
962 548 881 0 3 1
855 855 142 2 1 7
424 678 752 3 6 3
40 313 875 2 8 0
17 932 112 5 9 1
40 488 685 0 7 9
990 145 353 4 1 0
44 258 335 9 2 5
264 181 503 9 5 8
292 997 549 6 1 7
467 541 129 0 3 4
601 77 215 3 3 2
824 601 392 9 0 8
27 84 75 6 8 0
287 847 604 3 1 3
706 363 10 1 9 0
164 542 619 3 1 4
818 232 750 5 5 9
303 422 98 7 4 8
971 864 913 5 5 2
546 678 769 2 9 5
289 944 865 0 5 8
318 870 601 3 2 2
152 87 570 3 1 3
423 527 600 9 5 5
28 543 347 8 3 7
409 463 49 1 8 2
608 60 221 8 4 8
146 690 949 3 0 0
748 67 536 3 5 6
185 38 853 9 4 8
923 359 257 6 4 5
318 726 411 5 5 1
549 496 584 5 4 2
75 913 142 6 8 2
426 606 173 9 4 5
626 812 375 3 5 6
736 141 814 4 6 2
936 838 482 5 5 1
230 841 625 1 7 6
690 650 662 4 3 3
416 452 8 2 3 4
303 634 303 6 8 4
317 213 109 8 0 0
318 858 50 5 1 4
903 676 643 9 2 1
489 948 282 3 4 0
402 923 831 9 8 9
8 619 971 3 5 1
504 392 685 3 8 9
722 938 37 0 1 4
508 961 959 3 5 9
937 869 58 0 1 4
117 215 555 5 0 9
212 288 82 4 5 0
484 774 380 5 1 1
115 679 110 8 3 8
977 132 956 9 3 8
941 790 723 3 8 4
778 200 71 5 4 1
333 867 153 5 8 5
676 629 650 8 9 3
686 80 116 9 7 8
679 864 421 5 6 6
516 726 666 7 1 4
340 686 21 2 1 4
309 415 902 3 4 1
745 762 423 1 6 8
318 602 907 7 1 2
136 630 114 9 4 6
290 293 996 2 4 5
708 248 491 2 1 4
439 958 722 4 5 2
269 479 238 3 8 6
659 498 486 6 2 3
158 22 146 2 7 5
647 458 602 7 8 0
292 600 278 9 2 8
882 540 315 5 2 7
336 397 418 7 8 1
816 230 449 5 8 9
520 940 560 7 2 5
675 792 361 4 8 6
714 946 188 9 8 3
75 515 521 5 5 8
234 570 905 4 7 2
161 524 549 9 0 3
350 333 925 0 7 6
337 278 393 6 4 4
591 949 135 5 7 4
337 623 664 0 8 8
281 85 152 3 2 4
876 826 396 2 9 0
174 819 943 1 1 9
419 565 805 5 6 0
615 609 64 6 3 4
509 300 695 3 9 1
172 968 358 1 8 6
510 422 774 9 0 2
182 391 495 4 4 4
902 255 460 4 2 1
122 547 577 9 5 5
594 950 343 4 1 2

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值