信息学奥赛一本通 1831:【03NOIP提高组】神经网络 | 洛谷 P1038 [NOIP 2003 提高组] 神经网络

【题目链接】

ybt 1831:【03NOIP提高组】神经网络
洛谷 P1038 [NOIP 2003 提高组] 神经网络

【题目考点】

1. 图论:拓扑排序,有向无环图动规

【解题思路】

神经网络是一个有向无环图,输入层神经元是入度为0的顶点,输出层神经元是出度为0的顶点。
输入层顶点在开始时神经元状态 C i C_i Ci一定大于0。
注意,公式 C i = ( ∑ ( j , i ) ∈ E W j i C j ) − U i C_i=\left(\sum\limits_{(j,i) \in E} W_{ji}C_{j}\right)-U_{i} Ci= (j,i)EWjiCj Ui是求一个顶点的神经元状态 C i C_i Ci的方法,而输入层顶点的神经元状态 C i C_i Ci不需要求,输入中已经给定了。
只有非输入层顶点需要求神经元状态 C i C_i Ci。求 C i C_i Ci最后一步需要减去 U i U_i Ui,因此可以在一开始,就对非输入层顶点的 C i C_i Ci减去 U i U_i Ui

到顶点i有边的顶点:也就是邻接点中有i的顶点。只要j到i有边,则j属于该顶点集合。

根据该公式,需要在访问所有到顶点i有边的顶点j后,才可以求出 C i C_i Ci。按拓扑排序顺序求 C i C_i Ci,可以满足该顺序的要求。
注意在拓扑排序过程中,访问到的顶点可能是 C i ≤ 0 C_i \le 0 Ci0的处于平静状态的顶点。这些顶点也要参与拓扑排序过程中。
在出队顶点为u时,只有当顶点u处于兴奋状态,即 C u > 0 C_u>0 Cu>0时,才可以让顶点u影响顶点v的神经状态,让 C v C_v Cv增加 W u v C u W_{uv}C_u WuvCu
最后遍历出度为0的顶点,看哪个顶点的 C i > 0 C_i>0 Ci>0,就输出该顶点的编号i和神经状态 C i C_i Ci
如果没有输出,则输出"NULL"

【题解代码】

解法1:拓扑排序

#include <bits/stdc++.h>
using namespace std;
#define N 105
struct Edge
{int v, w;
};
int n, p, c[N], degIn[N], degOut[N];
vector<Edge> edge[N];
void topoSort()
{queue<int> que;for(int i = 1; i <= n; ++i) if(degIn[i] == 0)//激活点的入队 que.push(i);while(!que.empty()){int u = que.front();que.pop();for(Edge e : edge[u]){int v = e.v, w = e.w;if(c[u] > 0)c[v] += w*c[u];if(--degIn[v] == 0)que.push(v);}}
}
int main()
{int u, v, w, un;cin >> n >> p;for(int i = 1; i <= n; ++i){cin >> c[i] >> un;if(c[i] == 0)c[i] -= un;//非输入层减去阈值,输入层已经激活,不用减去阈值 }for(int i = 1; i <= p; ++i){cin >> u >> v >> w;edge[u].push_back(Edge{v, w});degIn[v]++, degOut[u]++;}topoSort();bool hasAns = false;for(int i = 1; i <= n; ++i) if(degOut[i] == 0 && c[i] > 0){hasAns = true;cout << i << ' ' << c[i] << '\n';}if(!hasAns)cout << "NULL";return 0;
}

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

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

相关文章

R语言高效数据处理-自定义格式EXCEL数据输出

注&#xff1a;以下代码均为实际数据处理中的笔记摘录&#xff0c;所以很零散&#xff0c; 将就看吧&#xff0c;这一篇只是代表着我还在&#xff0c;所以可能用处不大&#xff0c;这一段时间都很煎熬&#xff01; 在实际数据处理中为了提升效率&#xff0c;将Excel报表交付给…

从零构建大语言模型全栈开发指南:第一部分:数学与理论基础-1.1.2核心数学基础:线性代数、概率论与梯度优化

&#x1f449; 点击关注不迷路 &#x1f449; 点击关注不迷路 &#x1f449; 点击关注不迷路 文章大纲 1.1.2 核心数学基础&#xff1a;线性代数、概率论与梯度优化1. 线性代数&#xff1a;大语言模型的“骨架”1.1 核心概念与应用场景表1&#xff1a;线性代数核心运算与模型应…

科研项目验收管理系统

摘 要 使用旧方法对科研项目信息进行系统化管理已经不再让人们信赖了&#xff0c;把现在的网络信息技术运用在科研项目信息的管理上面可以解决许多信息管理上面的难题&#xff0c;比如处理数据时间很长&#xff0c;数据存在错误不能及时纠正等问题。这次开发的科研项目验收管…

游戏成瘾与学习动力激发策略研究——了解存在主义心理学(通俗版)

存在主义心理学是20世纪中叶兴起的重要心理学流派,融合了哲学存在主义思想,强调人的主观体验、自由选择与责任承担,旨在帮助个体在不确定的世界中创造意义。 研究人如何在不确定的世界中活出意义的心理学,核心思想可以概括为以下四点: 存在主义心理学的主要内容 “存在先于…

Dropshare for Mac v6.1 文件共享工具 支持M、Intel芯片

Dropshare 是 Mac 用来上传图片、视频、截图和各种文件的工具。这款软件利用了SCP over SSH传输协议来将 Mac 本机的文件快速上传到自设的远程服务器。 应用介绍 Dropshare 是 Mac 用来上传图片、视频、截图和各种文件的工具。这款软件利用了SCP over SSH传输协议来将 Mac 本…

关于redis中的分布式锁

目录 分布式锁的基础实现 引入过期时间 引入校验id 引入lua脚本 引入看门狗 redlock算法 分布式锁的基础实现 多个线程并发执行的时候&#xff0c;执行的先后顺序是不确定的&#xff0c;需要保证程序在任意执行顺序下&#xff0c;执行逻辑都是ok的。 在分布式系统中&am…

利用AI让数据可视化

1. 从问卷星上下载一份答题结果。 序号用户ID提交答卷时间所用时间来源来源详情来自IP总分1、《中华人民共和国电子商务法》正式实施的时间是&#xff08;&#xff09;。2、&#xff08;&#xff09;可以判断企业在行业中所处的地位。3、&#xff08;&#xff09;是指店铺内有…

PairRE: Knowledge Graph Embeddings via Paired Relation Vectors(论文笔记)

CCF等级&#xff1a;A 发布时间&#xff1a;2020年11月 代码位置 25年3月24日交 目录 一、简介 二、原理 1.整体 2.关系模式 3.优化模型 三、实验性能 四、结论和未来工作 一、简介 将RotatE进行生级&#xff0c;RotatE只对头实体h进行计算&#xff0c;PairRE对头尾…

解决git init 命令不显示.git

首先在自己的项目代码右击 打开git bash here 输入git init 之后自己的项目没有.git文件&#xff0c;有可能是因为.git文件隐藏了&#xff0c;下面是解决办法

汇编移位指令

rol, ror 循环左移/右移 该指令影响CF。因为左移/右移时将最高位/最低位移动到CF中&#xff0c;同时移动到最低位&#xff0c;其他位依次左移/右移。 shl, shr 逻辑左移/右移 该指令影响CF。因为左移/右移时将最高位/最低位移动到CF中&#xff0c;其他位依次左移/右移&…

Python个人学习笔记(18):模块(异常处理、traceback、日志记录)

七、异常处理 语法错误不属于异常&#xff0c;处理的是程序运行时的一些意外情况 代码&#xff1a; a int(input(>>>&#xff1a;)) b int(input(>>>&#xff1a;)) print(a / b) # 在运行的时候由于数据不对&#xff0c;导致出错 # 此时程序会中断 prin…

AnyTouch:跨多个视觉触觉传感器学习统一的静态动态表征

25年3月来自人大、武汉科技大学和北邮的论文“AnyTouch: Learning Unified Static-dynamic Representation Across Multiple Visuo-tactile Sensors”。 视觉触觉传感器旨在模拟人类的触觉感知&#xff0c;使机器人能够精确地理解和操纵物体。随着时间的推移&#xff0c;许多精…

【数据分享】1999—2023年地级市固定资产投资和对外经济贸易数据(Shp/Excel格式)

在之前的文章中&#xff0c;我们分享过基于2000-2024年《中国城市统计年鉴》整理的1999-2023年地级市的人口相关数据、染物排放和环境治理相关数据、房地产投资情况和商品房销售面积相关指标数据、社会消费品零售总额和年末金融机构存贷款余额、各类用地面积、地方一般公共预算…

(位运算 水题?407周赛题?o 使两个整数相等的位更改次数)leetcode 3226

思路 &#xff1a;灵茶山艾府 怎么判断n能构成k直接异或取1的数量就行 关键在于如何判断n无法构成k 按照灵茶山大佬的方案一就是让k是n的子集也就是n与k的交集等于k 不等于k就不是n的子集 &#xff08;当k是n的子集时 n能构成k&#xff09; 与运算取交集&#xff0c;或运算取…

使用DDR4控制器实现多通道数据读写(四)

在创建完DDR4的仿真模型后&#xff0c;我们为了实现异步时钟的读写&#xff0c;板卡中在PL端提供了一组差分时钟&#xff0c;可以用它通过vivado中的Clock Wizard IP核生成多个时钟&#xff0c;在这里生成两个输出时钟&#xff0c;分别作为用户的读写时钟&#xff0c;这样就可以…

Linux 文件操作-标准IO函数4-fseek设置文件偏移量、ftell获取当前偏移量、rewind使文件偏移量(为0)定位到开头

目录 1.fseek设置文件偏移量 2.ftell获取当前偏移量 3.rewind使文件偏移量&#xff08;为0&#xff09;定位到开头 4.程序验证 1.fseek设置文件偏移量 函数原型&#xff1a; /* 功能&#xff1a;设置文件位置指针的偏移量 参数&#xff1a; stream&#xff1a;文件指针 of…

JavaEE的知识记录

内容很多可以通过目录进行查找对应的内容。 目录 一、注解 元注解 RequestMapping 路由映射注解 RequestParam绑定请求参数到可控制器方法的参数 请求参数绑定可控制方法参数&#xff1a; 参数绑定重命名 RequestBody请求正文注解 ResponseBody响应体正文注解 PathVar…

带旋转的目标标注工具-X-AnyLabeling

在之前的文章中&#xff0c; 分别介绍过3款标注工具&#xff1a; 目标检测&#xff0c;语义分割标注工具–labelimg labelme智能标注工具 T-Rex Label 对于2D目标检测标注&#xff0c; 上面的工具只能标注不带旋转的检测框。但是如果我们要进行带旋转方向的检测&#xff08;O…

Javascript基础

目录 1. 变量声明2. 基本数据类型3.复杂数据类型4.字符串方法5.对象方法6.时间方法7.条件&#xff08;if&#xff09;8.循环&#xff08;for/while&#xff09;9.遍历&#xff08;for in/of&#xff09;10.多选&#xff08;Switch&#xff09;END 1. 变量声明 const&#xff1…

设计模式之建造者模式

目录 1. 概念 2. 代码实现 3. 应用场景 建造者模式(Builder)是创建型设计模式的最后一个&#xff0c;但是确实在平时开发过程中或者阅读源码过程中是十分常见的&#xff0c;难度在我来看是比较适中的&#xff0c;理解起来的也比较轻松&#xff0c;并且平时我们在编码过程中也…