P8605 [蓝桥杯 2013 国 AC] 网络寻路

这篇具有很好参考价值的文章主要介绍了P8605 [蓝桥杯 2013 国 AC] 网络寻路。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

X 国的一个网络使用若干条线路连接若干个节点。节点间的通信是双向的。某重要数据包,为了安全起见,必须恰好被转发两次到达目的地。该包可能在任意一个节点产生,我们需要知道该网络中一共有多少种不同的转发路径。

源地址和目标地址可以相同,但中间节点必须不同。

如图 11 所示的网络。

1→2→3→1

是允许的。

1→2→1→2 或者 1→2→3→2 都是非法的。

输入格式

输入数据的第一行为两个整数 N,M,分别表示节点个数和连接线路的条数 (1≤N≤10000,0≤M≤100000)。

接下去有 M 行,每行为两个整数 u 和 v,表示节点 u 和 v 联通 (1≤u,v≤N,u=v)。

输入数据保证任意两点最多只有一条边连接,并且没有自己连自己的边,即不存在重边和自环。

输出格式

输出一个整数,表示满足要求的路径条数。

输入输出样例

输入 

3 3
1 2
2 3
1 3

输出

6

输入 

4 4
1 2
2 3
3 1
1 4

输出 

10

说明/提示 

时限 1 秒, 64M。蓝桥杯 2013 年第四届国赛文章来源地址https://www.toymoban.com/news/detail-649557.html

解法一(暴搜)

#include<iostream>
#include<vector>
using namespace std;
int n,m,ans,f;
vector<int>e[100005];
bool vis[10005];

void dfs(int a,int b){
	if(b==4)ans++;                 //到达第四个节点,方案数加一 
	else{
		for(int i=0;i<e[a].size();i++){  //遍历a节点的所有子节点 
			int v=e[a][i];
			if(!vis[v]){     //如果该点还未使用 
				vis[v]=1;
				dfs(v,b+1);    
				vis[v]=0;     //回溯 
			}else if(b==3&&v==f)dfs(v,b+1);  //如果已经走了两步了,下一个为置又回到原点也是一种可行方案 
		}
	}
}


int main(){
	cin>>n>>m;
	int x,y,k=m;
	while(k--){       //因为是双向传输,所以要存两个节点 
		cin>>x>>y;
		e[x].push_back(y);
		e[y].push_back(x);
	}
	for(int i=1;i<=n;i++){     //从第一个节点开始遍历,依次枚举所有节点 
		vis[i]=1;
		f=i;
		dfs(f,1);           
		vis[i]=0;
	}
	cout<<ans<<endl;
	return 0;
} 

解法二(中转边)借鉴dalao的

一条边的两个节点如果还连有其它边,就两边相乘,因为是双向的就再乘以2

#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
const int N=1e5+10;

struct Node{
	int u,v;
}h[N];
int n,m;
LL a[10005];

int main(){
	cin>>n>>m;
	memset(a,0,sizeof a);
	for(int i=1;i<=m;i++){
	    cin>>h[i].u>>h[i].v;
		a[h[i].u]++;
		a[h[i].v]++; 
	}
	LL ans=0;
	for(int i=1;i<=m;i++){
		int u=h[i].u;
		int v=h[i].v;
		ans+=(a[u]-1)*(a[v]-1)*2;
	}
	cout<<ans<<endl;
	return 0; 
}
 

到了这里,关于P8605 [蓝桥杯 2013 国 AC] 网络寻路的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【C语言蓝桥杯每日一题】——排列字母

    TOC     😎博客昵称:博客小梦 😊最喜欢的座右铭:全神贯注的上吧!!! 😊作者简介:一名热爱C/C++,算法等技术、喜爱运动、热爱K歌、敢于追梦的小博主! 😘博主小留言:哈喽! 😄各位CSDN的uu们,我是你的博客好友小梦,希望我的文章可以给您带来一定的帮助,话

    2023年04月09日
    浏览(32)
  • 【C语言蓝桥杯每日一题】——等差数列

        😎博客昵称:博客小梦 😊最喜欢的座右铭:全神贯注的上吧!!! 😊作者简介:一名热爱C/C++,算法等技术、喜爱运动、热爱K歌、敢于追梦的小博主! 😘博主小留言:哈喽! 😄各位CSDN的uu们,我是你的博客好友小梦,希望我的文章可以给您带来一定的帮助,话不

    2023年04月09日
    浏览(68)
  • 【蓝桥杯集训·每日一题】AcWing 3305. 作物杂交

    3305. 作物杂交 作物杂交是作物栽培中重要的一步。 已知有 N 种作物 (编号 1 至 N),第 i 种作物从播种到成熟的时间为 Ti。 作物之间两两可以进行杂交,杂交时间取两种中时间较长的一方。 如作物 A 种植时间为 5 天,作物 B 种植时间为 7 天,则 AB 杂交花费的时间为 7 天。 作

    2023年04月13日
    浏览(43)
  • 蓝桥杯每日一题----单调栈和单调队列

    单调栈即栈内的元素是单调递减或者单调递增的,我们通过一个题目来理解。 单调栈模板题 题目描述 给出项数为 n 的整数数列 a 1 … a n a_1…a_n a 1 ​ … a n ​ 。 定义函数 f ( i ) f(i) f ( i ) 代表数列中第 i 个元素之后第一个大于 a i a_i a i ​ 的元素的下标,即 f ( i ) = m i n i

    2024年02月19日
    浏览(30)
  • 蓝桥杯每日一题002 不同子串(set用法)

    【问题描述】     一个字符串的非空子串是指字符串中长度至少为1的连续的一段字符组成的串。例如,字符串 aaab 有非空子串 a,b,aa,ab,aaa,aab,aaab,一共 7 个。 注意在计算时,只算本质不同的串的个数。 请问,字符串 0100110001010001 有多少个不同的非空子串?     

    2024年01月21日
    浏览(30)
  • 【迎战蓝桥】 算法·每日一题(详解+多解)-- day5

    🤞目录🤞 💖1. 数组中出现次数超过一半的数字 💖2. 二进制中1的个数 💖3. 替换空格 【大家好,我是 爱干饭的猿 ,如果喜欢这篇文章, 点个赞 👍, 关注一下吧, 后续会一直分享题目与算法思路 】 描述 给一个长度为 n 的数组,数组中有一个数字出现的次数超过数组长

    2023年04月08日
    浏览(29)
  • (蓝桥杯每日一题)平方末尾及补充(常用的字符串函数功能)

    能够表示为某个整数的平方的数字称为“平方数 虽然无法立即说出某个数是平方数,但经常可以断定某个数不是平方数。因为平方数的末位只可能是:0,1,4,5,6,9 这 6 个数字中的某个。所以,4325435332 必然不是平方数。 如果给你一个 2 位或 2 位以上的数字,你能根据末位的两位

    2024年01月21日
    浏览(32)
  • 力扣每日一题79:单词搜索

    给定一个  m x n  二维字符网格  board  和一个字符串单词  word  。如果  word  存在于网格中,返回  true  ;否则,返回  false  。 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不

    2024年02月07日
    浏览(31)
  • 【力扣每日一题04】数组篇--搜索插入位置

    今天的题目,利用的是二分查找原理。很不幸我又没做出来,但是也很高兴发现自己的不足~ 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 示例 1: 示例 2: 示例 3: 由于官方答案我看不明

    2024年02月09日
    浏览(30)
  • [Week 20]每日一题(C++,图论,数学,搜索)

    目录 T1 [Daimayuan] Collision(C++,多源最短路) 题目描述 输入描述 输出描述 样例输入1 样例输出1 样例输入2 样例输处2 数据范围 解题思路 T2 [Daimayuan] 农田划分(C++,数学,BFS) 题目描述 题目输入 题目输出 样例输入1 样例输出1 样例输入2 样例输出2 数据范围 解题思路 T3 [Dai

    2024年02月08日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包