首页 > 其他分享 >洛谷P4017 最大食物链计数(追加上一篇文章的第二种方法 )

洛谷P4017 最大食物链计数(追加上一篇文章的第二种方法 )

时间:2023-01-05 16:14:58浏览次数:55  
标签:食物链 洛谷 一篇 5005 map int 第二种 方法 P4017

上一篇 不是说 第二种方法RE了吗? 害,其实,是我的问题 我粗心了。------------------------------------------------------

因为

 

 

 

 这两处的循环应该到n而不是m。害 当时写的晕了 脑子没有转过弯 呜呜呜呜呜=======================

这个方法的区别就是开了一个二位数组map[5005][5005] 用于记录关系(相比于上一篇利用h[5005]数组记录 这个方法 开销更大,但是更容易想)

这里就不多赘述了,具体代码如下:

#include<iostream>
#include<queue>
#define N  80112002 
using namespace std;
int map[5005][5005],f[5005],chu[5005],ru[5005];
int n,m,sum;
queue<int> q;
int main(){
    int a,b;
    cin>>n>>m;
    for(int i = 1;i <= m;i++){
        cin>>a>>b;
        map[a][b] = 1;
        chu[a]++;
        ru[b]++;
    }
    for(int j = 1;j <= n;j++){
        if(ru[j] == 0){
            f[j] = 1;
            q.push(j);
        }
    }
    while(!q.empty()){
        int a = q.front();
        q.pop();
        for(int i = 1;i <= n;i++){
            if(map[a][i] == 0) 
                continue;
                f[i] += f[a];
                f[i] %= N;
                ru[i]--;
            if(ru[i] == 0){
                if(chu[i] == 0){
                    sum += f[i];
                    sum %= N;
                    continue;
                }
                else
                    q.push(i);
            }
        }
    }
        cout<<sum<<endl;
        return 0;
    }

okok, 加油小灰灰  这小不能再粗心了 ------------------------------------

标签:食物链,洛谷,一篇,5005,map,int,第二种,方法,P4017
From: https://www.cnblogs.com/fighting-huihui/p/17027844.html

相关文章

  • 洛谷 p5536 题解
    题目链接:https://www.luogu.com.cn/problem/P5536此题为树的dfs的一个应用。思路树dfs时,可以计算每个点的深度。如图所示可以多次dfs,从而找到不同的信息。代码......
  • 洛谷表情包(仅供参考)
    ![](//图.tk/0)![](//图.tk/1)![](//图.tk/2)![](//图.tk/3)![](//图.tk/4)![](//图.tk/5)![](//图.tk/6)![](//图.tk/7)![](//图.tk/8)![](//图.tk/9)![](//图.......
  • 洛谷P1048 典型01背包问题
    写在前面的话蒟蒻在学习诸多图论算法之前,实际上没学过dp!强说是学过也是只学了01背包,今天就来温习一下……DP是啥?动态规划(DynamicProgramming,DP)是运筹学的一个分支,是......
  • 「洛谷 P1658」购物
    原题链接你就要去购物了,现在你手上有N种不同面值的硬币,每种硬币有无限多个。为了方便购物,你希望带尽量少的硬币,但要能组合出1到X之间的任意值。输出最少需要携带的......
  • 洛谷P8567 真·基础数论问题
    基础数论重定向今天蒟蒻切水题切到一道建议评黄的红题,一下子给我整不会了……题目传送门理解题意首先,我们要理解题意。[JRKSJR6]Nothing我们定义\(f(x)\)表示\(......
  • 寒假第一次洛谷蓝桥个人赛 题解+补题(下)
    D.灵能传输##神仙结论把前缀和应用到极致,6先考虑三个数a,b,c,进行一次变换也就是a+b,-b,c+b可见三个数之和不变,也就是s[3]不变然后之前的s[1]+b,愿称之为s[2]之前的s......
  • 洛谷P8838 [传智杯 #3 决赛] 面试(害 刚开始,没想到用dfs 呜呜呜)
    这道题其实不算难,但是我没有想到用dfs,害,,难受。其次这个题,我看了大佬的代码,找到答案后直接exit(0),直接退出,而不是利用return一层层返回。其实这个题就是利用dfs求出每种......
  • 洛谷2022年十二月月赛题解(作者:Kubic)
    T1只有第一秒走的长度为奇数,后面每一秒走的长度都为偶数,因此所有除\(0\)外的偶数点都是不可达的。当\(n\)为奇数时,设\(d\)为满足\(\sum\limits_{i=1}^d2^{i-1}\g......
  • 寒假第一次洛谷蓝桥个人赛 题解+补题(上)
    传送门部分,今天整不完了A.带分数(补题)##这...话说赛时难以置信地看了好几遍题目,然后完全没思路(我以为有什么神仙结论,压根没想暴力搜索,还是被虎到了,然后就根本没管这道......
  • 洛谷 P1223 排队接水
    题目传送门:https://www.luogu.com.cn/problem/P1223题目:Description:有nn个人在一个水龙头前排队接水,假如每个人接水的时间为Ti,请编程找出这n个人排队的一种顺序,使得n......