首页 > 其他分享 >2023年牛客基础训练营4-J

2023年牛客基础训练营4-J

时间:2023-03-29 12:11:55浏览次数:51  
标签:dfs2 int 训练营 个数 dfs st 牛客 2023 eg1

题目链接:https://ac.nowcoder.com/acm/contest/46812/J

大致题意:给你一些大小关系,要你判断有些点是否可以判断他的具体位置。

易错点:将这个图用拓扑图的做法来思考,陷入思维漩涡。

正解:对每个点都进行两次dfs,一次正着进行,一次反着进行。对于一个点来说,如果到这个点的点的个数(正dfs)加上这个点能到的点的个数(反dfs)等于总点个数加一的话,则这个点的位置就确定下来了。

代码:

#include<bits/stdc++.h>
using namespace std;
const int N = 1010,M = 1e5+10;
vector<int>eg[N],eg1[N];
int ans[N];
int cntd[N],cntx[N];
bool st[N];
void dfs1(int u,int s){
    if (st[u]) return ;
    st[u] = 1;
    cntd[s]++;
    for (int v:eg[u]) dfs1(v,s);
}
void dfs2(int u,int s){
    if (st[u]) return ;
    st[u] = 1;
    cntx[s]++;
    for (int v:eg1[u]) dfs2(v,s);
}
int main(){
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    int n,m;
    cin>>n>>m;
    for (int i=1;i<=m;i++){
        int x,y;
        cin>>x>>y;
        eg[x].push_back(y);
        eg1[y].push_back(x);
    }
    for (int i=1;i<=n;i++){
        memset(st,0,sizeof(st));
        dfs1(i,i);
        memset(st,0,sizeof(st));
        dfs2(i,i);
        //cout<<cntd[i]<<' '<<cntx[i]<<'\n';             
    }
    for (int i=1;i<=n;i++){
        if (cntd[i]+cntx[i]==n+1) ans[cntx[i]] = i;
    }
    for (int i=1;i<=n;i++){
        if (ans[i]) cout<<ans[i]<<' ';
        else cout<<-1<<' ';
    }
    return 0;
}

标签:dfs2,int,训练营,个数,dfs,st,牛客,2023,eg1
From: https://www.cnblogs.com/xjwrr/p/17268447.html

相关文章

  • 2023年牛客基础训练营3-K
    题目链接:https://ac.nowcoder.com/acm/contest/46811/K需要的知识:质因子公式。介绍:如果一个数可以化为\(i^x*j^y*k^z\),则这个数的因子个数为:\((x+1)*(y+1)*(z+1)\),......
  • TopSolid 2023 v7.17 Multilingual edition full licensed
     T opSolid'Design2023在设计、钢材、模具和电极方面增加了近400项新功能: ·    逼真渲染模块已得到改进,引入了几个允许高质量逼真渲染的主要新功能。......
  • 2023.3.29每日总结
    今天学习了运用jsp实现在线的视频播放0.MP4格式主代码:<body><videowidth="320"height="240"controls="controls"><sourcesrc="zp.mp4"type="video/......
  • 不坑盒子 V2023.0325 && 打工人插件 大众实用型办公高效利器。
    不坑盒子这是一个非常好用的插件工具,专门应用在Word文档和wps,支持Office2010以上的版本,操作也简单且实用。不坑盒子下载及使用说明 一键排版功能像是下面的自动排版......
  • 2023-03-29 图的深度优先遍历
    图的深度优先遍历1数据结构遍历的意义每种数据结构,都必须有遍历的方式很多算法的本质都是遍历,对于图论问题,真正理解遍历,已经可以应付80%的问题了树的遍历复习复......
  • 总结20230328
    今天周二,上了实用英语阅读与翻译、数据库原理、python程序设计。实用英语阅读与翻译讲的是词类转换。数据库原理讲的是第五章和第六章的一部分,具体第五章讲的是视图,第六......
  • 2023/3/28
      今天的工作很少~也很多:依赖冲突。对于gradle系统出现的依赖冲突,真的很无解。不清楚如何移除。网上的也很难有准确的。除了这些依赖冲突的问题。还写了每个页面的基本......
  • 2023/3/28每日随笔
    今天,上了英语口语,聊的很开心,随后上了数据库,学了视图的建立,感觉视图和表有着相似的关系,视图是表内数据的一种展示形式我认为,你想要什么数据就去展示什么数据,通过select语句,......
  • 2023年3月28日软工日报
    今天完成了外包画界面。干了半天mysql存文件如何实现。好累啊,主要是不会后端如何接受和存取前端文件 ......
  • 2023年3月28日晚
    关于项目数据库的设计得新增mock相关的表和审核相关的表ER图包括实体,属性,实体间的联系bug、bug_log、debug、error、interface、module、project、setting、user......