nyoj 71 独木舟上的旅行
来源:互联网 发布:统计学网络课程 编辑:程序博客网 时间:2024/04/26 07:09
http://acm.nyist.net/JudgeOnline/problem.php?pid=71
1)法一
分析:该算法是先将载重排序,然后从较重的货物开始,从0寻找符合条件的货物,直到i>=j
#include<iostream>#include<cstdio>#include <algorithm>using namespace std;int main(){int i,j,n,w,t,T,count;int b[305];scanf("%d",&T);while(T--){scanf("%d%d",&w,&n);for(i=0;i<n;i++)scanf("%d",&b[i]);sort(b,b+n);count=0;for(i=n-1,j=0;i>=j;i--){t=w-b[i];if(b[j]<=t&&i>=j){t-=b[j];j++;}count++;}printf("%d\n",count);}return 0;}
2)法二
分析:为什么这个反而比较麻烦呢,因为没有看到只有两个人,其实是想实现不限人数的说
#include<iostream>#include<cstdio>#include<cstring>#include <algorithm>using namespace std;int main(){int i,n,w,t,flag,T,num,count;int b[305],a[305];scanf("%d",&T);while(T--){memset(a,0,sizeof(a));scanf("%d%d",&w,&n);for(i=0;i<n;i++){scanf("%d",&num);b[i]=num;a[num]++;}sort(b,b+n);count=0;for(i=n-1;i>=0;i--){if(!a[b[i]]) continue;a[b[i]]--;t=w-b[i];flag=0;while(t&&!flag){if(a[t]){a[t]--;flag=1;}elset--;}count++;}printf("%d\n",count);}return 0;}
PS:不限人数的
t=t1=w-b[i];while(t){if(a[t]){a[t]--;t=t1-t;t1=t;}elset--;}count++;
- nyoj 71 独木舟上的旅行
- NYOJ-71:独木舟上的旅行
- nyoj 71 独木舟上的旅行
- nyoj-71-独木舟上的旅行
- NYOJ 71题 独木舟上的旅行
- NYOJ,71,独木舟上的旅行
- nyoj 71 独木舟上的旅行
- NYOJ 71 独木舟上的旅行
- NYOJ 71 独木舟上的旅行
- NYOJ-71 独木舟上的旅行
- Nyoj 71 独木舟上的旅行
- NYOJ-71 独木舟上的旅行
- NYOJ 71 独木舟上的旅行
- NYOJ题目71 独木舟上的旅行
- NYOJ 71 独木舟上的旅行
- NYOJ独木舟上的旅行71
- NYOJ 71 独木舟上的旅行
- nyoj 71 独木舟上的旅行
- java.net.SocketException: Connection reset产生原因
- 小型软件公司如何建立自己的组织结构
- 为什么计数应该从零开始?
- J2EE (五) SQL+PageClass实现真分页
- Android获取手机配置信息
- nyoj 71 独木舟上的旅行
- OpenGL Glut剖析(2)--平行投影及其显示范围
- 外网通过VPN访问 公司局域网内文件
- 链表
- 6.文件的4种操作模式
- 学习金字塔
- C++智能指针的设计和实现
- 为什么谷歌不收录你的网站
- Hadoop源码分析笔记(十一):数据节点--数据节点整体运行