首页 > 其他分享 >食物网Final

食物网Final

时间:2024-02-04 11:23:16浏览次数:19  
标签:21 int 40 lamp 食物 101 Final

#include<bits/stdc++.h>
using namespace std;
int n,m,ti,lamp;
double E[21][101],N[21][101],mp[21][21],tot[21][101],tot_0[21];
int main()
{
    cin>>n>>m>>ti;
    for(int i=1;i<=m;i++)
    {
        int start,end;
        cin>>start>>end;
        mp[start][end]=1;
    }
    for(int i=1;i<=n;i++)
    {
        cin>>N[i][0];
        N[i][1]=N[i][0];
        N[i][2]=N[i][0];
    }
    for(int i=1;i<=n;i++)
    {   
        for(int j=1;j<=n;j++)
        {
            if(mp[i][j])
            {
                tot_0[i]+=N[j][0];
            }
        }
        if(!tot_0[i])
        {
            for(int k=0;k<=ti;k++)
                tot[i][k]=1;
            tot_0[i]=1;
        }
    }
    E[1][0]=N[1][0];
    for(int i=1;i<=n;i++)
    {   
        for(int j=1;j<=n;j++)
        {
            if(mp[i][j])
            {
                tot[i][0]+=N[j][0];
            }
        }
        for(int j=1;j<=n;j++)
        {
            if(mp[i][j])
            {
                E[j][0]+=E[i][0]*N[j][0]/tot[i][0];
            }
        }
    }
    cin>>lamp; 
    cin>>N[lamp][0];
    E[1][1]=N[1][0];
    N[lamp][1]=N[lamp][0];
    for(int i=1;i<=n;i++)
    {   
        for(int j=1;j<=n;j++)
        {
            if(mp[i][j])
            {
                tot[i][0]+=N[j][0];
            }
        }
        for(int j=1;j<=n;j++)
        {
            if(mp[i][j])
            {
                E[j][1]+=E[i][1]*N[j][0]/tot[i][0];
            }
        }
    }
    for(int i=1;i<=n;i++)
        tot[i][0]=tot_0[i];
    for(int k=1;k<=ti;k++)
    {
        for(int i=1;i<=n;i++)
        {
            for(int j=1;j<=n;j++)
            {
                if(mp[i][j])
                {
                    tot[i][k]+=N[j][k-1];
                }
            }
            if(i==1)
                E[i][k]=E[i][k-1]*(tot[i][k-1]+10)/(10+tot[i][k]);
            for(int j=1;j<=n;j++)
            {
                if(mp[i][j])
                {
                    E[j][k]+=E[i][k]*N[j][k-1]/tot[i][k];
                }
            }
        }
        N[1][k]=E[1][k];
        E[1][k]*=1.2;
        for(int i=1;i<=n;i++)
        {
            for(int j=1;j<=n;j++)
            {
                if(mp[i][j])
                {
                    E[i][k]-=0.2*(E[j][k]);
                }
            }
        }
        for(int i=2;i<=n;i++)
        {
            if(i!=lamp)
                N[i][k+1]=(N[i][0]*(E[i][k]+30)/(E[i][0]+30)+N[i][k+1])/2;
            else
            {
                N[i][k+1]=(N[i][0]*(E[i][k])/(E[i][0])+N[i][k+1])/2;
            }
        }
    }
    for(int i=1;i<=n;i++)
    {
        printf("[%.2lf",N[i][0]);
        for(int k=2;k<=ti;k++)
        {
            printf(", %.2lf",N[i][k]);
        }
        cout<<"]"<<endl;
    }
    return 0;
}

9 9 12
1 2
1 3
1 4
3 5
3 6
4 7
5 8
6 9
7 8
100 20 30 40 40 15 40 10 40
2
80

标签:21,int,40,lamp,食物,101,Final
From: https://www.cnblogs.com/wzzorz/p/18005844

相关文章

  • 食物网
    #include<bits/stdc++.h>usingnamespacestd;intn,m,ti,lamp;doubleE[21][101],N[21][101],mp[21][21],tot[21][101],tot_0[21];intmain(){cin>>n>>m>>ti;ti+=5;for(inti=1;i<=m;i++){intstart,end;......
  • 食物网备份
    #include<bits/stdc++.h>usingnamespacestd;intn,m,ti,lamp;doubleE[21][101],N[21][101],mp[21][21],tot[21][101],tot_0[21];intmain(){cin>>n>>m>>ti;for(inti=1;i<=m;i++){intstart,end;cin>......
  • POJ1182 食物链 (并查集的应用)
    POJ1182食物链(并查集的应用)Description动物王国中有三类动物A,B,C,这三类动物的食物链构成了有趣的环形。A吃B,B吃C,C吃A。现有N个动物,以1-N编号。每个动物都是A,B,C中的一种,但是我们并不知道它到底是哪一种。有人用两种说法对这N个动物所构成的食物链关系进行描述:第一种说法......
  • try catch 有finally吗
    try-catch语句块可以包含finally子句。finally子句是可选的,并且在try-catch语句块中的异常处理完成后始终会执行,无论是否发生异常。无论异常是否被捕获,finally子句中的代码都会被执行。这使得finally子句非常适合用于释放资源或执行清理操作,以确保代码的一致性和完整性。以下是......
  • 面试官:小伙子来说一说Java中final关键字,以及它和finally、finalize()有什么区别?
    写在开头面试官:“小伙子,用过final关键字吗?”我:“必须用过呀”面试官:“好,那来说一说你对这个关键字的理解吧,再说一说它与finally、finalize()的区别”我:“好嘞!”final中文释义:最终的,最后的;在Java中作为关键字的一种,被用来修饰变量、方法、类,final语义是不可改变的。final......
  • 生活常识-食物制作
    前言全局说明生活常识内容来源于网络,个体差异,如有不适,请到正规医院就诊一、生发豆芽发豆芽,先用开水烫,之后赶快浇冷水“救命”,这样做有点像“惊蛰”,开水刺激唤醒沉睡的生命,在给予平和的生长条件是一样道理,和日常养生是一样的道理。来源:微信视频号“岐杏文道”二、......
  • AT_codefestival_2016_final_b
    根据题意,很容易得知要使得它们的最大值最小,就要从最小的\(1\)开始用。转化一下题意,不难发现,我们只需求出最小的\(k\),使得\[\\sum_{i=1}^ki\\gen\]于是思路便产生了:对\(1\),\(2\),\(3\),⋯\(k\)求和,直到上述式子成立。可以很容易地看出来一个规律:\[(\\sum_{i=1}^ki\)......
  • Final Cut Pro:打造专业品质的视频作品
    FinalCutPro是苹果公司开发的一款专业视频剪辑软件,被广泛应用于电影、电视和广告制作等领域。→→↓↓载FinalCutPro首先,FinalCutPro拥有直观且强大的界面,使得用户可以轻松地组织和编辑大量的视频素材。它支持多种格式的视频和音频文件,包括ProRes、RED、Canon、Panasonic......
  • CCPC-final 2019 Problem B - Infimum of Paths
    链接参考题解题意:求0->1路径上的数组成真小数最小值若最小路径无环,则长度\(\le\)n-1方法一从\(0\)开始,维护当前走到的点,每次都走边权(当前总体)最小的且\(v\)能到\(1\)的边,跑\(2n\)条边,顺便沿路维护走过的边权连\(1\rarr1\)代价为\(0\)的环,这样最后一定是在环......
  • 题解「JOI 2014 Final」IOI 馒头
    传送门。题意有\(n\)个物品,\(m\)个背包。第\(i\)个物品的价值是\(P_i\),第\(j\)个背包可以装\(C_i\)个物品,但会消耗\(E_i\)的价值。背包不能重复买,问最多可以获得多少价值。分析首先一个简单的贪心,我们在购买背包后塞入物品,一定时从大往小塞,也就是说,我们可以先对......