洛谷 P1038 神经网络

https://www.luogu.org/problemnew/show/P1038

JDOJ 1278: [NOIP2003]神经网络 T1

https://neooj.com:8082/oldoj/problem.php?id=1278

题目请自点链接,太麻烦了。

思路解析:

一开始看这道题不是很难,想了想就去做,后来发现这题的坑点细节比较多,需要一一讲解处理。

正解-拓扑排序。

为什么要用拓扑排序呢?

不知道大家怎么想,在做这道题之前,在我印象中用拓扑排序的题大概都长这样:

A打败了B,B打败了D...等类似模型。

所以我并没有深入地理解拓扑排序。

所谓的拓扑排序,其实就是有向图拓展的一种序列。

我们这道题给出了一个求和公式(说到求和公式,这需要数学知识,我一开始也看不懂,后来查了百科看了题解才勉强整明白...)

说明每一个顶点的C值需要从上一个节点处递推。

再结合这道题有向图的本体。

自然而然地想出求拓扑序。

拓扑排序的模板请大家自行参照水题学习,这道题需要有一点点变化(绝对不多!!

AC 代码如下:

#include<cstdio>
#include<queue>
#include<algorithm>
using namespace std;
queue<int> q;
int n,p,cnt;
int chudu[],v[],c[];
int tot,to[],val[],nxt[],head[],from[];
struct answer
{
int id,val;
}ans[];
void add(int x,int y,int z)
{
to[++tot]=y;
val[tot]=z;
nxt[tot]=head[x];
from[tot]=x;
head[x]=tot;
}
bool cmp(answer a,answer b)
{
return a.id<b.id;
}
int main()
{
scanf("%d%d",&n,&p);
for(int i=;i<=n;i++)
{
int u;
chudu[i]=;
scanf("%d%d",&c[i],&u);
if(c[i])
{
q.push(i);
v[i]=;
}
else
c[i]-=u;
}
for(int i=;i<=p;i++)
{
int x,y,z;
scanf("%d%d%d",&x,&y,&z);
add(x,y,z);
chudu[x]=;
}
while(!q.empty())
{
int x=q.front();
q.pop();
for(int i=head[x];i;i=nxt[i])
{
if(c[from[i]]<=)
continue;
int y=to[i];
c[y]+=(val[i]*c[x]);
if(v[y]==)
{
q.push(y);
v[y]=;
}
}
}
for(int i=;i<=n;i++)
if(c[i]> && chudu[i]==)
{
ans[++cnt].id=i;
ans[cnt].val=c[i];
}
if(cnt==)
{
printf("NULL");
return ;
}
sort(ans+,ans+cnt+,cmp);
for(int i=;i<=cnt;i++)
printf("%d %d\n",ans[i].id,ans[i].val);
return ;
}

我jio得大家应该能看懂。

NOIP 2003 神经网络的更多相关文章

  1. NOIP 2003解题报告

    第一题(神经网络): 题目大意,给出一些点,每个点都有2个值,c和u,给出一些有向边,权值为w.入度为0的点的c已知,其它点的c未知,每个入度不为0的点node的c等于sum(c[k]*w[k][no ...

  2. noip 2003 传染病控制(历史遗留问题2333)

    /*codevs 1091 搜索 几个月之前写的70分 今天又写了一遍 并且找到了错误 */ #include<cstdio> #include<vector> #define ...

  3. [COGS 0107][NOIP 2003] 传染病控制

    107. [NOIP2003] 传染病控制 ★★★   输入文件:epidemic.in   输出文件:epidemic.out   简单对比时间限制:1 s   内存限制:128 MB [问题背景] ...

  4. 【NOIP 2003】 加分二叉树

    [题目链接] 点击打开链接 [算法] 树形DP即可 [代码] #include<bits/stdc++.h> using namespace std; #define MAXN 50 in ...

  5. NOIP 2003 乒乓球

    洛谷 P1042 乒乓球 https://www.luogu.org/problemnew/show/P1042 JDOJ 1363: [NOIP2003]乒乓球 T1 https://neooj.c ...

  6. NOIP 2003 栈

    洛谷 P1044 栈 洛谷传送门 JDOJ 1291: [NOIP2003]栈 T3 JDOJ传送门 题目描述 栈是计算机中经典的数据结构,简单的说,栈就是限制在一端进行插入删除操作的线性表. 栈有两 ...

  7. 【算法•日更•第十期】树型动态规划&区间动态规划:加分二叉树题解

    废话不多说,直接上题: 1580:加分二叉树 时间限制: 1000 ms         内存限制: 524288 KB提交数: 121     通过数: 91 [题目描述] 原题来自:NOIP 20 ...

  8. 【入门OJ】2003: [Noip模拟题]寻找羔羊

    这里可以复制样例: 样例输入: agnusbgnus 样例输出: 6 这里是链接:[入门OJ]2003: [Noip模拟题]寻找羔羊 这里是题解: 题目是求子串个数,且要求简单去重. 对于一个例子(a ...

  9. 【2003、2004 NOIp 入门组错题报告】

    2003: T4: 题目大意:  讲这么多话,其实就是求比当前序列大的序列中第m小的一个.可以每次找出比当前序列大的最小的一个序列.我们可以从后往前扫描,当当前这个数比后一个数小时,我们把它与它后面的 ...

随机推荐

  1. Vue v-for操作与computed结合功能

    <!doctype html> <html lang="en"> <head id="head"> <meta cha ...

  2. Note | Python

    目录 PyCharm+远程服务器 预备工作 Pycharm配置 list方法 os imageio Python Image Libarary (PIL) random time PyCharm+远程 ...

  3. 领域驱动设计(DDD)编码实践

    写在前面 Martin Fowler在<企业应用架构模式>一书中写道: I found this(business logic) a curious term because there ...

  4. git 邮箱错误-git log 中发现 XXX@163.com邮箱不符合要求,请务必使用公司邮箱。

    场景描述: 重新配置电脑之后,提交了git,邮箱发生错误. git log # 查看日志git reset 版本 # 回到之前的版本,版本回退git config --global user.name ...

  5. SpringBoot启用https

    1.利用JDK自带的keytool生成证书 keytool -genkey -storetype PKCS12 -alias tomcat -keyalg RSA -keysize 2048 -key ...

  6. 解决office365无法登录以及同步的问题

    解决office365无法登录以及同步的问题 You better need to test them one by one. You better need to test them one by ...

  7. python统计wav文件的时长

    import wave import os.path # 音频存放文件夹绝对路径 filedir = '/Users/111/PycharmProjects/TextClassify/wav' lis ...

  8. LeetCode 94:二叉树的中序遍历 Binary Tree Inorder Traversal

    题目: 给定一个二叉树,返回它的中序 遍历. Given a binary tree, return the inorder traversal of its nodes' values. 示例: 输 ...

  9. 明解JAVA 第一章答案

    练习1-1 无法运行 练习1-2 package candle1220; class Nightwatch{ public static void main(String[] args) { Syst ...

  10. Window权限维持(一):注册表运行键

    在红队行动中在网络中获得最初的立足点是一项耗时的任务.因此,持久性是红队成功运作的关键,这将使团队能够专注于目标,而不会失去与指挥和控制服务器的通信.在Windows登录期间创建将执行任意负载的注册表 ...