Hdu1045 - Fire Net - 贪心算法

#include<stdio.h>
#include<algorithm>
using namespace std;
char map[5][5];//地图
int mark[5][5];//标记
int t;
struct Po
{
	int x,y,tot;
}po[25];
int point(int m,int n)//当前点有多少个不可以放碉堡的点
{
	int up,down,left,right,num=1;
	for(up=m-1;up>=0;up--)
	{
		if(map[up][n]=='X')
		{
			break;
		}
		else num++;
	}
	for(down=m+1;down<t;down++)
	{
		if(map[down][n]=='X')
		{
			break;
		}
		else num++;
	}
	for(left=n-1;left>=0;left--)
	{
		if(map[m][left]=='X')
		{
			break;
		}
		else num++;
	}
	for(right=n+1;right<t;right++)
	{
		if(map[m][right]=='X')
		{
			break;
		}
		else num++;
	}
	return num;
}
int cmp(Po a,Po b)
{
	return a.tot<b.tot;
}
void markpoint(int m,int n)//标记不能放碉堡的点
{  
	int up,down,left,right;
	mark[m][n]=1;  
	for(up=m-1;up>=0;up--)  
	{  
		if(map[up][n]=='X')
		{
			break;
		}
		mark[up][n]=1;  
	}  
	for(down=m+1;down<t;down++)  
	{  
		if(map[down][n]=='X')
		{
			break;
		}
		mark[down][n]=1;  
	}  
	for(int left=n-1;left>=0;left--)  
	{  
		if(map[m][left]=='X')
		{
			break;
		}
		mark[m][left]=1;  
	}  
	for(int right=n+1;right<t;right++)  
	{  
		if(map[m][right]=='X')
		{
			break;
		}
		mark[m][right]=1;  
	}  
}  
int main()
{
	int i,j,k;
	int count;
	while(scanf("%d",&t)!=EOF)
	{
		if(t==0)
		{
			break;
		}
		count=0;
		for(i=0;i<t;i++)
		{
			scanf("%s",map[i]);
		}
		memset(mark,0,sizeof(mark));
		k=0;
		for(i=0;i<t;i++)
		{
			for(j=0;j<t;j++)
			{
				if(map[i][j]!='X')
				{
					po[k].tot=point(i,j);//记录当前点可以标记多少个点
					po[k].x=i;//记录行坐标
					po[k].y=j;//记录列坐标
					k++;//点数+1
				}
			}
		}
		sort(po,po+k,cmp);//按照标记周围点数从小到大排,这样一定是最优解
		for(i=0;i<k;i++)
		{
			if(mark[po[i].x][po[i].y]==0)//如果当前点没被标记过
			{
				count++;//点数+1
				markpoint(po[i].x,po[i].y);//标记周围的点
			}
		}
		printf("%d\n",count);
	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
水资源是人类社会的宝贵财富,在生活、工农业生产中是不可缺少的。随着世界人口的增长及工农业生产的发展,需水量也在日益增长,水已经变得比以往任何时候都要珍贵。但是,由于人类的生产和生活,导致水体的污染,水质恶化,使有限的水资源更加紧张。长期以来,油类物质(石油类物质和动植物油)一直是水和土壤中的重要污染源。它不仅对人的身体健康带来极大危害,而且使水质恶化,严重破坏水体生态平衡。因此各国都加强了油类物质对水体和土壤的污染的治理。对于水中油含量的检测,我国处于落后阶段,与国际先进水平存在差距,所以难以满足当今技术水平的要求。为了取得具有代表性的正确数据,使分析数据具有与现代测试技术水平相应的准确性和先进性,不断提高分析成果的可比性和应用效果,检测的方法和仪器是非常重要的。只有保证了这两方面才能保证快速和准确地测量出水中油类污染物含量,以达到保护和治理水污染的目的。开展水中油污染检测方法、技术和检测设备的研究,是提高水污染检测的一条重要措施。通过本课题的研究,探索出一套适合我国国情的水质污染现场检测技术和检测设备,具有广泛的应用前景和科学研究价值。 本课题针对我国水体的油污染,探索一套检测油污染的可行方案和方法,利用非分散红外光度法技术,开发研制具有自主知识产权的适合国情的适于野外便携式的测油仪。利用此仪器,可以检测出被测水样中亚甲基、甲基物质和动植物油脂的污染物含量,为我国众多的环境检测站点监测水体的油污染状况提供依据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值