下图转自“英式没品笑话百科”的新浪微博 —— 所以无论有没有遇到难题,其实都不用担心。

博主将这种逻辑推演称为“逻辑自洽”,即从某个命题出发的所有推理路径都会将结论引导到同一个最终命题(开玩笑的,千万别以为这是真正的逻辑自洽的定义……)。现给定一个更为复杂的逻辑推理图,本题就请你检查从一个给定命题到另一个命题的推理是否是“逻辑自洽”的,以及存在多少种不同的推理路径。例如上图,从“你遇到难题了吗?”到“那就别担心了”就是一种“逻辑自洽”的推理,一共有 3 条不同的推理路径。

输入格式:
输入首先在一行中给出两个正整数 N(1<N≤500)和 M,分别为命题个数和推理个数。这里我们假设命题从 1 到 N 编号。

接下来 M 行,每行给出一对命题之间的推理关系,即两个命题的编号 S1 S2,表示可以从 S1 推出 S2。题目保证任意两命题之间只存在最多一种推理关系,且任一命题不能循环自证(即从该命题出发推出该命题自己)。

最后一行给出待检验的两个命题的编号 A B。

输出格式:
在一行中首先输出从 A 到 B 有多少种不同的推理路径,然后输出 Yes 如果推理是“逻辑自洽”的,或 No 如果不是。

题目保证输出数据不超过 109

输入样例 1:
7 8
7 6
7 4
6 5
4 1
5 2
5 3
2 1
3 1
7 1
输出样例 1:
3 Yes
输入样例 2:
7 8
7 6
7 4
6 5
4 1
5 2
5 3
6 1
3 1
7 1
输出样例 2:
3 No

一个摸鱼好久的人突然想起了自己的CSDN账号…

**

思路:

**
开始的时候认为是拓扑排序,代码写到一半发现和终点的入度没有太大关系。只要知道从起点开始到终点的路径数目即可,bfs中只要碰到终点立刻结束,记录路径数的的变量+1,只要有节点的出度为0,且不为终点,则把表示是否“逻辑自洽”的flag赋值为false,以这个思路写,遂在最后的一个测试数据上TLE。


如果求2 8之间的关系,按照现在的思路,45678这个顺序会被遍历多次,造成时间的浪费。最后我的解法为dfs+记忆化搜索。

#include <iostream>
#include <cstring>
#include <vector>
using namespace std;
vector<int> vax[505]; //  邻接表
long long weight[505];  //对应下标index表示index到终点End的路径数目
int n,m;
int Start,End;
bool flag=true;    //记录是否为逻辑自洽
void init(void)
{memset(weight,-1,sizeof(weight));  //开始时标记为-1,代表这个节点没有经历过搜索
}
long long dfs(int x)
{if(weight[x]!=-1) //不等于-1代表该节点已经历过搜索,直接加上答案即可return weight[x];long long res=0;for(int i=0;i<vax[x].size();++i){if(weight[vax[x][i]]==-1)dfs(vax[x][i]);res+=weight[vax[x][i]];}if(res==0) //res为0代表从该节点(x)进行搜索,没有一条路径能到达End节点,所以不为逻辑自洽,flag为falseflag=false;return weight[x]=res;
}
int main(void)
{init();cin>>n>>m;for(int i=1;i<=m;++i){int x,y;cin>>x>>y;vax[x].push_back(y);}cin>>Start>>End;weight[End]=1;cout<<dfs(Start)<<" ";   //从Start节点开始进行dfsif(flag)cout<<"Yes";elsecout<<"No";return 0;
}

L3-025 那就别担心了 (30分)相关推荐

  1. 【CCCC】L3-025 那就别担心了 (30分),dfs搜索起点到终点的路径条数。

    problem L3-025 那就别担心了 (30分) 下图转自"英式没品笑话百科"的新浪微博 -- 所以无论有没有遇到难题,其实都不用担心. ziqia.jpg 博主将这种逻辑推 ...

  2. 7-13 那就别担心了 (30 分)

    7-13 那就别担心了 (30 分)   下图转自"英式没品笑话百科"的新浪微博 -- 所以无论有没有遇到难题,其实都不用担心.   博主将这种逻辑推演称为"逻辑自洽&q ...

  3. L3-1 那就别担心了 (30分) 2020 天梯赛

    L3-1 那就别担心了 (30分) 下图转自"英式没品笑话百科"的新浪微博 -- 所以无论有没有遇到难题,其实都不用担心. 博主将这种逻辑推演称为"逻辑自洽", ...

  4. L3-025 那就别担心了 (30 分)-PAT 团体程序设计天梯赛 GPLT

    下图转自"英式没品笑话百科"的新浪微博 -- 所以无论有没有遇到难题,其实都不用担心. 博主将这种逻辑推演称为"逻辑自洽",即从某个命题出发的所有推理路径都会将 ...

  5. 7-1 那就别担心了 (30分)

    博主将这种逻辑推演称为"逻辑自洽",即从某个命题出发的所有推理路径都会将结论引导到同一个最终命题(开玩笑的,千万别以为这是真正的逻辑自洽的定义--).现给定一个更为复杂的逻辑推理图 ...

  6. 2020年团体程序设计天梯赛 L3-1 那就别担心了 (30分)

    下图转自"英式没品笑话百科"的新浪微博 -- 所以无论有没有遇到难题,其实都不用担心. 博主将这种逻辑推演称为"逻辑自洽",即从某个命题出发的所有推理路径都会将 ...

  7. 央视新闻30分:开心网流行背后存在的隐忧

     央视网消息(新闻30分):不知道您有没有听说过"在网上争车位"?您又知不知道,朋友也可以当成奴隶来买卖?如果听着这些感觉云里雾里.一窍不通的话,那您可能已经落伍了.这半年来,一个 ...

  8. 3分和30分文章差距在哪里?

    好的分析和可视化,可以提供大量的信息,同时兼顾简洁优雅. 今天我们抛开实验设计.方法和工作量等因素,仅从文章最吸引人的图片来讨论3分和30分(顶级)文章差距在哪里? 以2017年8月25日发表在Sci ...

  9. 微生物组:3分和30分文章差距在哪里?

    好的分析和可视化,可以提供大量的信息,同时兼顾简洁优雅. 今天我们抛开实验设计.方法和工作量等因素,仅从文章最吸引人的图片来讨论3分和30分(顶级)文章差距在哪里? 以2017年8月25日发表在Sci ...

最新文章

  1. 1小时学会:最简单的iOS直播推流(二)代码架构概述
  2. linux之source
  3. Java多线程(三)之ConcurrentHashMap深入分析
  4. C#中的模块化软件开发
  5. spring3-mvc实例-信息转换
  6. 执行存储过程SQL Server阻止了对组件xp_cmdshell过程的解决方案
  7. 自定义tooltip
  8. python求解next数组实现KMP算法
  9. 轻松搞定RabbitMQ(四)——发布/订阅
  10. 计算机界面右下角,电脑开机卡主板界面右下角显示B4~
  11. 关于golang如何生成文档
  12. BMZCTF misc1
  13. 最佳阵容问题matlab,若在NBA组一队小球打法最佳阵容,哪5人在一起最无解?
  14. 《创造成功本能》 博客思听 2011年2月
  15. 12岁的B站,放慢脚步做社区
  16. android 自动下载软件安装程序,手机自动安装软件怎么办
  17. JimuReport积木报表1.1.09 版本发布,免费的企业级 Web 报表工具
  18. C语言函数指针和返回指针值的函数
  19. 做原画师需要学习素描吗?
  20. 超便利!教你用ESP32开发板DIY掌上网页服务器!

热门文章

  1. Linux系列——VMware虚拟机配置端口转发(端口映射),实现远程访问
  2. POI 控制 excel 生成图表的方式(一)
  3. .NET Memory usage – A restaurant analogy
  4. 广东智慧高速大数据平台揭秘,值得学习!
  5. 自考之操作系统大题解析
  6. python人像录制加声音_Python教父推荐的一份Python学习清单,秀儿拿走学去吧,最适合你...
  7. 通勤车油耗(算法题)
  8. Word处理控件Aspose.Words功能演示:在 C# .NET 中将 Word 转换为 PDF - 完整指南
  9. 人工智能建筑设计理念图,人工智能建筑设计方案
  10. hackthebox-granny(考点:webdav/windows)