救命,我只有10分
  • 板块P1652 圆
  • 楼主王紫烨
  • 当前回复11
  • 已保存回复11
  • 发布时间2020/7/24 17:48
  • 上次更新2023/11/6 22:23:52
查看原帖
救命,我只有10分
151032
王紫烨楼主2020/7/24 17:48
#include <bits/stdc++.h>
using namespace std;
namespace IO{//快读快写模板
	template<typename T> inline void read(T &x){
		x=0;
		T sign=1;
		char c=getchar();
		while(c<'0'||c>'9'){
			if(c=='-')sign=-1;
			c=getchar();
		}
		while(c>='0'&&c<='9'){
			x=(x<<3)+(x<<1)+(c^'0');
			//==> x=x*10+c-'0';
			c=getchar();
		}
		x*=sign;
	}
	template<typename T> inline void write(T x){
		if(x<0){
			putchar('-');
			x=-x;
		}
		if(x>=10){
			write(x/10);
		}
		putchar(x%10+'0');
	}
	template<typename T> inline void writesp(T x){
		write(x);
		putchar(' ');
	}
	template<typename T> inline void writeln(T x){
		write(x);
		putchar('\n');
	}
}
using namespace IO;

int n,x[60],y[60],r[60],xx,yy,xxx,yyy,cc;//不要在意这些细节……

bool incl(int dx,int dy,int v){
	return sqrt((dx-x[v])*(dx-x[v])+(dy-y[v])*(dy-y[v]))<r[v];
}

int main(){
	read(n);
	for(int i=1;i<=n;++i){
		read(x[i]);read(y[i]);read(r[i]);
	}
	read(xx);read(yy);read(xxx);read(yyy);
	for(int i=1;i<=n;++i){
		cc+=incl(xx,yy,i)xor incl(xxx,yyy,i);//同在某个圆里就不用穿过什么了
											//否则就必须穿过它
	}
	writeln(cc);
	return 0;
}

会不会是我思路哪里有问题

2020/7/24 17:48
加载中...