zoukankan      html  css  js  c++  java
  • 洛谷P1038 神经网络题解

    注意如果是

    • (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
    ",i,c[i]);
    			}
    		}
    	}
    	else
    	{
    		printf("NULL
    ");
    	}
    	return 0^_^0;
    }
    
  • 相关阅读:
    Windows下安装redis
    flask-redirect
    MySQLHelper
    配置信息
    注释习惯
    SQL2012 附加数据库提示5120错误解决方法
    Union-SQL Server学习笔记
    存储过程
    模糊查询&&日期时间操作
    数据库表的设计
  • 原文地址:https://www.cnblogs.com/ShineEternal/p/toposort.html
Copyright © 2011-2022 走看看