解题思路: 从每头奶牛的节点开始做搜索,用dfs走遍所有路径(走到底,不回头)。每遍历到一个节点该节点遍历次数就加一,最后所有奶牛都搜索完之后,检查每个节点的遍历次数,如果该节点的遍历次数等于奶牛数则该节点能被所有奶牛走到。

坑:

1.每头奶牛搜索的时候要有清空的vis数组记录走没走过该点,否则可能路径会重复循环。

2.要用邻接矩阵mp[i][j]来记录节点的连接关系 ,其中i 是起点的编号 , j  是终点的编号, 矩阵的值为1时表示i 到 j 可以连接,0表示没有。

 1 #include<bits/stdc++.h>
2 using namespace std;
3 const int N=1010;
4 int k,n,m,l[N]={0},vis[N]={0},mp[N][N]={0},vis1[N]={0};
5 void dfs(int x)
6 {
7 vis1[x]=1;
8 vis[x]++;
9 for(int i=1;i<=n;i++)
10 {
11 if(mp[x][i]==1&&vis1[i]==0)
12 {
13 dfs(i);
14 }
15 }
16 }
17 int main()
18 {
19 cin>>k>>n>>m;
20 for(int i=1;i<=k;i++)
21 {
22 scanf("%d",&l[i]);
23 }
24 for(int i=1;i<=m;i++)
25 {
26 int a1,b;
27 scanf("%d%d",&a1,&b);
28 mp[a1][b]=1;
29 }
30 for(int i=1;i<=k;i++)
31 {
32 memset(vis1,0,sizeof(vis1));
33 dfs(l[i]);
34 }
35 int ans=0;
36 for(int i=1;i<=n;i++)
37 {
38 if(vis[i]==k) ans++;
39 }
40 cout<<ans<<endl;
41 return 0;
42 }

更新了:

有优化方案:

新思路≈图存储方式、遍历方式优化

就用一个vector(二维)来记录一个节点跟所有连接节点的关系。

还有亿个细节值得注意:

因为这里是有向表所以 1 edge[a1].push_back(b);

如果是无向表 1 edge[a1].push_back(b); 2 edge[b].push_back(a1);

以及dfs中的for循环要改一下。i的范围:  [0,edge[x].size()-1]

效果:

存储效率,循环效率更高

效果如图所示,提交编号为188624的为优化前的提交记录耗时80ms,提交编号为189772的为优化后的提交记录耗时9ms

程序:

 1 #include<bits/stdc++.h>
2 using namespace std;
3 const int N=1005;
4 int k,n,m,l[N]={0},vis[N]={0},mp[N][N]={0},vis1[N]={0};
5 vector<int> edge[N];
6 void dfs(int x)
7 {
8 vis1[x]=1;
9 vis[x]++;
10 for(int i=0;i<edge[x].size();i++)
11 {
12 if(vis1[edge[x][i]]==0)
13 {
14 dfs(edge[x][i]);
15 }
16 }
17 }
18 int main()
19 {
20 cin>>k>>n>>m;
21 for(int i=1;i<=k;i++)
22 {
23 scanf("%d",&l[i]);
24 }
25 for(int i=1;i<=m;i++)
26 {
27 int a1,b;
28 scanf("%d%d",&a1,&b);
29 edge[a1].push_back(b);
30 }
31 for(int i=1;i<=k;i++)
32 {
33 memset(vis1,0,sizeof(vis1));
34 dfs(l[i]);
35 }
36 int ans=0;
37 for(int i=1;i<=n;i++)
38 {
39 if(vis[i]==k) ans++;
40 }
41 cout<<ans<<endl;
42 return 0;
43 }

Cow Picnic S 更新了(在后面)的更多相关文章

  1. Bzoj 1648: [Usaco2006 Dec]Cow Picnic 奶牛野餐 深搜,bitset

    1648: [Usaco2006 Dec]Cow Picnic 奶牛野餐 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 554  Solved: 346[ ...

  2. BZOJ 1648: [Usaco2006 Dec]Cow Picnic 奶牛野餐( dfs )

    直接从每个奶牛所在的farm dfs , 然后算一下.. ----------------------------------------------------------------------- ...

  3. 1648: [Usaco2006 Dec]Cow Picnic 奶牛野餐

    1648: [Usaco2006 Dec]Cow Picnic 奶牛野餐 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 432  Solved: 270[ ...

  4. bzoj1648 / P2853 [USACO06DEC]牛的野餐Cow Picnic

    P2853 [USACO06DEC]牛的野餐Cow Picnic 你愿意的话,可以写dj. 然鹅,对一个缺时间的退役选手来说,暴力模拟是一个不错的选择. 让每个奶牛都把图走一遍,显然那些被每个奶牛都走 ...

  5. POJ3256:Cow Picnic

    Cow Picnic Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 5432   Accepted: 2243 Descri ...

  6. 洛谷——P2853 [USACO06DEC]牛的野餐Cow Picnic

    P2853 [USACO06DEC]牛的野餐Cow Picnic 题目描述 The cows are having a picnic! Each of Farmer John's K (1 ≤ K ≤ ...

  7. 洛谷 P2853 [USACO06DEC]牛的野餐Cow Picnic

    P2853 [USACO06DEC]牛的野餐Cow Picnic 题目描述 The cows are having a picnic! Each of Farmer John's K (1 ≤ K ≤ ...

  8. POJ 3256 Cow Picnic

    Cow Picnic Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 4928   Accepted: 2019 Descri ...

  9. 洛谷P2853 [USACO06DEC]牛的野餐Cow Picnic

    题目描述 The cows are having a picnic! Each of Farmer John's K (1 ≤ K ≤ 100) cows is grazing in one of N ...

  10. BZOJ 1648: [Usaco2006 Dec]Cow Picnic 奶牛野餐

    Description The cows are having a picnic! Each of Farmer John's K (1 <= K <= 100) cows is graz ...

随机推荐

  1. vulnhub靶场之DOUBLETROUBLE: 1

    准备: 攻击机:虚拟机kali.本机win10. 靶机:DOUBLETROUBLE: 1,网段地址我这里设置的桥接,所以与本机电脑在同一网段,下载地址:https://download.vulnhub ...

  2. day16-Servlet05

    Servlet05 14.HttpServletRequest HttpServletRequest对象代表客户端的请求 当 客户端/浏览器 通过HTTP协议访问服务器时,HTTP请求头中的所有信息都 ...

  3. WPF之XAML

    XAML是WPF技术中专门用于设计UI的语言.优点在于: (1)XAML可以设计出专业的UI和动画--好用. (2)简单易懂,易学. (3)设计师可以直接参与软件设计,随时沟通,无须二次转化--高效. ...

  4. 如何查看mysql数据目录位置

    mysql> show global variables like "%datadir%"; +---------------+-----------------+ | Va ...

  5. 2022-11-07 Acwing每日一题

    本系列所有题目均为Acwing课的内容,发表博客既是为了学习总结,加深自己的印象,同时也是为了以后回过头来看时,不会感叹虚度光阴罢了,因此如果出现错误,欢迎大家能够指出错误,我会认真改正的.同时也希望 ...

  6. mindxdl--common--http_handler.go

    // Copyright (c) 2021. Huawei Technologies Co., Ltd. All rights reserved.// Package common this file ...

  7. iOS逆向之某多多App抓包

    阅读此文档的过程中遇到任何问题,请关注公众号[移动端Android和iOS开发技术分享]或加QQ群[309580013] 1.目标 由于某多多App现使用longlink进行数据传输,使用charle ...

  8. vcenter异常死机无法重启

    esxi主机异常掉电重启后,vcenter启动失败 查阅相关资料发现,一般是由于时间同步异常造成, 推荐方法是先确认bios硬件时间已同步,再删除旧的本地服务json文件,重启vcenter的服务. ...

  9. 基于python的数学建模---轮廓系数的确定

    直接上代码 from sklearn import metrics import matplotlib.pyplot as plt from sklearn.cluster import KMeans ...

  10. tp6 requset获取参数的方式

    第一种:获取全部参数的值 request()->param() 1 第二种:获取排除某些字段的值,即获取其他值 request()->except(['serverToken','logi ...