Pants On Fire(链式前向星存图、dfs)
Pants On Fire
传送门:链接 来源:upc9653
题目描述
Donald and Mike are the leaders of the free world and haven’t yet (after half a year) managed to start a nuclear war. It is so great! It is so tremendous!
Despite the great and best success of Donald’s Administration, there are still a few things he likes to complain about.
The Mexican government is much smarter, much sharper, and much more cunning.
And they send all these bad hombres over because they don’t want to pay for them.
They don’t want to take care of them.
Donald J. Trump, First Republican Presidential Debate, August 6, 2015
He also frequently compares Mexicans to other bad people (like Germans, since they are exporting so many expensive cars to the US). Due to the tremendous amount of statements he has made (mostly containing less than 140 characters ...) the “Fake-News” New York Telegraph (NYT) has to put in a lot of effort to clarify and comment on all the statements of Donald. To check a statement, they have a list of facts they deem to be true and classify Donald’s
statements into three groups: real facts (which are logical conclusions from their list of true facts), exaggerations (which do not follow, but are still consistent with the papers list of facts),and alternative facts (which contradict the knowledge of the newspaper).
They have asked you to write a program helping them to classify all of Donald’s statements –after all it is hard for a journalist to go through them all and check them all, right?
输入
The input consists of:
• one line containing two integers n and m, where
– n (1 ≤ n ≤ 200) is the number of facts deemed true by the NYT;
– m (1 ≤ m ≤ 200) is the number of statements uttered by the Donald.
• n lines each containing a statement deemed true by the NYT.
• m lines each containing a statement uttered by the Donald.
All statements are of the form a are worse than b, for some strings a and b, stating that a is (strictly) worse than b. The strings a and b are never identical. Both a and b are of length between 1 and 30 characters and contain only lowercase and uppercase letters of the English alphabet.
Note that Donald’s statements may contain countries that the NYT does not know about. You may assume that worseness is transitive and that the first n lines do not contain any contradictory statement. Interestingly, Donald’s press secretary (Grumpy Sean) has managed to convince him not to make up countries when tweeting, thus the input mentions at most 193 different countries.
输出
For every of the m statements of Donald output one line containing
• Fact if the statement is true given the n facts of the NYT
• Alternative Fact if the inversion of the statement is true given the n facts of the NYT
• Pants on Fire if the statement does not follow, but neither does its inverse.
样例输入
4 5
Mexicans are worse than Americans
Russians are worse than Mexicans
NorthKoreans are worse than Germans
Canadians are worse than Americans
Russians are worse than Americans
Germans are worse than NorthKoreans
NorthKoreans are worse than Mexicans
NorthKoreans are worse than French
Mexicans are worse than Canadians
样例输出
Fact
Alternative Fact
Pants on Fire
Pants on Fire
Pants on Fire
题目含义:
根据前n项输入的内容,判断后m项内容和前n项的一致性,输出矛盾、不矛盾、无法确定,三种结果。
思路:
开始用邻接矩阵写的,写一半写不下去了,仔细想想如果用邻接矩阵写最终还是要dfs,又想到之前写了个链式前向星存图加dfs/bfs的博客,就用链式前向星代替了临界矩阵,写完检查dfs的时候出错了,很低级的错误…
用字符串做id肯定不好操作,就用map给每个名字赋id值,然后链式前向星存图(单向边),最后dfs就行了。
AC代码:
#include<bits/stdc++.h>
using namespace std;
const int MAX=3e2;
map<string,int>mp;
int cnt=1;
struct node{
int to;
int next;
}edge[MAX+5];
int getname(char name[])
{
if(mp[name]==0){
mp[name]=cnt;
return cnt++;
}else{
return mp[name];
}
}
int ans;
int head[MAX+5];
void init()
{
memset(head,-1,sizeof(head));
ans=0;
}
void addedge(int u,int v)
{
edge[ans].to=v;
edge[ans].next=head[u];
head[u]=ans++;
}
int aut[MAX+5][MAX+5];
int flag=0;
void dfs(int k,int v)
{
if(k==v||flag){
flag=1;
return ;
}
int flag=0;
for(int i=head[k];~i;i=edge[i].next){
int t=edge[i].to;
dfs(t,v);
}
}
int main()
{
int n,m;
cin>>n>>m;
init();
for(int i=0;i<n;i++){
char u[35],v[35],w[35],x[35],y[35];
cin>>u>>v>>w>>x>>y;
int id1=getname(y),id2=getname(u);
addedge(id1,id2);
}
for(int i=0;i<m;i++){
char u[35],v[35],w[35],x[35],y[35];
cin>>u>>v>>w>>x>>y;
int id1=getname(y);
int id2=getname(u);
//cout<<id1<<"***"<<id2<<endl;
flag=0;
dfs(id1,id2);
int num1=flag;
flag=0;
dfs(id2,id1);
int num2=flag;
//cout<<num1<<"***"<<num2<<endl;
if(num1==0&&num2==0) cout<<"Pants on Fire"<<endl;
else if(num1==0&&num2==1) cout<<"Alternative Fact"<<endl;
else if(num1==1&&num2==0) cout<<"Fact"<<endl;
}
return 0;
}
Pants On Fire(链式前向星存图、dfs)的更多相关文章
- 最短路 spfa 算法 && 链式前向星存图
推荐博客 https://i.cnblogs.com/EditPosts.aspx?opt=1 http://blog.csdn.net/mcdonnell_douglas/article/deta ...
- C++算法 链式前向星存图
这个东西恶心了我一阵子,那个什么是什么的上一个一直是背下来的,上次比赛忘了,回来有个题也要用,只能再学一遍,之前也是,不会为什么不学呢.我觉得是因为他们讲的不太容易理解,所以我自己给那些不会的人们讲一 ...
- UESTC 30.最短路-最短路(Floyd or Spfa(链式前向星存图))
最短路 Time Limit: 3000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) 在每年的校赛里,所有进入决赛的同 ...
- 链式前向星存树图和遍历它的两种方法【dfs、bfs】
目录 一.链式前向星存图 二.两种遍历方法 一.链式前向星存图:(n个点,n-1条边) 链式前向星把上面的树图存下来,输入: 9 ///代表要存进去n个点 1 2 ///下面是n-1条边,每条边连接两 ...
- UESTC30-最短路-Floyd最短路、spfa+链式前向星建图
最短路 Time Limit: 3000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) 在每年的校赛里,所有进入决赛的同 ...
- POJ 1655 Balancing Act ( 树的重心板子题,链式前向星建图)
题意: 给你一个由n个节点n-1条边构成的一棵树,你需要输出树的重心是那个节点,以及重心删除后得到的最大子树的节点个数size,如果size相同就选取编号最小的 题解: 树的重心定义:找到一个点,其所 ...
- 链式前向星版DIjistra POJ 2387
链式前向星 在做图论题的时候,偶然碰到了一个数据量很大的题目,用vector的邻接表直接超时,上网查了一下发现这道题数据很大,vector可定会超的,不会指针链表的我找到了链式前向星这个好东西,接下来 ...
- POJ 3169 Layout(差分约束+链式前向星+SPFA)
描述 Like everyone else, cows like to stand close to their friends when queuing for feed. FJ has N (2 ...
- poj-1459-最大流dinic+链式前向星-isap+bfs+stack
title: poj-1459-最大流dinic+链式前向星-isap+bfs+stack date: 2018-11-22 20:57:54 tags: acm 刷题 categories: ACM ...
随机推荐
- Request.params,Request.form,Request.querystring区别(转)
自己总结:---大致意思是: 1.传参的方式分为:get方式传参,post方式传参,request.cookies和request.servervariables 2.这几种获取参数方式获取的都是一个 ...
- [翻译]用于.NET Core的Windows窗体设计器发布
本文由微信公众号<开发者精选资讯>翻译首发,转载请注明来源 今天我们很高兴地宣布,.NET Core项目的Windows窗体设计器现在可以在 Visual Studio 2019 16.6 ...
- 实验三 Java基本程序设计(2)
实验三 Java基本程序设计(2) ...
- mac OS和win7笔记本实现文件共享
记录下macbook通过共享读取win7笔记本中文件的过程,条件是两台电脑处于同一无线网中 win7操作 点击网络图标--属性--更改高级共享设置 选择公用后选择以下选项:启动网络发现--启动文件和打 ...
- redis 启动停止重启
启动服务: service redis start 停止服务: service redis stop 重启服务: service redis restart
- mybatis的一堆多映射使用配置
自己仿站jeep官网在制作商城时,商品详情页面需要带着一个商品的信息,商品的配置,配置对应的颜色,商品的图片 如图 首先设计业务bean 一辆车的信息 业务一对多的大业务bean,继承Car.ja ...
- JVM中的垃圾收集
引用计数(Reference Counting) 循环引用问题 标记清除(Mark and Sweep) 内存池(Memory Pools) Eden 是内存中的一个区域, 用来分配新创建的对象 . ...
- MSC添加shard节点
1.MSC添加shard节点 mkdir -p /mongodb/38027/conf /mongodb/38027/log /mongodb/38027/datamkdir -p /mongod ...
- [安卓基础] 008.Android中的显示单位
*:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } ...
- [JavaWeb基础] 008.Spring初步配置
框架简介: Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Develop ...