/*独木舟上的旅行

时间限制:3000 ms  |  内存限制:65535 KB

难度:2

描写叙述

进行一次独木舟的旅行活动。独木舟能够在港口租到,而且之间没有差别。

一条独木舟最多仅仅能乘坐两个人。且乘客的总重量不能超过独木舟的最大承载量。

我们要尽量降低这次活动中的花销,所以要找出能够安置全部旅客的最少的独木舟条数。

如今请写一个程序,读入独木舟的最大承载量、旅客数目和每位旅客的重量。

依据给出的规则,计算要安置全部旅客必须的最少的独木舟条数,并输出结果。

输入第一行输入s,表示測试数据的组数;

 每组数据的第一行包含两个整数w,n。80<=w<=200,1<=n<=300,

 w为一条独木舟的最大承载量,n为人数;

 接下来的一组数据为每一个人的重量(不能大于船的承载量);

 输出每组人数所须要的最少独木舟的条数。例子输入3

85 6

5 84 85 80 84 83

90 3

90 45 60

100 5

50 50 90 40 60

例子输出5

3

3*/

<span style="font-size:18px;">#include<stdio.h>
#include<stdlib.h>
int comp(const void*a,const void*b);
int sum;
int main(void)
{
int i,s,w,n,q,j,x;
scanf("%d",&s);
while(s--)
{
scanf("%d%d",&w,&n);
i=0;
x=sum=n;
int *p=(int *)malloc(sizeof(int)*n);
while
(i<n)
{
scanf("%d",&p[i]);
i++;
}
qsort(p,n,sizeof(p[0]),comp);
for(i=0;i<x/2+1;i++)
{
q=0;
for(j=n-1;j>i;j--)
{
if(p[i]+p[j]<=w)
{
sum--;
q=1;
n=j;
break;
}
}
if(!q)
{
printf("%d\n",sum);
break;
}
}
free(p);
}
return 0;
}
int comp(const void*a,const void*b)
{
return*(int*)a-*(int*)b;
}
</span>

最新文章

  1. 59.Android开源项目及库 (转)
  2. 整理CSS引发的相关理论的梳理
  3. Android应用插件式开发解决方法
  4. CGRectGet系列
  5. css3的背景多重运用
  6. java对空格的处理
  7. HTTP SOAP Request
  8. android学习9——Handler简单用法
  9. position定位和添加阴影
  10. The Hungarian Abhorrence Principle
  11. css补充
  12. 使用 ASP.NET Core MVC 创建 Web API(五)
  13. spring 配置 Java配置类装配bean
  14. linux下ssh公钥验证的设置和远程登录
  15. EntityFramework使用动态Lambda表达式筛选数据
  16. MySql_delete同时删除多表相关联记录
  17. CSS控制当鼠标滑过时更换图片的效果
  18. spring in action 7.1 小结
  19. centos7.5安装opendesktop
  20. [LintCode] 删除链表中倒数第n个节点

热门文章

  1. 迅为iTOP-4412物联网开发板入门学习高手进阶项目开发超树莓派
  2. CSS 实现毛玻璃效果
  3. 【计算机网络】2.5 DNS:因特网的目录服务
  4. PHP 下基于 php-amqp 扩展的 RabbitMQ 简单用例 (一) -- 安装 AMQP 扩展和 Direct Exchange 模式
  5. 离线缓存 application cache
  6. Java中创建对象的内存图
  7. sizeof 感知重载,模板具现, 转换规则
  8. jquery data属性 attr vs data
  9. IO之Print流举例
  10. docker push