poj 3069 Saruman' Army
2017-10-05 15:22
375 查看
(1)类型:贪心算法。
(2)题意:在直角坐标系中用半径为R的圆覆盖横轴上的点,问至少用多少个圆。
(3)解题思路:先把给出的数据排序,从左到右(或从右到左)贪心的计算每个圆最大可以覆盖的点。
(4)时间复杂度:O(n);
(5)总结:区间问题是贪心算法里面典型的问题。主要是利用利益最大化的思想把时间复杂度化为最小。算法题目思想还是最重要的,加油吧。
(6)代码:
(2)题意:在直角坐标系中用半径为R的圆覆盖横轴上的点,问至少用多少个圆。
(3)解题思路:先把给出的数据排序,从左到右(或从右到左)贪心的计算每个圆最大可以覆盖的点。
(4)时间复杂度:O(n);
(5)总结:区间问题是贪心算法里面典型的问题。主要是利用利益最大化的思想把时间复杂度化为最小。算法题目思想还是最重要的,加油吧。
(6)代码:
#include<iostream> #include<algorithm> using namespace std; const int MAX_N=1e3+6; int N,R; int x[MAX_N]; void solve(){ sort(x,x+N); int i=0,ans=0; while(i<N){ int s=x[i++]; while(i<N&&x[i]<=s+R)i++; int p=x[i-1]; while(i<N&&x[i]<=p+R)i++; ans++; } cout<<ans<<endl; } int main(){ ios::sync_with_stdio(false);cin.tie(0); while(cin>>R>>N,N!=-1,R!=-1){ for(int i=0;i<N;i++)cin>>x[i]; solve(); } }
相关文章推荐
- POJ 3069 Saruman's Army(贪心算法)
- POJ 3069 - Saruman's Army(贪心)
- POJ 3069 Saruman's Army
- 【原创】【区间上的贪心 第三篇】Saruman's Army POJ 3069
- POJ 3069 Saruman's Army
- poj 3069 Saruman's Army
- Saruman's Army POJ - 3069【模拟+贪心】
- poj 3069 Saruman's Army【贪心】
- POJ 3069 Saruman's Army
- POJ 3069 Saruman's Army 贪心
- POJ 3069 Saruman's Army(贪心)
- POJ:3069 Saruman's Army(贪心)
- 【Poj】-3069-Saruman's Army(贪心)
- poj 3069 Saruman's Army
- POJ - 3069 Saruman's Army 萨鲁曼的大军 贪心 重庆一中高2018级竞赛班第三次测试 2016.7.24 Problem 2
- 【简单贪心】POJ 3069-Saruman's Army
- poj 3069 Saruman's Army
- poj 3069 Saruman's Army
- POJ 3069 Saruman's Army(贪心)
- POJ_3069_Saruman's Army