P2853 [USACO06DEC]Cow Picnic S

简介: P2853 [USACO06DEC]Cow Picnic S

题目描述

20210511212557928.png

输入

2 4 4
2
3
1 2
1 4
2 3
3 4

输出 #1复制

2


思路:DFS+图的存储(vector构建的邻接表). 从K个奶牛所在的地方进行DFS遍历,最后只有book[i] = k的牧场满足条件.

参考代码

#include<bits/stdc++.h>
using namespace std;
struct edge{
  int u,v;
  edge(int u1,int v1):u(u1),v(v1){
  };
};
int visited[1000+10],k,n,m,arr[105],uu,vv,cnt[1000+10],total;//visited:用于标记是否走过,book:用于计算遍历次数 
vector<int> e[1000+5];
void dfs(int x){
  visited[x] = 1;
  cnt[x]++;
  for(int i = 0; i < e[x].size(); i++){
    if(!visited[e[x][i]]){
      dfs(e[x][i]);
    }
  }
}
int main()
{
  cin>>k>>n>>m;
  for(int i = 1; i <= k; i++){
    cin>>arr[i];
  }
  for(int i = 0; i < m; i++){
    cin>>uu>>vv;
    e[uu].push_back(vv);
  }
  for(int i = 0; i < k; i++){
    memset(visited,0,sizeof(visited));
    dfs(arr[i]);
  }
  for(int i = 1; i <= n; i++){
    if(cnt[i]==k){
      total++;
    }
  }
  cout<<endl; 
  cout<<total<<endl;
  return 0;
}
相关文章
[USACO 2021.02 Feb]Problem 1. Year of the Cow
[USACO 2021.02 Feb]Problem 1. Year of the Cow
[USACO 2021.02 Feb]Problem 3. Clockwise Fence
[USACO 2021.02 Feb]Problem 3. Clockwise Fence
[USACO 2010 Feb S]Chocolate Eating
[USACO 2010 Feb S]Chocolate Eating
[USACO 2009 Dec S]Music Notes
[USACO 2009 Dec S]Music Notes
[USACO 2021.02 Feb]Problem 2. Comfortable Cows
[USACO 2021.02 Feb]Problem 2. Comfortable Cows
[USACO 2012 Feb G]Cow Coupons----贪心&带悔(看完稳AC)
意思是有n头牛,现在有k张优惠券以及m元,每头牛有一个原始价格和折扣价格,问最多能买多少牛 一开始的方法很简单,由于题目里面说了折扣价格一定比原始价格便宜,所以说首先按照折扣价格从小大大进行排序,将前k个牛的花费看作是折扣之后的价格,而将后面的花费看作是原始价格,然后重新将价值从小到大进行排序,尽可能的多选
256 0
[USACO 2012 Feb G]Cow Coupons----贪心&带悔(看完稳AC)
|
移动开发
洛谷P2639-[USACO09OCT]Bessie‘s Weight Problem G(01背包)
洛谷P2639-[USACO09OCT]Bessie‘s Weight Problem G(01背包)
洛谷P2639-[USACO09OCT]Bessie‘s Weight Problem G(01背包)
洛谷P6207-[USACO06OCT] Cows on Skates G(DFS记录路径)
洛谷P6207-[USACO06OCT] Cows on Skates G(DFS记录路径)
洛谷P1596-[USACO10OCT]湖计数Lake Counting(DFS)
洛谷P1596-[USACO10OCT]湖计数Lake Counting(DFS)