7-8 sdut-C语言实验-装船问题分数

简介: 7-8 sdut-C语言实验-装船问题分数

7-8 sdut-C语言实验-装船问题


分数 20


全屏浏览


切换布局


作者 马新娟


单位 山东理工大学


王小二毕业后从事船运规划工作,吉祥号货轮的最大载重量为M吨,有10种货物可以装船。第i种货物有wi吨,总价值是pi。王小二的任务是从10种货物中挑选若干吨上船,在满足货物总重量小于等于M的前提下,运走的货物的价重比最大。


###输入格式:

输入数据的第一行有一个正整数M(0 < M < 10000),表示所有货物最大载重量。在接下来的10行中,每行有若干个数(中间用空格分开),第i行表示的是第i种货物的货物的总价值pi ,总重量wi。(pi是wi的整数倍,0 < pi , wi < 1000)


###输出格式:

输出一个整数,表示可以得到的最大价值。


###输入样例:

1. 100
2. 10 10
3. 20 10
4. 30 10
5. 40 10
6. 50 10
7. 60 10
8. 70 10
9. 80 10
10. 90 10
11. 100 10


输出样例:

550


提示:

价重比:计算其价值与重量之比

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

栈限制

8192 KB


#include <stdio.h>
struct node
{
    int wi, pi, b;
} q[10010], t;
void sort(int l, int r)
{
    if (l >= r)
        return;
    t = q[l];
    int i = l, j = r;
    while (i < j)
    {
        while (q[j].b <= t.b && i < j)
            j--;
        q[i] = q[j];
        while (q[i].b >= t.b && i < j)
            i++;
        q[j] = q[i];
    }
    q[i] = t;
    sort(l, i - 1);
    sort(i + 1, r);
}
int main()
{
    int n;
    scanf("%d", &n);
    for (int i = 0; i < 10; i++)
    {
        scanf("%d %d", &q[i].pi, &q[i].wi);
        q[i].b = q[i].pi / q[i].wi;
    }
    sort(0, 9);
    int ans = 0;
    for (int i = 0; i < 10; i++)
    {
        if (q[i].wi <= n)
        {
            ans += q[i].pi;
            n -= q[i].wi;
        }
        else
        {
            ans += n * q[i].b;
            break;
        }
    }
    printf("%d\n", ans);
    return 0;
}
目录
相关文章
|
2月前
7-2 sdut-C语言实验-删数问题(贪心法二)
7-2 sdut-C语言实验-删数问题(贪心法二)
22 2
|
2月前
7-5 sdut-C语言实验-最少拦截系统
7-5 sdut-C语言实验-最少拦截系统
25 6
|
2月前
7-4 sdut-C语言实验-区间覆盖问题
7-4 sdut-C语言实验-区间覆盖问题
22 2
|
2月前
|
人工智能 C语言
7-5 sdut -C语言实验-节约用电
7-5 sdut -C语言实验-节约用电
28 3
|
2月前
|
机器学习/深度学习 安全
7-3 sdut-C语言实验-小鑫去爬山
7-3 sdut-C语言实验-小鑫去爬山
22 2
|
2月前
7-2 sdut-C语言实验-删数问题
7-2 sdut-C语言实验-删数问题
18 2
|
2月前
7-8 sdut-C语言实验-取数字问题
7-8 sdut-C语言实验-取数字问题
19 2
|
2月前
|
机器学习/深度学习 安全
7-3 sdut-C语言实验-王老师去爬山
7-3 sdut-C语言实验-王老师去爬山
24 1
|
2月前
|
算法
7-2 sdut-C语言实验-数字三角形问题
7-2 sdut-C语言实验-数字三角形问题
14 1
|
2月前
7-3 sdut-C语言实验-王奶奶分茶叶蛋
7-3 sdut-C语言实验-王奶奶分茶叶蛋
19 0