社区讨论

求助!!!76分,WA了第一个和第二个点

P2313[HNOI2005] 汤姆的游戏参与者 2已保存回复 2

讨论操作

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

当前回复
2 条
当前快照
1 份
快照标识符
@lo1jewx8
此快照首次捕获于
2023/10/22 22:01
2 年前
此快照最后确认于
2023/11/02 23:14
2 年前
查看原帖
CPP
#include<bits/stdc++.h>
#define dou double
using namespace std;
struct node{
	dou x,y;
	dou r;
}cir[501];
struct Node{
	dou x1,y1,x2,y2;
}l[510];
dou ss(dou n1, dou n2,dou m1,dou m2){
	return sqrt((n1-m1)*(n1-m1)+(n2-m2)*(n2-m2));
}
int mark[510];
int main(){
	int n,m,ci = 0,li = 0;
	scanf("%d%d",&n,&m);
	for(int i=1; i<=n; i++){
		char c;
		cin>>c;
		if( c=='c' ){
			ci++;
			scanf("%lf%lf%lf",&cir[ci].x,&cir[ci].y,&cir[ci].r);
		}	
		else{
			li++;
			scanf("%lf%lf%lf%lf",&l[li].x1,&l[li].y1,&l[li].x2,&l[li].y2);
		}
	}
	for(int i=1; i<=m; i++){
		dou a,b;
		scanf("%lf%lf",&a,&b);
		for(int j=1; j<=ci; j++)
			if( ss(a,b,cir[j].x,cir[j].y)<=cir[j].r )
				mark[i]++;
		for(int j=1; j<=li; j++)
			if( a>=min(l[j].x1,l[j].x2)&&a<=max(l[j].x1,l[j].x2)&&b>=min(l[j].y1,l[j].y2)&&b<=max(l[j].y1,l[j].y2))
				mark[i]++;
		
	}
	for(int i=1; i<=m; i++)
		printf("%d\n",mark[i]);
	return 0;
}

望看到的大佬点明

回复

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

正在加载回复...