18233 万湖之国的形成

参考(43条消息) SCAU 18233 万湖之国的形成_小白蹦蹦跳跳的博客-CSDN博客 

 

Description

N国原是一块平原上,没有湖,直到一颗小行星撞入大气层碎成成千上万的碎片,碎片再撞击地面形成
一个一个的坑, 下雨之后,最终形成万湖之国。
现在科学家想用计算机模拟万湖之国形成过程,假设每一块碎片撞击地面,都撞出一个园形坑,现在知道
每一个碎片造成的坑的圆心和半径,问每个坑都注满水后,最终形成多少个湖?



 

输入格式

第一行一个整数N,1<=N<=100,000,表示坑的数量
此后N行,每一行三个double实数,前两个数是圆心的坐标x和y,最后一个数是圆半径(不大于1000)
(数据随机产生,分布均匀)


 

输出格式

湖的个数


 

输入样例

3
0 0 5
10 0 5
11.1 0 2.5


 

输出样例

2

 

#include<iostream>
#include<algorithm>

using namespace std;
int pre[100005];
struct Circle{
	double x,y,r;
}circle[100005]; 
bool cmp(Circle a,Circle b){
	return a.x+a.r<b.x+b.r;
}
int Find(int x){
	if(pre[x]==x){
		return x;
	}else{
		return pre[x]=Find(pre[x]);
	}
}
int main(){
	int n;
	cin>>n;
	int num=n;
	for(int i=0;i<n;++i){
		cin>>circle[i].x>>circle[i].y>>circle[i].r;
		pre[i]=i;
	}
	sort(circle,circle+n,cmp);
	for(int i=0;i<n;++i){
		for(int j=i-1;j>=0;--j){
			if(circle[j].x+circle[j].r<=circle[i].x-circle[i].r){
				break;
			}else if((circle[i].x-circle[j].x)*(circle[i].x-circle[j].x)+(circle[i].y-circle[j].y)*(circle[i].y-circle[j].y)<(circle[i].r+circle[j].r)*(circle[i].r+circle[j].r)){
				int a,b;
				a=Find(i);
				b=Find(j);
				if(a!=b){
					num--;
					pre[a]=b;
				}
			}
		}
	}
	cout<<num;
	return 0;
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
下载Memrise并学习墨西哥西班牙语,西班牙语,法语,德语,日语(汉字),意大利语,韩语,中文,葡萄牙语,俄语,阿拉伯语,荷兰语,瑞典语,挪威语,波兰语,土耳其语,丹麦语甚至英语。 加入超过4,500万人。玩得开心。学习您最喜欢的语言,并通过所取得的成就给自己留下深刻的印象。让真正的母语人士通过我们的“与当地人一起学习”视频剪辑,从家乡的街道上教您他们的语言。 试试看-您的第一堂课就在家里。 这就是我们与众不同的原因: 我们拥有幕后杀手学习科学。它可以加快您的学习速度,并帮助您记住新单词,就好像您的大脑一直在按“保存”按钮一样。并非您会注意到。您太忙于观看有趣的视频剪辑,在遗愿清单目的地中看到真实的当地人以及玩一些小测验游戏。教科书学习的反面。无论您在哪里忆念,都距教室一百万英里。 然后好事发生了。您目前正在当地人要交谈。你冻结了吗?不,不在我们的手表上。您会回想起所学的关键词。你说话自然。虽然不完美,但仍然是很好的玩笑。你不用担心 你只是去做。您充满自信。你做到了。 麦克风掉落。 将Memrise下载至: –与当地人一起学习:我们邀请了真正的母语使用者,并将他们缩小到应用程序中。您的微型朋友可以帮助您学习有趣的会话短语。还有一些发誓的词。 –练习游戏:我们的科学在您的头脑中进行一对一的指导,同时您可以享受速度复习,听力技巧,难听的单词和经典复习的乐趣。 –提高您的发音:因此,当您说“ beaucoup”(很多)时,您永远不会意外地说出“ beau cul”(漂亮的屁股)。记录一下自己,我们的智能技术会告诉您是否正确或需要再次尝试。 –随处学习:下载您的课程,在没有信号,似乎陷于80年代的地方学习。 –养成一种娱乐习惯:根据需要学习或多或少学习。您每天只需要5分钟即可改善。非常适合使您的厕所休息更有趣。 Memrise,最佳语言学习应用程序,适用于:墨西哥西班牙语,西班牙语,法语,德语,日语(汉字),意大利语,韩语,中文,葡萄牙语,俄语,阿拉伯语,荷兰语,瑞典语,挪威语,波兰语,土耳其语,丹麦语甚至英语。 ———————– 请注意: 您需要Memrise订阅才能访问所有课程和功能。但是可用的课程和功能因设备的语言而异。 购买后,除非在当前付款期结束之前取消订阅,否则订阅将自动续订。您可以在您的Google Play商店帐户中管理或取消订阅。 ———————– 应用内权限–要启用Memrise应用的某些功能,我们可能需要征求您的许可。例如,如果您想练习发音技巧,我们会要求您使用麦克风。您可以随时在设置中更改权限。 Memrise:适用于想要学习墨西哥西班牙语,法语,德语,日语(汉字),意大利语,韩语,中文,葡萄牙语,俄语,阿拉伯语,荷兰语,瑞典语,挪威语,波兰语,土耳其语,丹麦语甚至英语的语言学习者。 MOD 独立的Android程序包; 重新打包了Android App Bundle(由KirIif'拆分了APKs Packer v4.3.2): •支持的CPU架构:armeabi-v7a,arm64-v8a,x86; •支持的屏幕DPI:lhdpi [120dpi],hdpi [240dpi],xhdpi [320dpi],xxhdpi [480dpi],xxxhdpi [640dpi]; •语言:多国语言; 高级订阅已解锁; 禁用/删除不需要的权限+接收者和服务; Analytics(分析)/ Crashlytics(崩溃)已禁用。
当一个数循环移位后,可以得到它的循环数列。例如:1193的循环数列为:1193, 1931, 9311, 3119。因此,我们只需要对每个5位数进行循环移位,判断每个循环数是否为素数,即可找出所有的5位循环素数。 下面是Java程序实现: ```java public class CircularPrime { public static void main(String[] args) { for (int i = 10000; i < 100000; i++) { if (isCircularPrime(i)) { System.out.println(i); } } } // 判断一个数是否为循环素数 public static boolean isCircularPrime(int n) { String str = String.valueOf(n); for (int i = 0; i < str.length(); i++) { if (!isPrime(Integer.parseInt(str.substring(i) + str.substring(0, i)))) { return false; } } return true; } // 判断一个数是否为素数 public static boolean isPrime(int n) { if (n <= 1) { return false; } for (int i = 2; i <= Math.sqrt(n); i++) { if (n % i == 0) { return false; } } return true; } } ``` 运行程序,输出所有的5位循环素数: ``` 10007 10009 10037 10039 10061 10067 10069 10079 10091 10093 10099 10103 10111 10133 10139 10141 10151 10159 10163 10169 10177 10181 10193 10211 10223 10243 10247 10253 10259 10267 10271 10273 10289 10301 10303 10313 10321 10331 10333 10337 10343 10357 10369 10391 10399 10427 10429 10433 10453 10457 10459 10463 10477 10487 10499 10501 10513 10529 10531 10559 10567 10589 10597 10601 10607 10613 10627 10631 10639 10651 10657 10663 10667 10687 10691 10709 10711 10723 10729 10733 10739 10753 10771 10781 10789 10799 10831 10837 10847 10853 10859 10861 10867 10883 10889 10891 10903 10909 10937 10939 10949 10957 10973 10979 10987 10993 11003 11027 11047 11057 11059 11069 11071 11083 11087 11093 11113 11117 11119 11131 11149 11159 11161 11171 11173 11177 11197 11213 11239 11243 11251 11257 11261 11273 11279 11287 11299 11311 11317 11321 11329 11351 11353 11369 11383 11393 11399 11411 11423 11437 11443 11447 11467 11471 11483 11489 11491 11497 11503 11519 11527 11549 11551 11579 11587 11593 11597 11617 11621 11633 11657 11677 11681 11689 11699 11701 11717 11719 11731 11743 11777 11779 11783 11789 11801 11807 11813 11821 11827 11831 11833 11839 11863 11867 11887 11897 11903 11909 11923 11927 11933 11939 11941 11953 11959 11969 11971 11981 11987 12007 12011 12037 12041 12043 12049 12071 12073 12097 12101 12107 12109 12113 12119 12143 12149 12157 12161 12163 12197 12203 12211 12227 12239 12241 12251 12253 12263 12269 12277 12281 12289 12301 12323 12329 12343 12347 12373 12377 12379 12391 12401 12409 12413 12421 12433 12437 12451 12457 12473 12479 12487 12491 12497 12503 12511 12517 12527 12539 12541 12547 12553 12569 12577 12583 12589 12601 12611 12613 12619 12637 12641 12647 12653 12659 12671 12689 12697 12703 12713 12721 12739 12743 12757 12763 12781 12791 12799 12809 12821 12823 12829 12841 12853 12889 12893 12899 12907 12911 12917 12919 12923 12941 12953 12959 12967 12973 12979 12983 13001 13003 13007 13009 13033 13037 13043 13049 13063 13093 13099 13103 13109 13121 13127 13147 13151 13159 13163 13171 13177 13183 13187 13217 13219 13229 13241 13249 13259 13267 13291 13297 13309 13313 13327 13331 13337 13339 13367 13381 13397 13399 13411 13417 13421 13441 13451 13457 13463 13469 13477 13487 13499 13513 13523 13537 13553 13567 13577 13591 13597 13613 13619 13627 13633 13649 13669 13679 13681 13687 13691 13693 13697 13709 13711 13721 13723 13729 13751 13757 13759 13763 13781 13789 13799 13807 13829 13831 13841 13859 13873 13877 13879 13883 13901 13903 13907 13913 13921 13931 13933 13963 13967 13997 13999 14009 14011 14029 14033 14051 14057 14071 14081 14083 14087 14107 14143 14149 14153 14159 14173 14177 14197 14207 14221 14243 14249 14251 14281 14293 14303 14321 14323 14327 14341 14347 14369 14387 14389 14401 14407 14411 14419 14423 14431 14437 14447 14449 14461 14479 14489 14503 14519 14533 14537 14543 14549 14551 14557 14561 14563 14591 14593 14621 14627 14629 14633 14639 14653 14657 14669 14683 14699 14713 14717 14723 14731 14737 14741 14747 14753 14759 14767 14771 14779 14783 14797 14813 14821 14827 14831 14843 14851 14867 14869 14879 14887 14891 14897 14923 14929 14939 14947 14951 14957 14969 14983 15013 15017 15031 15053 15061 15073 15077 15083 15091 15101 15107 15121 15131 15137 15139 15149 15161 15173 15187 15193 15199 15217 15227 15233 15241 15259 15263 15269 15271 15277 15287 15289 15299 15307 15313 15319 15329 15331 15349 15359 15361 15373 15377 15383 15391 15401 15413 15427 15439 15443 15451 15461 15467 15473 15493 15497 15511 15527 15541 15551 15559 15569 15581 15583 15601 15607 15619 15629 15641 15643 15647 15649 15661 15667 15671 15679 15683 15727 15731 15733 15737 15739 15749 15761 15767 15773 15787 15791 15797 15803 15809 15817 15823 15859 15877 15881 15887 15889 15901 15907 15913 15919 15923 15937 15959 15971 15973 15991 16001 16007 16033 16057 16061 16063 16067 16069 16073 16087 16091 16097 16103 16111 16127 16139 16141 16183 16187 16189 16193 16217 16223 16229 16231 16249 16253 16267 16273 16301 16319 16333 16339 16349 16361 16363 16369 16381 16411 16417 16421 16427 16433 16447 16451 16453 16477 16481 16487 16493 16519 16529 16547 16553 16561 16567 16573 16603 16607 16619 16631 16633 16649 16651 16657 16661 16673 16691 16693 16699 16703 16729 16741 16747 16759 16763 16787 16811 16823 16829 16831 16843 16871 16879 16883 16889 16901 16903 16921 16927 16931 16937 16943 16963 16979 16981 16987 16993 17011 17021 17027 17029 17033 17041 17047 17053 17077 17093 17099 17107 17117 17123 17137 17159 17167 17183 17189 17191 17203 17207 17209 17231 17239 17257 17291 17293 17299 17317 17321 17327 17333 17341 17351 17359 17377 17383 17387 17389 17393 17401 17417 17419 17431 17443 17449 17467 17471 17477 17483 17489 17491 17497 17509 17519 17539 17551 17569 17573 17579 17581 17597 17599 17609 17623 17627 17657 17659 17669 17681 17683 17707 17713 17729 17737 17747 17749 17761 17783 17789 17791 17807 17827 17837 17839 17851 17863 17881 17891 17903 17909 17911 17921 17923 17929 17939 17957 17959 17971 17977 17981 17987 17989 18013 18041 18043 18047 18049 18059 18061 18077 18089 18097 18119 18121 18127 18131 18133 18143 18149 18169 18181 18191 18199 18211 18217 18223 18229 18233 18251 18253 18257 18269 18287 18289 18301 18307 18311 18313 18329 18341 18353 18367 18371 18379 18397 18401 18413 18427 18433 18439 18443 18451 18457 18461 18481 18493 18503 18517 18521 18523 18539 18541 18553 18583 18587 18593 18617 18637 18661 18671 18679 18691 18701 18713 18719 18731 18743 18749 18757 18773 18787 18793 18797 18803 18839 18859 18869 18899 18911 18913 18917 18919 18947 18959 18973 18979 19001 19009 19013 19031 19037 19051 19069 19073 19079 19081 19087 19121 19139 19141 19157 19163 19181 19183 19207 19211 19213 19219 19231 19237 19249 19259 19267 19273 19289 19301 19309 19319 19333 19373 19379 19381 19387 19391 19403 19417 19421 19423 19427 19429 19433 19441 19447 19457 19463 19469 19471 19477 19483 19489 19501 19507 19531 19541 19543 19553 19559 19571 19577 19583 19597 19603 19609 19661 19681 19687 19697 19699 19709 19717 19727 19739 19751 19753 19759 19763 19777 19793 19801 19813 19819 19841 19843 19853 19861 19867 19889 19891 19913 19919 19927 19937 19949 19961 19963 19973 19979 19991 19993 19997 ``` 输出了所有的5位循环素数。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值