
信息学奥赛
啦啦啦
只会写简单的代码
这个作者很懒,什么都没留下…
展开
-
1386:打击犯罪(black)(并查集)
【题目描述】某个地区有n(n<=1000)个犯罪团伙,当地警方按照他们的危险程度由高到低给他们编号为1-n,他们有些团伙之间有直接联系,但是任意两个团伙都可以通过直接或间接的方式联系,这样这里就形成了一个庞大的犯罪集团,犯罪集团的危险程度由集团内的犯罪团伙数量唯一确定,而与单个犯罪团伙的危险程度无关(该犯罪集团的危险程度为n)。现在当地警方希望花尽量少的时间(即打击掉尽量少的团伙),使得庞大的犯罪集团分离成若干个较小的集团,并且他们中最大的一个的危险程度不超过n/2。为达到最好的效果,他们将按顺序打原创 2021-04-15 20:39:16 · 1346 阅读 · 0 评论 -
1389:亲戚(并查集)
【题目描述】若某个家族人员过于庞大,要判断两个是否是亲戚,确实还很不容易,现在给出某个亲戚关系图,求任意给出的某个人所在家族的人数。规定:x和y是亲戚,y和z是亲戚,那么x和z也是亲戚。如果x,y是亲戚,那么x的亲戚都是y的亲戚,y的亲戚也都是x的亲戚。【输入】第一行:三个整数n,(n≤100,000,m≤200,000),分别表示有n个人,m个信息。以下m行:信息包含两种形式:M a b:表示a和b具有亲戚关系。Q a:要求输出a所在家族的人数。【输出】要求输出a所在家族的人数。【输入原创 2021-04-15 22:18:38 · 391 阅读 · 1 评论 -
1385:团伙(group)(并查集)
【题目描述】在某城市里住着n个人,任何两个认识的人不是朋友就是敌人,而且满足:1、我朋友的朋友是我的朋友;2、我敌人的敌人是我的朋友;所有是朋友的人组成一个团伙。告诉你关于这n个人的m条信息,即某两个人是朋友,或者某两个人是敌人,请你编写一个程序,计算出这个城市最多可能有多少个团伙?【输入】第1行为n和m,1<n<1000,1<=m<=100 000;以下m行,每行为p x y,p的值为0或1,p为0时,表示x和y是朋友,p为1时,表示x和y是敌人。【输出】一个整数原创 2021-04-15 19:47:04 · 471 阅读 · 0 评论 -
1387:搭配购买(buy)(并查集+01背包)
【题目描述】Joe觉得云朵很美,决定去山上的商店买一些云朵。商店里有n朵云,云朵被编号为1,2,…,n,并且每朵云都有一个价值。但是商店老板跟他说,一些云朵要搭配来买才好,所以买一朵云则与这朵云有搭配的云都要买。但是Joe的钱有限,所以他希望买的价值越多越好。【输入】第1行n,m,w,表示n朵云,m个搭配,Joe有w的钱。第2~n+1行,每行ci,di表示i朵云的价钱和价值。第n+2~n+1+m行,每行ui,vi,表示买ui就必须买vi,同理,如果买vi就必须买ui。【输出】一行,表示可以获原创 2021-04-15 21:20:35 · 378 阅读 · 0 评论 -
数的计数
我们要求找出具有下列性质数的个数(包括输入的自然数n)。先输入一个自然数n(n≤1000),然后对此自然数按照如下方法进行处理:不作任何处理;在它的左边加上一个自然数,但该自然数不能超过原数的一半;加上数后,继续按此规则进行处理,直到不能再加自然数为止。输入自然数n(n≤1000)。输出满足条件的数。输入样例6输出样例6样例解释:6162612636136代码:#include<iostream>#include<cstdio>#inclu原创 2021-05-07 17:48:16 · 413 阅读 · 0 评论 -
集合的划分
设S是一个具有n个元素的集合,S=⟨a1,a2,……,an⟩,现将S划分成k个满足下列条件的子集合S1,S2,……,Sk ,且满足:1.Si≠∅2.Si∩Sj=∅ (1≤i,j≤k,i≠j)3.S1∪S2∪S3∪…∪Sk=S则称S1,S2,……,Sk是集合S的一个划分。它相当于把S集合中的n个元素a1,a2,……,an 放入k个(0<k≤n<30)无标号的盒子中,使得没有一个盒子为空。请你确定n个元素a1,a2,……,an 放入k个无标号盒子中去的划分数S(n,k)。输入给原创 2021-05-07 16:23:47 · 673 阅读 · 0 评论