SCU's closet(排序法的应用)

http://cstest.scu.edu.cn/soj/problem.action?id=4263

B: SCU's closet

Description

Summer comes with the hot weather.Today xiaoL wants to take the heavy coats in her closet out and bring her T-shirts and skirts in.We have konwn that the volume of SCU's closet is V units,xiaoL has N pieces of clothing to put in,each of them needs Ai units of space.When putting the i-th clothes into the closet,she finds that she needs Bi units of space to ensure the i-th clothes will be placed well.After that,the volume of the closet will decrease by Ai.Now,She wonders whether she can move all her clothes into the closet.

Input

There are multiple test cases,for each case,the first line contains 2 integers:V,N,then followed N lines,each of them contains 2 integers Ai and Bi as descriped above.

( 0 < V < 10000, 0 < N<  1000, 0 < Ai < V, Ai <= Bi < 1000 )

Output

For each test case output "YES" if she can put all her clothes into the closet or else output "NO"

Sample Input

20 3

10 20

3 10

1 7

10 2

1 10

2 11

Sample Output

YES

NO

Author

lentty 

题意:给你一个衣橱体积为V

每件衣服的体积为ai,总共需要bi的空间,问是否可以把全部衣服都放进去。

这里我原来的题意完全理解错了,导致一直解不出来

思路:排序,贪心。

两种择优情况:一。按所空间较大优先来考虑

 二。按所体积较小的考虑

 思路:按照以上两种情况进行排序:只要有一种满足情况即可

*/

#include<stdio.h>
#include<algorithm>
#include <iostream>
using namespace std;
const int maxn=1000+10;
struct cloth
{
int a;
int b;
}c1[maxn],c2[maxn];
int cmp1(cloth ch1,cloth ch2 ) //按所空间较大优先来考虑
{
           return (ch1.b>ch2.b)||(ch1.b==ch2.b&&ch1.a<ch2.a);
}
int cmp2(cloth ch1,cloth ch2 )  //按所体积较小的考虑
{
           return (ch1.a<ch2.a)||(ch1.a==ch2.a&&ch1.b>ch2.b);
}
int main()
{  int n,v,i,ok1,ok2,t1,t2;
while(scanf("%d%d",&v,&n)!=EOF)
 {             ok1=1;
              ok2=1;
              t1=v;
              t2=v;
           for(i=0;i<n;i++)
          {
           scanf("%d%d",&c1[i].a,&c1[i].b);
           c2[i].a=c1[i].a;
           c2[i].b=c1[i].b;
           }
           sort(c1,c1+n,cmp1);
           sort(c2,c2+n,cmp2);
           //for(i=0;i<n;i++)
           //printf("%d %d\n",c[i].a,c[i].b);
           for(i=0;i<n;i++)
           {if(t1<c1[i].b)
              {ok1=0;
              break;
              }
              t1=t1-c1[i].a;
           }
           for(i=0;i<n;i++)
           {if(t2<c2[i].b)
              {ok2=0;
              break;
              }
              t2=t2-c2[i].a;
           }
           if(ok1==1||ok2==1)
           printf("YES\n");
           else
           printf("NO\n");
}
return 0;
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: DICOM SCU(Service Class User)是医学影像通信和存储中常用的一个协议,用于向DICOM设备发送请求并接收响应。模拟DICOM SCU是指在测试或开发过程中,使用模拟的SCU设备与其他DICOM设备进行通信和交互。 模拟DICOM SCU主要通过以下步骤实现: 1. 配置模拟SCU设备的参数:包括设备的IP地址、端口号、传输协议等。这些参数需要与要模拟的DICOM设备相匹配。 2. 创建DICOM消息:模拟SCU设备需要根据具体的需求和场景,创建符合DICOM标准的消息。消息包括标识符、数据元素等,用于描述请求或响应的具体内容。 3. 与其他DICOM设备建立连接:模拟SCU设备需要根据配置的参数,与其他DICOM设备建立连接。这一步骤需要遵循DICOM通信协议,例如使用TCP/IP进行传输。 4. 发送DICOM请求:建立连接后,模拟SCU设备可以向其他DICOM设备发送请求。请求的内容取决于具体的操作,可以包括查询、检索、存储等。 5. 接收DICOM响应:模拟SCU设备会等待DICOM设备对请求进行处理,并接收相应的响应消息。响应消息包含了请求的结果,可能是具体的图像或其他数据。模拟SCU设备需要根据响应消息进行进一步的处理。 6. 处理DICOM响应:模拟SCU设备会解析响应消息,提取所需的数据。根据具体的需求,可以对接收到的数据进行进一步分析、显示或存储等处理。 7. 关闭连接:在完成通信后,模拟SCU设备需要关闭与其他DICOM设备的连接,释放资源。 通过模拟DICOM SCU,可以方便地测试和验证DICOM通信的可靠性和兼容性。模拟SCU设备可以用于开发和调试DICOM系统,也可以用于培训医学影像相关的技术人员。 ### 回答2: DICOM SCU(Service Class User)模拟是通过模拟器软件以及相关的测试工具来实现与DICOM设备的通信交互。DICOM是医学图像和通信的标准,它规定了各种医疗设备之间传输和共享医学图像和信息的方式。 DICOM SCU模拟器的主要作用是模拟DICOM设备的行为,以便测试DICOM设备的性能、兼容性和稳定性。通过与DICOM设备进行交互,可以测试设备是否正确地响应DICOM命令、是否能够正确读取和解析DICOM文件、是否能够正确传输DICOM图像等。 DICOM SCU模拟器可以模拟各种DICOM服务类别,例如图像传输、查询检索、存储和打印等。通过模拟这些服务类别,可以测试DICOM设备在各种情况下的性能。 DICOM SCU模拟器通常具有用户友好的界面,可以设置各种DICOM参数,如设备地址、端口号、传输协议、查询条件等。模拟器还可以生成各种测试数据,如模拟各种类型的DICOM图像、模拟不同的设备状态、生成各种DICOM命令等。 DICOM SCU模拟器的使用可以帮助医疗设备制造商进行设备开发和测试,以确保其产品与其他DICOM设备的互操作性。此外,医疗机构也可以使用DICOM SCU模拟器进行设备选择和性能评估,以便为其购买最适合的DICOM设备。 总之,DICOM SCU模拟器是一种重要的工具,用于模拟DICOM设备的行为,以便测试设备的性能和兼容性。它在医疗设备开发、测试和选择中起到重要的作用,有助于提高医疗图像和信息的传输和共享的质量和效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值