xtu oj 神经网络

news2024/12/23 9:05:12

回顾

Dedicated to you.

  1. A+B III
  2. 问题 H: 三角数
  3. 问题 G: 3个数
  4. 等式 数组下标查询,降低时间复杂度
  5. 1405 问题 E: 世界杯
  6. xtu 数码串

题目

某神经网络模型是如下
1.一共有m层,每层都有几个神经元,从上到下编号为1到n。
2.第 i 层的神经元只有第 i + 1 层的神经元单向联系,第 m 层没有与其他神经元联系。
3.对于第 i 层的第 j 个神经元,将于第 i + 1 层的第 k 个神经元联系,且对于不同的 j ,对应的 k 也不同。
4.所有层之间的联系对应关系是一样的。
5.对于联系的神经元对 < j,k > ,如果 k>1 ,将影响 k 和 k-1 号神经元:否则只影响第 1 号神经元比如如下图所示。一共 3 层,每层 4 个神经元,前一层的神经元依次影响后一层的神经元序号为 (3,2,4,1) 。
在这里插入图片描述


思路

  1. 对笔者来说这题还是比较难的。主要是前面一个神经元映射到后面那层的神经元,然后还要往后继续映射,我该怎么保存哪个神经元被映射了呢?下面为了描述方便,笔者把神经元简称为元素。
  2. 题目描述的意思是,映射规则每一层都是一样的,这里的层和日常生活中的层不太一样,这里是竖着的层,可能需要我们在思维上绕一下。只要映射到的元素不是所在层的最上面的元素,那么该元素的上面一个元素也会被映射到,或者说被影响到。这里说的映射就是题干里面描述的影响。也就是说,有直接映射和间接映射两种情况。
  3. 我们需要把前面被直接映射和被间接映射到的元素标记出来,因为只有被映射的元素才能影响后面的元素。(请仔细思考这句话,思考要怎么实现这个逻辑,这是解题的关键)
  4. 还有一个,线性代数里面的知识点,可能也不算吧,可能算基本常识,反正笔者觉得比较绕,就是这一段话。

我们可以用一个矩阵来表示这个影响关系,如果第 1 层的第 j 个神经元影响第 3 层的第 i 个神经元,则 a i j = 1 a_{ij}=1 aij=1;否则 a i j = 0 a_{ij}=0 aij=0

  1. 上面的话的意思是,一个二维矩阵,我们是一列一列来看的,就是和我们的日常习惯一行一行看不太一样,是一列一列看这个元素,一列看下来,数字为 1 1 1 就表示该行号对应的元素被列号表示的元素影响了,比如说 a 12 a_{12} a12 表示最后一层的第二个元素被第一层的第一个元素影响了。该题需要输出的是,第一层的元素和最后一层元素之间的映射关系,或者说影响矩阵。顺带说一句,数字和数字之间不能输出空格(血泪教训)
  2. 也就是说,行号表示的是一层被影响的元素,列号表示的是第一层的元素,请记住这一点再看代码。
  3. 假设有三层,需要映射两次,那么有 m 层,需要映射 m-1 次。第一层的每一个元素都需要映射 m-1 次,从第一层的一个元素经过第一次映射到第二层之后,进行第二次映射的时候,我们不知道被影响的元素是哪些,第一次映射的前提是我们知道映射的自变量是什么,但是第二次映射的时候我们不知道映射的自变量是什么(可以理解为手电筒发出光源,不知道手电筒在哪里)。所以需要对被影响的元素做上标记,标记的内容是第多少次映射(具体到我的这份代码里面就是 j ,1~m-1 那个循环里面的 j)。
  4. 二维数组 ans 表示的就是答案数组,请参考 6. 写的,行号表示被影响的元素,列号表示自变量(发出映射的源头),有点像一个这样的过程:从下标到一个数值,把这个数值作为下标,再得到一个数值,不断循环,让这个过程转起来
  5. flag 是标记数组,或者称之为中间临时变量也可以,因为它的作用就是在中间的时候判断一下,前面这个元素在上一次映射里面 ( j-1 ) 有没有被映射到,假设被映射到了,在当前这次映射里面(第 j 次映射)就可以作为映射的自变量(源头)
if(ans[i][j]==m-1){
   	ans[i][j]=1;
}else{
   ans[i][j]=0;
}
  1. 这里判断和 m-1 是否相等的意思就是,判断最后一层的第 i 个元素在最后一次映射(第 m-1 次)有没有被映射到,这个映射的根源是第一层的第 j 个元素,被映射到了,说明就是被影响了。

c 语言代码

#include<stdio.h>
#define N 110

int ans[N][N];
int a[N];
int flag[N];

int main(){
	int t;
	scanf("%d",&t);
	while(t--){
		int n,m;
		scanf("%d%d",&n,&m);
		for(int i=1;i<=n;i++){
			scanf("%d",&a[i]);
		}
		
		for(int i=1;i<=n;i++){
			for(int j=1;j<=n;j++){
				flag[j]=0;
			}
			
			for(int j=1;j<=m-1;j++){
				for(int k=1;k<=n;k++){
					if(j==1){
						ans[a[i]][i]=j;
						if(a[i]!=1){
							ans[a[i]-1][i]=j;
						}
					}else if(flag[k]==j-1){
						ans[a[k]][i]=j;
						if(a[k]!=1){
							ans[a[k]-1][i]=j;
						}
					}
				}
				
				for(int k=1;k<=n;k++){
					flag[k]=ans[k][i];
				}
			}
		}
		
		for(int i=1;i<=n;i++){
			for(int j=1;j<=n;j++){
				if(ans[i][j]==m-1){
					ans[i][j]=1;
				}else{
					ans[i][j]=0;
				}
				printf("%d",ans[i][j]);
			}
			puts("");
		}
		puts("");
		
		for(int i=0;i<N;i++){
			for(int j=0;j<N;j++){
				ans[i][j]=0;
			}
		}
	}
	
	return 0;
}

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

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

相关文章

基于Python的自然语言处理系列(26):Get to the Point Summarization

在本篇文章中,我们将实现经典的"Get to the Point"模型,该模型最初发表于 Get to the Point: Summarization with Pointer-Generator Networks。这是当时最著名的摘要生成模型之一,至今仍有很多人使用其Pointer-Generator架构作为他们模型的一部分。 1. 模型简介…

数据库管理-第248期 23ai:全球分布式数据库-分片数据分布方法(20241006)

数据库管理248期 2024-10-06 数据库管理-第248期 23ai&#xff1a;全球分布式数据库-分片数据分布方法&#xff08;20241006&#xff09;1 系统管理分片2 用户定义分片2.1 分片空间2.2 在用户定义分片配置中添加分片空间2.3 为用户定义分片创建表空间2.4 用户定义分片创建分片表…

AI大模型应用开发实战-AI时代应用开发破局!

后端应用级开发者该如何拥抱 AI GC&#xff1f;就是在这样的一个大的浪潮下&#xff0c;我们的传统的应用级开发者。我们该如何选择职业或者是如何去快速转型&#xff0c;跟上这样的一个行业的一个浪潮? 0 AI金字塔模型 越往上它的整个难度就是职业机会也好&#xff0c;或者说…

毒蘑菇检测数据集 9200张 14类毒蘑菇 带标注 voc yolo

毒蘑菇检测数据集 9200张 14类毒蘑菇 带标注 voc yolo 分类名: (图片张数,标注个数) Amanita citrina: (700, 816) Gyromitra infula: (842, 1102) Hygrophoropsis aurantiaca: (766, 1578) Imleria badia: (794, 1027) Lactarius turpis: (728, 891) Boletus reticulatus: (67…

微信小程序开发-配置文件详解

文章目录 一&#xff0c;小程序创建的配置文件介绍二&#xff0c;配置文件-全局配置-pages 配置作用&#xff1a;注意事项&#xff1a;示例&#xff1a; 三&#xff0c;配置文件-全局配置-window 配置示例&#xff1a; 四&#xff0c;配置文件-全局配置-tabbar 配置核心作用&am…

日期类(Date)的实现 (C++版)

​ &#x1f339;个人主页&#x1f339;&#xff1a;喜欢草莓熊的bear &#x1f339;专栏&#x1f339;&#xff1a;C入门 目录 前言 一、Date的头文件&#xff0c;包含函数声明 二、 Date.cpp 2.1 int GetMonthDay(int year, int month) 2.2 bool Check() 2.3 Date& …

基于YOLOv8-deepsort算法的智能车辆目标检测车辆跟踪和车辆计数

关于深度实战社区 我们是一个深度学习领域的独立工作室。团队成员有&#xff1a;中科大硕士、纽约大学硕士、浙江大学硕士、华东理工博士等&#xff0c;曾在腾讯、百度、德勤等担任算法工程师/产品经理。全网20多万粉丝&#xff0c;拥有2篇国家级人工智能发明专利。 社区特色…

HTB:Funnel[WriteUP]

目录 连接至HTB服务器并启动靶机 1.How many TCP ports are open? 2.What is the name of the directory that is available on the FTP server? 3.What is the default account password that every new member on the "Funnel" team should change as soon a…

cudnn8编译caffe过程(保姆级图文全过程,涵盖各种报错及解决办法)

众所周知,caffe是个较老的框架,而且只支持到cudnn7,但是笔者在复现ds-slam过程中又必须编译caffe,我的cuda版本是11.4,最低只支持到8.2.4,故没办法,只能编译了 在此记录过程、报错及解决办法如下; 首先安装依赖: sudo apt-get install git sudo apt-get install lib…

李宏毅 X 苹果书 自注意力机制 学习笔记下

b1 &#xff0c;b2...不是依序产生&#xff0c;而是同时被计算好的 从矩阵乘法角度看待self-attention运作过程 矩阵运算表示每一个a都要产生 a k v的操作如下&#xff1a; 矩阵运算表示的计算如下&#xff1a; A‘是A的normalization &#xff0c;用softmax 矩阵运算表示b计…

Ubuntu有关redis的命令

防火墙&#xff1a; systemctl status firewalld systemctl stop firewalld systemctl disable firewalld.service ifconfig查看ip地址 redis.conf在/etc/redis下&#xff0c;但是得sudo -i进入root模式 进入/etc/redis下开启redis-server服务 查看6379端口是否可以访问 net…

vue3- antd design vue 引入iconfont

文章目录 前言一、新建iconfont项目 前言 vue3项目中&#xff0c;如何引入第三方的iconfont的图标 一、新建iconfont项目 搜索需要的图标&#xff0c;加入购物车&#xff0c;购物车中图片加入项目 下载项目文件&#xff0c;打开压缩包后&#xff0c;将iconfont.js 文件拷贝到…

基于vue框架的大学生心理健康服务平台mwavu(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。

系统程序文件列表 项目功能&#xff1a;学生,心理专家,心理咨询,健康文章,咨询回复,心理案例,监测预警,解压游戏,放松音乐 开题报告内容 基于Vue框架的大学生心理健康服务平台开题报告 一、研究背景与意义 随着社会的快速发展和教育竞争的日益激烈&#xff0c;大学生面临着…

SpringBoot教程(二十四) | SpringBoot实现分布式定时任务之Quartz

SpringBoot教程&#xff08;二十四&#xff09; | SpringBoot实现分布式定时任务之Quartz 简介适用场景Quartz核心概念Quartz 存储方式Quartz 版本类型引入相关依赖方式一&#xff1a;内存方式(MEMORY)存储实现定时任务1. 定义任务类2. 定义任务描述及创建任务触发器3. Quartz的…

VirtualBox Ubuntu22.04 NOI linux2.0 Terminal无法打开 终端打不开 两步解决法儿

新安装的虚拟机无法打开Terminal&#xff0c;从应用列表中单击Terminal&#xff0c;左上角任务栏会出现Terminal&#xff0c;并且鼠标转圈&#xff0c;但是过一会左上角Terminal消失&#xff0c;就像一切都没有来过。 解决办法&#xff1a; CTRL ALT F3 进入命令行模式&…

【自然语言处理】补充:基于向量空间的分类器

【自然语言处理】补充:基于向量空间的分类器 文章目录 【自然语言处理】补充:基于向量空间的分类器1. 特征选择2. 基于向量空间的分类方法3. Rocchio4. KNN5. 线性分类器1. 特征选择 特征选择 文本分类中,通常要将文本表示在一个高维空间下,每一维对应一个词项许多维上对应…

如何基于vite实现清除特定环境下的console和debugger

一、解决方法 方法一&#xff1a;使用esbuild 直接在vite.config.ts文件中写&#xff0c;无需下载插件 export default defineConfig(({ mode }) > {// 环境变量const env loadEnv(mode, root, "");return {base: env.VITE_PUBLIC_PATH,plugins: [vue(),...],…

中国书法-孙溟㠭浅析碑帖《九成宫醴泉铭》

中国书法孙溟㠭浅析碑帖《九成宫醴泉铭》 《九成宫醴泉铭》是由魏征撰文、欧阳询书丹&#xff0c;唐贞观六年&#xff08;公元632年&#xff09;立碑&#xff0c;篆书体题碑额。内容记载了唐太宗李世民在九成宫避暑山庄发现涌泉的事。 书法法度森严&#xff0c;腴润中见峭劲&…

图文并茂解释水平分表,垂直分表,水平分库,垂直分库

文章目录 1.垂直角度(表结构不一样)垂直分表:垂直分库&#xff1a; 2.水平角度(表结构一样)水平分库&#xff1a;水平分表&#xff1a; 1.垂直角度(表结构不一样) 垂直分表: 将一个表字段拆分成多个表&#xff0c;每个表存储部分字段。好处是避免IO时锁表的次数&#xff0c;分…

数据结构——遍历二叉树

目录 什么是遍历二叉树 根据遍历序列确定二叉树 例题&#xff08;根据先序中序以及后序中序求二叉树&#xff09; 遍历的算法实现 先序遍历 中序遍历 后序遍历 遍历算法的分析 二叉树的层次遍历 二叉树遍历算法的应用 二叉树的建立 复制二叉树 计算二叉树深度 计算二…