部分背包问题网上都是c++实现,而且使用结构体,这里给小白提供一种c语言方法,并且不需要结构体,只需要数组便可以

#include <stdio.h>

int main()

{

double a[100][2] = { 0 };

int n = 0;

double pp = 0, qq = 0, ss = 0;

double t = 0;

double ave[100] = { 0 };

scanf("%d %lf", &n, &t);//输入金币箱数和背包能够承受的总重量

for (int i = 0; i < n; i++)

{

scanf("%lf %lf", &a[i][0], &a[i][1]);//输入每箱金币的重量和价值

ave[i] = a[i][1] / a[i][0];//计算每箱金币的(重量/价值)

}

for (int i = 0; i < n - 1; i++)

{

for (int j = n-2; j >=i; j--)

{

if (ave[j]<ave[j+1])

{

pp = a[j][0];

a[j][0] = a[j+1][0];

a[j+1][0] = pp;

qq = a[j][1];

a[j][1] = a[j+1][1];

a[j+1][1] = qq;

ss = ave[j];

ave[j] = ave[j + 1];

ave[j + 1] = ss;

}

}

}

double sum = 0;

double value = 0;

int i = 0;

for (i = 0; sum < t && i < n; i++)//按照性价比从高到低装金币

{

sum += a[i][0];

value += a[i][1];

}

if (i != n)

{

sum -= a[i - 1][0];//减去多加的

value -= a[i - 1][1];

value += (t - sum) * a[i - 1][1] / a[i - 1][0];//补齐剩余部分

printf("%.2f", value);

}

else

{

sum = 0;

for (i = 0; i < n; i++)

{

sum += a[i][1];

}

printf("%.2f", sum);

}

return 0;

}

洛谷p2240部分部分背包问题c语言(数组实现)相关推荐

  1. 洛谷P2240木材加工

    题目链接 洛谷P2240 题目描述 木材厂有 n根原木,现在想把这些木头切割成 k 段长度为l的小段木头(木头有可能有剩余). 当然,我们希望得到的小段木头越长越好,请求出 l的最大值. 木头长度的单 ...

  2. 修改数组(洛谷P7285题题解,C++语言描述)

    题目要求 P7285题目链接 分析 这题虽然是红题,但是因为很有趣且是 Special Judge ,所以写篇题解. 乍一看,这题好麻烦啊,要综合考虑xxx和yyy,达到x−yx-yx−y的最优化. ...

  3. 麦森数(洛谷P1045题题解,Java语言描述)

    题目要求 题目链接 分析 这题挺经典的,快速幂取模算法,如果求出大数再取模就可能T掉. 之前有篇文章写了这个算法:<快速幂算法详解&&快速幂取模算法详解> 既然是Java, ...

  4. 枚举求解单词方阵(洛谷P1101题题解,Java语言描述)

    题目要求 P1101题目链接 分析 可以用DFS做,但我立下了个Flag,所以就用了朴素的枚举来做.... 结果,我的天哪,做了好几个小时-- 其实这种地图题,真的适合 DFS or BFS or D ...

  5. 线性存储的最短平均检索时间(洛谷P1253题题解,Java语言描述)

    题目要求 P1253题目链接 分析 很像 ~洛谷P1223题题解~,也是一种类似SJF的贪心法. 排个序,由于两个不大于10000的数,乘起来还是int,就使用int属性吧. 数据量小,所以Scann ...

  6. 快速幂||取余运算【模板】(洛谷P1226题题解,Java语言描述)

    题目要求 P1226题目链接 分析 标准的快速幂取模算法板子,之前这个算法我在这篇文章中讲过了:<快速幂算法详解&&快速幂取模算法详解>. 这里选择使用比较简单的API实现 ...

  7. 队列模拟约瑟夫问题(洛谷P1996题题解,Java语言描述)

    题目要求 P1996题目链接 分析 以前就研究过"约瑟夫环"问题: <单循环链表求解约瑟夫环问题(Java语言描述)> <杀人游戏~约瑟夫环(洛谷P1145题题解 ...

  8. 求子集元素之和(洛谷P2415题题解,Java语言描述)

    题目要求 P2415题目链接 分析 这题我觉得--当个数学题做就好了嘛. 有一个数N的情况:result = 1 * N 有两个数N1.N2的情况:result = 2 * (N1+N2) 有三个数N ...

  9. 用0和5凑被90整除的max数(洛谷P2192题题解,Java语言描述)

    题目要求 P2192题目链接 分析 盘一盘各种情况吧: 要被90整除,就必须被10整除,所以必须有0,没0就是-1啊. 要被90整除,一堆5,靠0是没用的,只能是9个5凑一堆儿才有用,有0但凑不够9个 ...

最新文章

  1. sqrt()函数的详解和用法
  2. Windows 10安装CUDA10.1+cudnn7.6.0+Pytorch1.3.0
  3. 给用户权限数据添加缓存
  4. 第八章应用安全工程备考要点及真题分布
  5. 三维球体换算到二维_三维制图讲义04 - 基础几何体
  6. [转载] python计时函数timeit.timeit()使用小结
  7. selenium启动chrome时Proxy server需要验证用户
  8. c 怎么更改计算机的默认打印机,C#Winfrom系统打印机调用/设置默认打印机
  9. 微信怎么自动加好友java_Xposed-微信自动加好友功能实现
  10. DWORD winapi java_DWORD WINAPI?stdcall?
  11. 坚果pro3刷miui_锤子科技坚果Pro 3(12GB/256GB/全网通)手机卡怎么办?
  12. 安利的短片 安利的真面目 zt
  13. 苹果微信点开才会收到信息_最新!苹果突然承认:iPhone12是问题产品
  14. 1.自学软件测试之虚拟机安装
  15. 论文浅尝 | 利用常识知识图谱进行多跳推理的语言生成方法
  16. Ulua调用C#枚举
  17. Hadoop集群扩容新增4T硬盘(解决分区大小问题限制2T问题)
  18. IPV6地址-格式和讲解
  19. Git 针对 GitLab Github 配置 HTTP HTTPS SSH 代理
  20. (数学)P、NP、NPC、NP hard问题

热门文章

  1. Tmd27711 三合一传感器流程
  2. CREE官网LED数据资料下载
  3. URL文件创建方式_艾孜尔江撰
  4. C#上位机,信捷XD系列modbus485通信例子
  5. EMG信号的低通滤波器的matlab仿真实现
  6. 作为程序员,是选择大厂加班,还是选择小公司摸鱼打卡?
  7. k8s pod生命周期、初始化容器、钩子函数、容器探测、重启策略
  8. DTU灵活配置监控点位,自动生成json数据,Modbus协议 MQTT协议 (郑州新正圆)
  9. 五天学会Pytorch
  10. 移动APP测试实用指南