洛谷P1038 神经网络题解
2024-09-22 18:05:26
注意如果是
- \(if(c[i])\)
这条语句并没有说明c[i]不为负数,所以说最好老老实实的写
#include<cstdio>
#define _ 0
using namespace std;
int c[105],u[105];
struct ben
{
int i,j,w;
}a[10005];
int h[10005],in[105],out[105],vis[105];
int main()
{
int n,p;
scanf("%d%d",&n,&p);
for(int i=1;i<=n;i++)
{
scanf("%d%d",&c[i],&u[i]);
if(c[i]>0)u[i]=-1;
}
int cnt=0;
for(int k=1;k<=p;k++)
{
int i,j,w;
scanf("%d%d%d",&i,&j,&w);
a[++cnt]=(ben){j,w,h[i]};//终点,权值,以及起点所对应的边记录的编号
h[i]=cnt;
in[j]++;
out[i]++;
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
if(in[j]==0&&vis[j]==0)
{
vis[j]=1;
if(u[j]!=-1)c[j]-=u[j];
for(int k=h[j];k>0;k=a[k].w)
{
if(c[j]>0)
{
c[a[k].i]+=c[j]*a[k].j;
}
in[a[k].i]--;
}
break;
}
}
}
int flag=0;
for(int i=1;i<=n;i++)
{
if(out[i]==0&&c[i]>0)
{
flag=1;
break;
}
}
if(flag==1)
{
for(int i=1;i<=n;i++)
{
if(out[i]==0&&c[i]>0)
{
printf("%d %d\n",i,c[i]);
}
}
}
else
{
printf("NULL\n");
}
return 0^_^0;
}
最新文章
- (转载)linux下各个文件夹的作用
- Host文件设置
- PHP日期与时间
- Web前端学习过程
- track by
- java @Autowired与@Resource的区别
- coreseek实战(一):windows下coreseek的安装与测试
- MyEclipse10中导入的jquery文件报错(出现红叉叉,提示语法错误)
- Android的一些常用命令提示符(cmd)指令
- Hibernate从入门到精通(十)多对多单向关联映射
- Huffman Coding 哈夫曼编码
- is 和==的区别
- thymeltesys-基于Spring Boot Oauth2的扫码登录框架
- Restful API学习Day4 - DRF版本控制和认证
- .NET获取城市信息(将三字代码转换成城市名)
- Python图像识别(聚类)
- android dev概念快速入门
- Mybatis知识(3)
- seleniumIDE的实践
- C语言 for循环次数