`
Midnight0101
  • 浏览: 15918 次
  • 性别: Icon_minigender_1
  • 来自: 天津
最近访客 更多访客>>
社区版块
存档分类
最新评论

water~7

阅读更多
poj1328http://poj.org/problem?id=1328
比较简单的贪心,看代码,不细说了~
#include <iostream>
#include <fstream>
#include <algorithm>
#include <cmath>
using namespace std;

struct Space 
{
	double left;
	double right;
	friend bool operator<(Space a,Space b)
	{
		return a.left<b.left;
	}
	
};

Space space[1007];
int n,d;
int ans;
int caseCount=1;

void waterit()
{
	ans=0;
	int i;

	double adjust=space[0].right;
	ans++;

	for(i=0;i<n-1;i++)
	{
		if(adjust<space[i+1].left)
		{
			ans++;
			adjust=space[i+1].right;
		}
		else
		{
			if(adjust>space[i+1].right)
				adjust=space[i+1].right;
		}
	}
	cout<<"Case "<<caseCount<<": "<<ans<<endl;
	caseCount++;
	
}

int main()
{
	//ifstream cin("1.txt");
	int i;
	bool flag=true;
	while(1)
	{
		cin>>n>>d;
		if(n==0 && d==0)
			break;
		for(i=0;i<n;i++)
		{
			int a,b;
			cin>>a>>b;
			if(b>d && flag)
			{
					cout<<"Case "<<caseCount<<": "<<"-1"<<endl;
					caseCount++;	
					flag=false;
				
				
			}				
			space[i].left=a-sqrt(double(d*d-b*b));
			space[i].right=a+sqrt(double(d*d-b*b));	
		}
		
		if(flag)
		{
			sort(space,space+n);
			waterit();
		}
		flag=true;
		
	}
	return 0;
}

0
3
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics