题解打击犯罪(代码片段)

kcn999 kcn999     2022-12-17     354

关键词:

题目描述

        某个地区有n(n≤1000)个犯罪团伙,当地警方按照他们的危险程度由高到低给他们编号为1至n,他们有些团伙之间有直接联系,,但是任意两个团伙都可以通过直接或间接的方式联系,这样这里就形成了一个庞大的犯罪集团,犯罪集团的危险程度由集团内的犯罪团伙数量唯一确定,而与单个犯罪团伙的危险程度无关(该犯罪集团的危险程度为n)。现在当地 警方希望花尽量少的时间(即打击掉尽量少的团伙),使得庞大的犯罪集团分离成若干个较小的集团,并且他们中最大的一个的危险程度不超过 n/2。为达到最好的效果,他们将按顺序打击掉编号1到k的犯罪团伙,请编程求出k的最小值。

 

输入格式

        第一行,一个正整数 n。

        接下来的n行,每行有若干个正整数,第一个整数表示该行除第一个外还有多少个整数,若第i行存在正整数k,表示i,k两个团伙可以直接联系。

 

输出格式

        一个正整数,为k的最小值。

 

输入样例

7

2 2 5

3 1 3 4

2 2 4

2 2 3

3 1 6 7

2 5 7

2 5 6

 

输出样例

1

 

样例说明

        输出1(打击犯罪团伙)

        技术图片

 

题解

        我们可以倒序枚举,从$n$枚举到$1$。

        当我们枚举到$i$的时候,我们就合并满足$i < j$的边$(i, j)$,合并后判断当前$i$所在集合的点数是否大于$\fracn2$即可。

技术图片
#include <iostream>
#include <cstdio>

#define MAX_N (1000 + 5)

using namespace std;

int n;
int a[MAX_N][MAX_N], l[MAX_N];
int r[MAX_N], c[MAX_N];

int Root(int x)

    int R = x, tmp;
    while(R != r[R]) R = r[R];
    while(x != r[x]) tmp = r[x], r[x] = R, x = tmp;
    return R;


void Merge(int x, int y)

    x = Root(x); 
    y = Root(y);
    r[x] = y;
    c[y] += c[x];
    c[x] = 0;
    return;


int main()

    scanf("%d", &n);
    for(register int i = 1; i <= n; ++i)
    
        scanf("%d", l + i);
        for(register int j = 1; j <= l[i]; ++j)
        
            scanf("%d", a[i] + j);
        
    
    for(register int i = 1; i <= n; ++i)
    
        r[i] = i;
        c[i] = 1;
    
    for(register int i = n; i; --i)
    
        for(register int j = 1; j <= l[i]; ++j)
        
            if(i > a[i][j]) continue;
            if(Root(i) != Root(a[i][j])) Merge(i, a[i][j]);
            if(c[Root(i)] > (n >> 1)) return printf("%d", i), 0;
        
    
    return 0;
参考程序

 

题解报告:hdu2059龟兔赛跑(代码片段)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2059ProblemDescription据说在很久很久以前,可怜的兔子经历了人生中最大的打击——赛跑输给乌龟后,心中郁闷,发誓要报仇雪恨,于是躲进了杭州下沙某农业园卧薪尝胆潜心修炼,终于... 查看详情

codevs5971打击犯罪(代码片段)

题目描述Description  某个地区有n(n<=1000)个犯罪团伙,当地警方按照他们的危险程度由高到低给他们编号为1-n,他们有些团伙之间有直接联系,但是任意两个团伙都可以通过直接或间接的方式联系,这样这里就形成了一个... 查看详情

text解决犯罪(代码片段)

查看详情

sh彩色的打击(代码片段)

查看详情

动规(20)-并查集基础题——打击犯罪(代码片段)

【问题描述】  某个地区有n(n<=1000)个犯罪团伙,当地警方按照他们的危险程度由高到低给他们编号为1-n,他们有些团伙之间有直接联系,但是任意两个团伙都可以通过直接或间接的方式联系,这样这里就形... 查看详情

动规(20)-并查集基础题——打击犯罪(代码片段)

【问题描述】  某个地区有n(n<=1000)个犯罪团伙,当地警方按照他们的危险程度由高到低给他们编号为1-n,他们有些团伙之间有直接联系,但是任意两个团伙都可以通过直接或间接的方式联系,这样这里就形... 查看详情

动规(20)-并查集基础题——打击犯罪(代码片段)

【问题描述】  某个地区有n(n<=1000)个犯罪团伙,当地警方按照他们的危险程度由高到低给他们编号为1-n,他们有些团伙之间有直接联系,但是任意两个团伙都可以通过直接或间接的方式联系,这样这里就形... 查看详情

phpevitarimágenes犯罪礼节alt(代码片段)

查看详情

htmljavascript替代电子邮件链接-打击垃圾邮件(代码片段)

查看详情

kaggle比赛之『旧金山犯罪分类预测』demo(代码片段)

importpandasaspdimportnumpyasnp#用pandas载入csv训练数据,并解析第一列为日期格式train=pd.read_csv(‘../input/train.csv‘,parse_dates=[‘Dates‘])test=pd.read_csv(‘../input/test.csv‘,parse_dates=[‘Dates‘])trainimportpandasasp 查看详情

20180909徐州网络赛题解(代码片段)

目录20180909徐州网络赛题解A.HardtoprepareMEANINGSOLUTIONCODEB.BE,GEorNEMEANINGSOLUTIONCODEF.FeaturesTrackCODEG.TraceMENINGSOLUTIONCODEH.Ryujidoesn‘twanttostudyMEANINGCODEI.CharacterswithHashCODEJ.MazeDesignerM 查看详情

正睿2018暑假集训比赛题选做(代码片段)

目录题解ZR246数对子题目大意本题题解题解ZR247逆序对题目大意本题题解题解ZR25018AB-day2配对题目大意本题题解题解ZR25218ABday3-亵渎题目大意本题题解题解ZR25518ABday4-世界杯题目大意本题题解题解ZR25618ABday4-数组题目大意本题题解题... 查看详情

那些让你觉得自己是个傻b的题目集锦(大神的降维打击合集)(代码片段)

一起过来排好队,进来挨打1.Leetcodetag-LinkList109.convertsortedlisttobinarysearchtree/***Definitionforsingly-linkedlist.*structListNode*intval;*ListNode*next;*ListNode(intx):val(x),next(NULL)*;*//***Definitio 查看详情

atcoderbeginnercontest172题解(代码片段)

AtCoderBeginnerContest172题解目录AtCoderBeginnerContest172题解A-CalcB-MinorChangeC-TsundokuD-SumofDivisorsE-NEQF-UnfairNimA-Calc程序如下(真的有人需要嘛):#include<bits/stdc++.h>usingnamespacestd;intmain()ios::sy 查看详情

hihocoder-1384题解(代码片段)

AdvancedCPUManufacturer (ACM)isoneofthebestCPUmanufacturerintheworld.Everyday,theymanufacturenCPUchipsandsellthemallovertheworld.Asyoumayknow,eachbatchofCPUchipsmustpassaqualitytestbytheQCdepartm 查看详情

01twosum题解(代码片段)

TowSum原题概述:Givenanarrayofintegers,returnindicesofthetwonumberssuchthattheyadduptoaspecifictarget.Youmayassumethateachinputwouldhaveexactlyonesolution,andyoumaynotusethesameelementtwice.Example:Givennu 查看详情

silvercowparty题解(代码片段)

SilverCowPartyDescriptionOnecowfromeachofNfarms(1≤N≤1000)convenientlynumbered1..Nisgoingtoattendthebigcowpartytobeheldatfarm#X(1≤X≤N).AtotalofM(1≤M≤100,000)unidirectional(one-wayroadsconnectspairsoffa 查看详情

hdoj1007quoitdesign题解(代码片段)

ProblemDescriptionHaveyoueverplayedquoitinaplayground?Quoitisagameinwhichflatringsarepitchedatsometoys,withallthetoysencircledawarded.InthefieldofCyberground,thepositionofeachtoyisfixed,andtheringisca 查看详情