社区讨论
求助!!!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 条回复,欢迎继续交流。
正在加载回复...