当前位置: 首页>开发笔记>正文

1789

1789

// 2007-02-12 02:13:52    Accepted    1789    C++    00:00.04    2988K
// 一次AC
// 算法:分支限界法(用队列搜)

#include 
< iostream >
#include 
< vector >
#include 
< queue >
#include 
< numeric >
using   namespace  std;

typedef vector
< int >  vector_int;

int  main ()
{
    
int n,m;
    
while(scanf("%d %d",&n,&m)!=EOF && (n||m)){
        
int marked_person[30000]={1},marked_group[500]={0};//标记有嫌疑的人,和有嫌疑的组
        queue<int> Q;//用来BFS有嫌疑的组
        vector_int* vGroup=new vector_int [m];
        vector_int
* vPerson=new vector_int [n];
        
for(int i=0;i<m;i++){
            
int k,t;
            scanf(
"%d",&k);
            
for(int j=0;j<k;j++){
                scanf(
"%d",&t);
                vGroup[i].push_back(t);
//Group i中有t这个成员
                vPerson[t].push_back(i);//Person t参加了i这个组
                if(!t){
                    marked_group[i];
//标记所有包含0这个成员的Group
                    Q.push(i);//有嫌疑的组入队
                }

            }

        }


        
while(!Q.empty()){
            
int tempQNode=Q.front();//取出一个嫌疑组
            Q.pop();
            
for(int i=0;i<vGroup[tempQNode].size();i++){//遍历嫌疑组中的所有人
                int tempPerson=vGroup[tempQNode][i];
                
if(!marked_person[tempPerson]){//如果这个人没有被标记过
                    marked_person[tempPerson]=1;//标记嫌疑人
                    for(int j=0;j<vPerson[tempPerson].size();j++){//遍历这个人所加入的所有组
                        int tempGroup=vPerson[tempPerson][j];
                        
if(!marked_group[tempGroup]){//如果嫌疑人加入的组没有被标记过
                            marked_group[tempGroup]=1;//标记嫌疑组
                            Q.push(tempGroup);//嫌疑组入队
                        }

                    }

                }

            }

        }

        printf(
"%d ",accumulate(marked_person,marked_person+n,0));
        delete [] vGroup;
        delete [] vPerson;
    }

}

 

https://www.zydui.com/afe86V28KBAE.html
>

相关文章:

  • IQVIA醫藥咨詢隨筆雜談
  • 爬取英雄聯盟英雄皮膚數據
  • 英雄聯盟 連接服務器失敗 請檢查您的網絡 是否啟用修復程序進行修復,英雄聯盟玩不了,提示未知的directx錯誤...
  • 三位千萬富翁告訴你:錢是怎么賺來的
  • 芳香之城傳奇的美麗神話故事
  • Solid Converter PDF注冊碼
  • 修改linux下面的字符集
  • 30個不可思議的好玩又實用的HTML5移動應用
  • 安卓新出病毒幽靈推,回顧android歷史上的那些吸費病毒
  • 游戲編程技術貼:AI設計的若干規則闡述
  • mac啟動自動運行程序_什么啟動了,為什么在我的Mac上運行?
  • 什么是UserEventAgent,它為什么在Mac上運行?
  • 蔚來汽車新財報超預期,短期或難盈利互聯網造車行不通嗎?
  • 車行的進貨問題
  • spring BeanFactory 家族介紹
  • 地址家族/名字解析
  • VS中怎么調出資源方案管理器
  • 告別低效工作,幫你重新找回工作的掌控感
  • 從Mac連接Windows共享打印機(1)
  • c4d流體插件_Cinema 4D 流體模擬插件 TurbulenceFD C4D v1.0 Build 1425 Win64
  • 經典生活總結語錄(搞笑欣賞)
  • 項目打包打的是什么包_早安打工人是什么梗,朋友圈打工人文案語錄表情包!...
  • 前端學習從入門到高級全程記錄之25(webapi)
  • 中職計算機應用普測考試試題及答案,2017職稱計算機考試WPS_Office檢測練習及答案9...
  • 微型計算機的主板又稱為,供電設計比7999元的主板還猛,ROG M11A主板首次亮相
  • webStorm使用斷點
  • 逆風翻盤?順豐大股東聯手本來集團上演O2O+B2C生鮮大戲
  • 三國志戰略版:Daniel_“坦克兵種”象兵分析
  • RISK-V品牌的中國化歷程(下)
  • 網游找call通殺方法之另辟蹊徑