1001 wooden sticks
2016-03-24 21:33
197 查看
1001 Problem B
There is a pile of n wooden sticks. The length and weight of each stick are known in advance.
问题:加工一些木棍,当之后加工的木棍,长、重都不小于前一根时,不需要花费更多的时间,否则,时间加一分钟,求加工所有木棍,所需的最短时间。
思路:将所有木棍的长由小到大排序,在长度相同的情况下,按重量排序,因为木棍的长度顺序确定,所以只需比较重量,如果重量比前一根小,则时间加一分钟。
感想:在初期的思考中,一直在纠结于如何将所有的木棍长和重量比较后,然后记录下可以在同一时间处理的木棍,代码却迟迟不能实现,后来终于发现,因为木棍已经按长度排序,那么变量就只有重量,问题自然变得简单了许多。
#include<iostream>
#include<algorithm>
using namespace std;
struct sti{
int l;
int w;
bool b;
}s[5000];
bool cmp(const sti&a,const sti &b){
if(a.l!=b.l) return a.l<b.l;
else return a.w<b.w;
}
int main(){
int T,n,i,j,wight;
cin>>T;
while(T--){
cin>>n;
int k=0;
for(i=0;i<n;i++) {cin>>s[i].l>>s[i].w; s[i].b=false;}
sort(s,s+n,cmp);
for(i=0;i<n;i++){
if(s[i].b==false)
{
s[i].b=true;
wight=s[i].w;
k++;
}
for(j=i+1;j<n;j++){
if((s[j].b==false)&&(wight<=s[j].w))
{
wight=s[j].w;
s[j].b=true;
}
}
}
cout<<k<<endl;
}
return 0;
}
There is a pile of n wooden sticks. The length and weight of each stick are known in advance.
问题:加工一些木棍,当之后加工的木棍,长、重都不小于前一根时,不需要花费更多的时间,否则,时间加一分钟,求加工所有木棍,所需的最短时间。
思路:将所有木棍的长由小到大排序,在长度相同的情况下,按重量排序,因为木棍的长度顺序确定,所以只需比较重量,如果重量比前一根小,则时间加一分钟。
感想:在初期的思考中,一直在纠结于如何将所有的木棍长和重量比较后,然后记录下可以在同一时间处理的木棍,代码却迟迟不能实现,后来终于发现,因为木棍已经按长度排序,那么变量就只有重量,问题自然变得简单了许多。
#include<iostream>
#include<algorithm>
using namespace std;
struct sti{
int l;
int w;
bool b;
}s[5000];
bool cmp(const sti&a,const sti &b){
if(a.l!=b.l) return a.l<b.l;
else return a.w<b.w;
}
int main(){
int T,n,i,j,wight;
cin>>T;
while(T--){
cin>>n;
int k=0;
for(i=0;i<n;i++) {cin>>s[i].l>>s[i].w; s[i].b=false;}
sort(s,s+n,cmp);
for(i=0;i<n;i++){
if(s[i].b==false)
{
s[i].b=true;
wight=s[i].w;
k++;
}
for(j=i+1;j<n;j++){
if((s[j].b==false)&&(wight<=s[j].w))
{
wight=s[j].w;
s[j].b=true;
}
}
}
cout<<k<<endl;
}
return 0;
}
相关文章推荐
- 【c++程序】vector和模板用法
- Python学习笔记1-基础语法
- ArrayList源码分析
- 毕业论文问题记录
- DOS常用命令详解
- php函数
- php基础
- STL——STL中vector的实现原理
- HDUOJ2553-N皇后问题
- 【菜鸟手打js】@弹出遮罩层显示大图之三
- logging的使用
- 第四周项目(3)-随机数函数应用于游戏
- 对Object类中方法的理解
- poj 3311 Hie with the Pie 旅行商问题变形 记录最短路径压缩状态
- 查找进程对应的PID和对应的端口号
- 经典排序之 冒泡排序
- 找不到该项目,请确认该项目的位置的办法(转)
- HDU 2717Catch That Cow
- LeetCode#105. Construct Binary Tree from Preorder and Inorder Traversal
- 【Android压力测试】monkey压力测试(很全、很详细)