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 年第四届国赛

解法一(暴搜)

#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; 
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/36471.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PHP原生类

什么是php原生类 原生类就是php内置类&#xff0c;不用定义php自带的类&#xff0c;即不需要在当前脚本写出&#xff0c;但也可以实例化的类 我们可以通过脚本找一下php原生类 <?php $classes get_declared_classes(); foreach ($classes as $class) {$methods get_clas…

网页touch-action禁用手势

问题 在iphone的safari 下滑网页时&#xff0c;无法下滑 原因&#xff1a; 设置了touch-action: none html ,body {touch-action: none;}此行代码为禁用手势&#xff0c;但是在pc上Chrome浏览器模拟手机时&#xff0c;并不能生效(禁止手势)。 但是此行代码在iphone手机浏览器…

【Go 基础篇】Go语言字符类型:解析字符的本质与应用

介绍 字符类型是计算机编程中用于表示文本和字符的数据类型&#xff0c;是构建字符串的基本单位。在Go语言&#xff08;Golang&#xff09;中&#xff0c;字符类型具有独特的特点和表示方式&#xff0c;包括Unicode编码、字符字面值以及字符操作。本篇博客将深入探讨Go语言中的…

首次使用ninja的体验

首先总结说自己的理解&#xff0c;就是NINJA是一个和MAKE同一级别的编译工具&#xff0c;在CMAKE/GRADLE等工具之下工作 cmake目前可以生成makefile&#xff0c;也可以生成ninja文件(CMAKE选项中增加了-G Ninja&#xff09; 使用ninja all编译生成的ninja文件 1.工具准备&…

Element组件浅尝辄止5:Empty 空状态组件

Empty空状态组件&#xff1a;空状态时的占位提示。 如第一次进入当前功能模块时&#xff0c;数据状态为空&#xff0c;则展示空状态&#xff0c;可用到Empty组件 1.How? <el-empty description"描述文字"></el-empty> 2.自定义图片 通过设置 image 属…

plsql开发中动态sql的使用教程(不使用dbms_sql包)

一般的PL/SQL程序设计中&#xff0c;在DML和事务控制的语句中可以直接使用SQL&#xff0c;但是对于新建存储过程&#xff0c;其中涉及传参要被应用为列名时&#xff0c;不能在PL/SQL中直接使用&#xff0c;一会儿下面举例介绍&#xff0c;那么要想实现设计的功能&#xff0c;可…

PyTorch Lightning教程七:可视化

本节指导如何利用Lightning进行可视化和监控模型 为何需要跟踪参数 在模型开发中&#xff0c;我们跟踪感兴趣的值&#xff0c;例如validation_loss&#xff0c;以可视化模型的学习过程。模型开发就像驾驶一辆没有窗户的汽车&#xff0c;图表和日志提供了窗口&#xff0c;让我们…

Docker的基本概念及镜像加速器的配置

1.Docker的概念 由于代码运行环境不同&#xff0c;代码运行会出现水土不服的情况。运用docker容器会把环境进行打包&#xff0c;避免水土不服。docker是一种容器技术&#xff0c;它解决软件跨环境迁移的问题。 2&#xff0c;安装Docker 3.Docker架构 4.Docker镜像加速器的配…

我们常说这个pycharm里有陷阱,第三方库导入失败,看这里!

最近有小伙伴遇到了明明安装了 python 第三方库&#xff0c;但是在 pycharm 当中却导入不成功的问题。 ​ 一直以来&#xff0c;也有不少初学 python 的小伙伴&#xff0c;一不小心就跳进了虚拟环境和系统环境的【陷阱】中。 本文就基于此问题&#xff0c;来说说在 pycharm 当…

Spring Cloud 面试突击2

Spring Cloud 面试突击2 高并发&#xff1a;是一种系统运行过程中遇到的短时间大量的请求操作 响应时间&#xff1a; 吞吐量&#xff1a; QPS&#xff1a;数据库为维度 TPS 并发用户数 并发的维度&#xff1a;很多的 并发是不是达到的当前系统的瓶颈 缓存 &#xff08…

计算机网络—IP

这里写目录标题 IP的基本认识网络层与数据链路层有什么关系IP地址基础知识IP 地址的分类什么是A、B、C类地址广播地址用来做什么什么是D、E类广播多播地址用于什么IP分类的优点IP分类的缺点 无分类地址CIDR如何划分网络号和主机号怎么进性子网划分 公有 IP 地址与私有 IP 地址公…

【Spring源码】Java里面的jdk代理与Cglib动态代理

Springboot默认使用的是Cglib动态代理 案例一&#xff1a;TransactionAutoConfiguration配置类 org.springframework.boot.autoconfigure.transaction.TransactionAutoConfiguration Configuration(proxyBeanMethods false)ConditionalOnBean(TransactionManager.class)Cond…

指针---进阶篇(二)

指针---进阶篇&#xff08;二&#xff09; 前言一、函数指针1.抛砖引玉2.如何判断函数指针&#xff1f;&#xff08;方法总结&#xff09; 二、函数指针数组1.什么是函数指针数组&#xff1f;2.讲解函数指针数组3.模拟计算器&#xff1a;讲解函数指针数组 三、指向函数指针数组…

Maven基础之仓库、命令、插件机制

文章目录 Maven 仓库中央仓库和本地仓库中央仓库本地仓库 Maven 命令generate 命令compile 命令clean 命令test 命令package 命令install 命令 Maven 插件机制官方插件&#xff1a;Compile 插件Tomcat 7 插件 Maven 仓库 中央仓库和本地仓库 [✎] 简单一点说 中央仓库是一个网…

Redis复制

在Redis中&#xff0c;用户可以通过执行SLAVEOF命令或者设置slaveof选项&#xff0c;让一个服务器去复制(replicate) 另一个服务器&#xff0c;我们称呼被复制的服务器为主服务器(master)&#xff0c;而对主服务器进行复制的服务器则被称为从服务器(slave)&#xff0c;如下图所…

Vue修饰符

事件修饰符 在Vue 2.0中&#xff0c;事件修饰符允许我们在处理事件时对其进行修改或增强。以下是一些常用的事件修饰符&#xff1a; .stop&#xff1a;阻止事件冒泡。使用此修饰符后&#xff0c;父元素的相同事件不会再触发。.prevent&#xff1a;阻止事件的默认行为。比如&…

mybatis 中的<![CDATA[ ]]>用法及说明

<![CDATA[ ]]>作用 <![CDATA[ ]]> 在mybatis、ibatis等书写SQL的xml中比较常见&#xff0c;是一种XML语法&#xff0c;他的作用是 可以忽略xml的转义&#xff08;在该标签中的语句和字符原本是什么样的&#xff0c;在拼接成SQL后还是什么样的&#xff09; 使用&a…

代码生成模型任务设计

背景&#xff1a; 模型应该具备&#xff0c;理解代码的能力、知道代码规则的能力、知道关键词和变量的能力、知道代码逻辑的能力、文本到代码翻译能力、代码关联能力、代码续写能力。 代码理解能力&#xff1a;pretrain让模型读足够多代码、记住代码一些规则、代码问答、基于…

PHP codeigniter4 搭配Nginx

> 主要是为了用Nginx运行PHP环境 1. Nginx 官方文档的配置 default.conf This configuration enables URLs without “index.php” in them and using CodeIgniter’s “404 - File Not Found” for URLs ending with “.php”. server {listen 80;listen [::]:80;se…

springboot 基础

巩固基础&#xff0c;砥砺前行 。 只有不断重复&#xff0c;才能做到超越自己。 能坚持把简单的事情做到极致&#xff0c;也是不容易的。 SpringBoot JavaEE 简介 JavaEE的局限性&#xff1a; 1、过于复杂&#xff0c;JavaEE正对的是复杂的分布式企业应用&#xff0c;然而现实…