NYOJ 106 背包问题
来源:互联网 发布:linux应用层使用中断 编辑:程序博客网 时间:2024/06/05 17:50
黄淮学院ACM程序设计协会
问题 C: 背包问题
时间限制: 1 Sec 内存限制: 128 MB提交: 55 解决: 0
[提交][状态][讨论版]
题目描述
背包限定体积为t(<0t<10000给出n(1<n<100)个物品(可分割),选择物品装入背包中,使背包价值总和最大),
输入
K
n t
接下来n行每个物品的价值w,和体积v(0<w,v<1000)
输出
最大的价值(结果保留两位小数)
样例输入
12 76 77 7
样例输出
7.00
#include<stdio.h>
#include<stdlib.h>
struct node
{
int w;
int v;
double l;
}s[110];
int com(const void *a,const void *b)
{
struct node *aa=(node *)a;
struct node *bb=(node *)b;
if(aa->l>bb->l)
return -1;
else
return 1;
}
int main(void)
{
int k,n,t;
scanf("%d",&k);
while(k--)
{
scanf("%d %d",&n,&t);
for(int i=0;i<n;i++)
{
scanf("%d %d",&s[i].w,&s[i].v);
s[i].l=s[i].w/s[i].v;
}
qsort(s,n,sizeof(s[0]),com);
double sum=0.0;
for(int i=0;i<n;i++)
{
if(t-s[i].v>=0)
{
t=t-s[i].v;
sum=sum+s[i].w;
}
else
{
sum=sum+s[i].l*(s[i].v-t);
break;
}
}
printf("%.2lf\n",sum);
}
return 0;
}
思路详解:使用了结构体的快速排序,这里的struct node * aa=(node *)a;是定义了一个结构体变量,其余不再赘述
#include<stdio.h>
#include<stdlib.h>
struct node
{
int w;
int v;
double l;
}s[110];
int com(const void *a,const void *b)
{
struct node *aa=(node *)a;
struct node *bb=(node *)b;
if(aa->l>bb->l)
return -1;
else
return 1;
}
int main(void)
{
int k,n,t;
scanf("%d",&k);
while(k--)
{
scanf("%d %d",&n,&t);
for(int i=0;i<n;i++)
{
scanf("%d %d",&s[i].w,&s[i].v);
s[i].l=s[i].w/s[i].v;
}
qsort(s,n,sizeof(s[0]),com);
double sum=0.0;
for(int i=0;i<n;i++)
{
if(t-s[i].v>=0)
{
t=t-s[i].v;
sum=sum+s[i].w;
}
else
{
sum=sum+s[i].l*(s[i].v-t);
break;
}
}
printf("%.2lf\n",sum);
}
return 0;
}
思路详解:使用了结构体的快速排序,这里的struct node * aa=(node *)a;是定义了一个结构体变量,其余不再赘述
0 0
- NYOJ 106 背包问题
- nyoj 106 背包问题
- NYOJ-106:背包问题
- 【nyoj】106~背包问题
- NYOJ 106 背包问题
- nyoj-106-背包问题
- NYOJ,106,背包问题
- nyoj 106 背包问题
- NYOJ 106 背包问题
- NYOJ 106 背包问题
- NYOJ-106-背包问题
- NYOJ 106 背包问题
- NYOJ-106 背包问题
- NYOJ 106 背包问题
- NYOJ 106 背包问题
- NYOJ-106 背包问题
- nyoj 106 背包问题
- NYOJ 背包问题 106
- 7月27日--HTTP学习心得
- Github博客私人订制(二)
- libc++abi.dylib: terminate_handler unexpectedly threw an exception错误小结
- <input type = "submit"> 提交方式和用js的form.submit()有什么区别?
- 网络小白之WAN与LAN的区别
- NYOJ 106 背包问题
- ZOJ Monthly, July 2015 K-hash 后缀数组去重做法
- 希尔排序算法笔记
- 27个提升效率的iOS开源库推荐
- Block的使用--初探Block
- DataTables warning: table id=dataTable - Requested unknown parameter 'acceptId' for row 0. For more
- Delphi-VclZip用法详解
- Java calendar DEMO
- iOS开发 跳转到系统设置