2 条题解

  • 2
    @ 2026-5-18 21:36:28
    额额额这题隶属于阴间了:因为这道题看上去有点算贪心,但是没贪心那么复杂:
    
    
    解析:
    在及大多数情况下大船是最优先的,因为按6个人来算
    则:
    大船100
    中船75*2
    小船60*3
    也就是说在没有余数的情况下大船无疑是最优选
    
    但是!!!
    
    当剩余5人,4人,3人,2人,1人呢?
    
    5人:大船最优解  100元
    4人:大船最优解  100元
    3人:中船最优解  75元
    2人:小船最优解  60元
    1人:小船最优解  60元
    
    此时我们就发现,大船首选,然后再根据剩余人数来判断余下的最优解
    
    
    

    代码:

      #include <bits/stdc++.h>
    using namespace std;
    int main(){
        int m;
        cin >> m;
        int w = 100 - m;
        int a = m / 6;
        int b = m % 6;
        int c = 0, d = 0;
        if(b == 1 || b == 2){
            d = 1;
        }else if(b == 3){
            c = 1;
        }else if(b == 4 || b == 5){
            a = a + 1;
        }
        int a1 = w / 6;
        int b1 = w % 6;
        int c1 = 0, d1 = 0;
        if(b1 == 1 || b1 == 2){
            d1 = 1;
        }else if(b1 == 3){
            c1 = 1;
        }else if(b1 == 4 || b1 == 5){
            a1 = a1 + 1;
        }
        int x = a + a1;
        int y = c + c1;
        int z = d + d1;
        cout << x << " " << y << " " << z << endl;
        return 0;
    }
    
  • -1
    @ 2026-8-17 11:01:21

    #include <bits/stdc++.h> using namespace std; int main(){ int m; cin >> m; int w = 100 - m; int a = m / 6; int b = m % 6; int c = 0, d = 0; if(b == 1 || b == 2){ d = 1; }else if(b == 3){ c = 1; }else if(b == 4 || b == 5){ a = a + 1; } int a1 = w / 6; int b1 = w % 6; int c1 = 0, d1 = 0; if(b1 == 1 || b1 == 2){ d1 = 1; }else if(b1 == 3){ c1 = 1; }else if(b1 == 4 || b1 == 5){ a1 = a1 + 1; } int x = a + a1; int y = c + c1; int z = d + d1; cout << x << " " << y << " " << z << endl; return 0; }

    • 1

    【基础】需要租多少只船最经济?

    信息

    ID
    30332
    时间
    1000ms
    内存
    256MiB
    难度
    5
    标签
    递交数
    30
    已通过
    13
    上传者