社区讨论

听说灌水区大佬多,求助一道题

灌水区参与者 2已保存回复 2

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
2 条
当前快照
1 份
快照标识符
@lo1px7lv
此快照首次捕获于
2023/10/23 01:03
2 年前
此快照最后确认于
2023/11/03 01:43
2 年前
查看原帖
题目 我的代码:
CPP
#include<bits/stdc++.h> 
using namespace std;
int mmj[1010][3],ans=0;//1:x 2:y 3:是否是出生(1是,0不是) 
double jl(int x1,int y1,int x2,int y2){//计算两个位置的距离 
	return sqrt( (x1-x2)*(x1-x2) + (y1-y2)*(y1-y2) );
}
int main(){
	int n,t,k;
	cin>>n>>k>>t;
	for(int i=1;i<=n;i++){
		cin>>mmj[i][1]>>mmj[i][2];   
	}
	int x,y;
	for(int i=1;i<=k;i++){
		cin>>x>>y;
		for(int j=1;j<=n;j++){
			if(mmj[j][1]==x && mmj[j][2]==y){
				mmj[j][3]++;
				//cout<<"        "<<x<<" "<<y<<endl; 
			}
		}
	}
	for(int i=1;i<=t;i++){
		cin>>x>>y;
		double h=0;
		int wz=0;
		for(int j=1;j<=n;j++){
			double JL=jl(x,y,mmj[j][1],mmj[j][2]);
			if( JL > h ){
				h=JL; 
				wz=j;
			}
		}
		if( mmj[wz][3]==1 ){
			//cout<<"      "<<mmj[wz][1]<<" "<<mmj[wz][2]<<endl; 
			ans++; 
			mmj[wz][3]=0;
		}
	}
	cout<<ans;
} 

回复

2 条回复,欢迎继续交流。

正在加载回复...