洛谷 P1038 神經網路

2022-04-04 16:18:22 字數 2197 閱讀 9434

人工神經網路( artificial neural networkartificialneuralnetwork )是一種新興的具有自我學習能力的計算系統,在模式識別、函式逼近及貸款風險評估等諸多領域有廣泛的應用。對神經網路的研究一直是當今的熱門方向,蘭蘭同學在自學了一本神經網路的入門書籍後,提出了乙個簡化模型,他希望你能幫助他用程式檢驗這個神經網路模型的實用性。

在蘭蘭的模型中,神經網路就是一張有向圖,圖中的節點稱為神經元,而且兩個神經元之間至多有一條邊相連,下圖是乙個神經元的例子:

神經元〔編號為 11 )

圖中, x_1-x_3x1​−x3​是資訊輸入渠道, y_1-y_2y1​−y2​是資訊輸出渠道, c_1c1​表示神經元目前的狀態, u_iui​是閾值,可視為神經元的乙個內在引數。

神經元按一定的順序排列,構成整個神經網路。在蘭蘭的模型之中,神經網路中的神經元分為幾層;稱為輸入層、輸出層,和若干個中間層。每層神經元只向下一層的神經元輸出資訊,只從上一層神經元接受資訊。下圖是乙個簡單的三層神經網路的例子。

蘭蘭規定, c_ici​服從公式:(其中 nn 是網路中所有神經元的數目)

公式中的 w_wji​(可能為負值)表示連線 jj 號神經元和 ii 號神經元的邊的權值。當 c_ici​大於 00 時,該神經元處於興奮狀態,否則就處於平靜狀態。當神經元處於興奮狀態時,下一秒它會向其他神經元傳送訊號,訊號的強度為 c_ici​。

如此.在輸入層神經元被激發之後,整個網路系統就在資訊傳輸的推動下進行運作。現在,給定乙個神經網路,及當前輸入層神經元的狀態( c_ici​),要求你的程式運算出最後網路輸出層的狀態。

輸入格式:

輸入檔案第一行是兩個整數 n(1 \le n \le 100)n(1≤n≤100) 和 pp 。接下來 nn 行,每行 22 個整數,第 i+1i+1 行是神經元 ii 最初狀態和其閾值( u_iui​),非輸入層的神經元開始時狀態必然為 00 。再下面 pp 行,每行由 22 個整數 i,ji,j 及 11 個整數 w_wij​,表示連線神經元 i,ji,j 的邊權值為 w_wij​。

輸出格式:

輸出檔案包含若干行,每行有 22 個整數,分別對應乙個神經元的編號,及其最後的狀態, 22 個整數間以空格分隔。僅輸出最後狀態大於 00 的輸出層神經元狀態,並且按照編號由小到大順序輸出。

若輸出層的神經元最後狀態均為 00 ,則輸出 「null」。

輸入樣例#1: 複製

5 6

1 01 0

0 10 1

0 11 3 1

1 4 1

1 5 1

2 3 1

2 4 1

2 5 1

輸出樣例#1: 複製

3 1

4 15 1

思路:拓撲排序。

注釋掉的部分是60分的思路。

#include#include

#include

#include

#include

#define maxn 1100

using

namespace

std;

queue

que;

intn,p,tot;

int c[maxn],u[maxn],into[maxn],out

[maxn];

intto[maxn],net[maxn],cap[maxn],head[maxn];

void add(int u,int v,int

w)int

main()

for(int i=1;i<=p;i++)

for(int i=1;i<=n;i++)

if(into[i]==0

) que.push(i);

while(!que.empty())

}int flag=0

;

for(int i=1;i<=n;i++)

if(out[i]==0&&c[i]>0

)

if(flag==0) cout<

null";

}

洛谷P1038 神經網路

題目 拓撲排序,難度挺低,但是細節很多。其中乙個注意點 c i 即便是負數,也要進隊,不然有些點入度始終大於0,更新不了 include using namespace std struct kka 103 struct nodee 10003 int n,m,i,j,x,y,z,num,out 1...

洛谷 P1038 神經網路

洛谷 p1038 神經網路 人工神經網路 artificial neural network 是一種新興的具有自我學習能力的計算系統,在模式識別 函式逼近及貸款風險評估等諸多領域有廣泛的應用。對神經網路的研究一直是當今的熱門方向,蘭蘭同學在自學了一本神經網路的入門書籍後,提出了乙個簡化模型,他希望你...

洛谷 P1038 神經網路

人工神經網路 artificial neural network 是一種新興的具有自我學習能力的計算系統,在模式識別 函式逼近及貸款風險評估等諸多領域有廣泛的應用。對神經網路的研究一直是當今的熱門方向,蘭蘭同學在自學了一本神經網路的入門書籍後,提出了乙個簡化模型,他希望你能幫助他用程式檢驗這個神經網...