Problem B & Problem I
2016-03-14 22:02
211 查看
概述:加工零件,如果后一个零件的长度和重量大于前一个,则不计时间,求所用的最少时间。
思路和感想:形如Problem E,思路十分相似。但是有一些细节性的问题需要仔细斟酌。
#include<iostream>
#include<fstream>
#include<algorithm>
#include<vector>
using namespace std;
struct Stick
{
int length, weight;
bool flag=0;
bool operator < (const Stick &a)const
{
if (length != a.length)
return length > a.length;
else
return weight > a.weight;
}
};
int main()
{
//ifstream cin("aaa.txt");
vector<Stick>v;
int n;
cin >> n;
while (n--)
{
v.clear();
Stick a;
int sum;
cin >> sum;
while (sum--)
{
cin >> a.length >> a.weight;
v.push_back(a);
}
sort(v.begin(), v.end());
int time = 0;
vector<Stick>::iterator it1, it2;
for (it1 = v.begin(); it1 != v.end(); ++it1)
{
if (it1->flag) continue;
int min = it1->weight;
for (it2 = it1 + 1; it2 != v.end(); ++it2)
{
if (min >= it2->weight&&!it2->flag)
{
min = it2->weight;
it2->flag = 1;
}
}
++time;
}
cout << time << endl;
}
return 0;
}
思路和感想:形如Problem E,思路十分相似。但是有一些细节性的问题需要仔细斟酌。
#include<iostream>
#include<fstream>
#include<algorithm>
#include<vector>
using namespace std;
struct Stick
{
int length, weight;
bool flag=0;
bool operator < (const Stick &a)const
{
if (length != a.length)
return length > a.length;
else
return weight > a.weight;
}
};
int main()
{
//ifstream cin("aaa.txt");
vector<Stick>v;
int n;
cin >> n;
while (n--)
{
v.clear();
Stick a;
int sum;
cin >> sum;
while (sum--)
{
cin >> a.length >> a.weight;
v.push_back(a);
}
sort(v.begin(), v.end());
int time = 0;
vector<Stick>::iterator it1, it2;
for (it1 = v.begin(); it1 != v.end(); ++it1)
{
if (it1->flag) continue;
int min = it1->weight;
for (it2 = it1 + 1; it2 != v.end(); ++it2)
{
if (min >= it2->weight&&!it2->flag)
{
min = it2->weight;
it2->flag = 1;
}
}
++time;
}
cout << time << endl;
}
return 0;
}
相关文章推荐
- 贪心算法的C语言实现与运用详解
- 贪心算法 WOODEN STICKS 实例代码
- 浅析java贪心算法
- c语言来实现贪心算法之装箱问题
- 简单的四则运算
- 数的奇偶性
- 贪心算法
- ACM网址
- 1272 小希的迷宫
- 1272 小希的迷宫
- hdu 1250 大数相加并用数组储存
- 矩阵的乘法操作
- 贪心算法——找纸币问题
- 蚂蚁爬行问题
- 蚂蚁爬行问题
- 求两个数的最大公约数【ACM基础题】
- 打印出二进制中所有1的位置
- 杭电题目---一只小蜜蜂
- HDOJ 1002 A + B Problem II (Big Numbers Addition)
- 初学ACM - 半数集(Half Set)问题 NOJ 1010 / FOJ 1207