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)的更多相关文章

  1. 最短路 spfa 算法 && 链式前向星存图

    推荐博客  https://i.cnblogs.com/EditPosts.aspx?opt=1 http://blog.csdn.net/mcdonnell_douglas/article/deta ...

  2. C++算法 链式前向星存图

    这个东西恶心了我一阵子,那个什么是什么的上一个一直是背下来的,上次比赛忘了,回来有个题也要用,只能再学一遍,之前也是,不会为什么不学呢.我觉得是因为他们讲的不太容易理解,所以我自己给那些不会的人们讲一 ...

  3. UESTC 30.最短路-最短路(Floyd or Spfa(链式前向星存图))

    最短路 Time Limit: 3000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) 在每年的校赛里,所有进入决赛的同 ...

  4. 链式前向星存树图和遍历它的两种方法【dfs、bfs】

    目录 一.链式前向星存图 二.两种遍历方法 一.链式前向星存图:(n个点,n-1条边) 链式前向星把上面的树图存下来,输入: 9 ///代表要存进去n个点 1 2 ///下面是n-1条边,每条边连接两 ...

  5. UESTC30-最短路-Floyd最短路、spfa+链式前向星建图

    最短路 Time Limit: 3000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) 在每年的校赛里,所有进入决赛的同 ...

  6. POJ 1655 Balancing Act ( 树的重心板子题,链式前向星建图)

    题意: 给你一个由n个节点n-1条边构成的一棵树,你需要输出树的重心是那个节点,以及重心删除后得到的最大子树的节点个数size,如果size相同就选取编号最小的 题解: 树的重心定义:找到一个点,其所 ...

  7. 链式前向星版DIjistra POJ 2387

    链式前向星 在做图论题的时候,偶然碰到了一个数据量很大的题目,用vector的邻接表直接超时,上网查了一下发现这道题数据很大,vector可定会超的,不会指针链表的我找到了链式前向星这个好东西,接下来 ...

  8. POJ 3169 Layout(差分约束+链式前向星+SPFA)

    描述 Like everyone else, cows like to stand close to their friends when queuing for feed. FJ has N (2 ...

  9. poj-1459-最大流dinic+链式前向星-isap+bfs+stack

    title: poj-1459-最大流dinic+链式前向星-isap+bfs+stack date: 2018-11-22 20:57:54 tags: acm 刷题 categories: ACM ...

随机推荐

  1. C# 数据操作系列 - 12 NHibernate的增删改查

    0. 前言 上一篇<C# 数据操作系列 - 11 NHibernate 配置和结构介绍> 介绍了Nhibernate里的配置内容.这一篇将带领大家了解一下如何使用NHIbernate.之前 ...

  2. Spring 中基于 AOP 的 @AspectJ

    Spring 中基于 AOP 的 @AspectJ @AspectJ 作为通过 Java 5 注释注释的普通的 Java 类,它指的是声明 aspects 的一种风格. 通过在你的基于架构的 XML ...

  3. 使用element-ui 的table 组件 出现表格线条不对齐的问题

    在全局css样式中添加以下代码即可: body .el-table th.gutter { display: table-cell !important }

  4. 使用EditPlus根据指定字符批量换行,快速填充Postman请求参数键值对

    1.当某个.ext格式的文件中的重复格式内容太多时,而又想要根据某个字符进行批量换行时,那么可以使用EditPlus进行批量换行. 在开发过程中就会经常遇到这种问题,比如把Url的请求参数,快速的填写 ...

  5. 人机协同与AI能力训练

    我们进行<中台战略>一书的第三期分享. “人机融合是解决aI机器人冷启动的绝佳解决方案,我们这里引入了一个应答满意度的指标,每一个咨询应答都对应一个应答满意度.当消费者应该回答选择转入人工 ...

  6. 大数据平台比较-CDH,HDP

    主要的不同点 apache Ambari ClouderaManager Express(免费版) 配置版本控制和历史记录 支持 不支持 二次开发 支持 不支持 集成 支持 no (不支持redis. ...

  7. Car的旅行路线 luogu P1027 (Floyd玄学Bug有点毒瘤)

    luogu题目传送门! Car的旅行路线  问题描述 又到暑假了,住在城市A的Car想和朋友一起去城市B旅游.她知道每个城市都有四个飞机场,分别位于一个矩形的四个顶点上,同一个城市中两个机场之间有一 ...

  8. python时间格式化、运行时长计算

    1.格式化: import time timeStr=time.strftime('%Y-%m-%d %H:%M:%S',time.localtime()) #格式化为:2018-07-17 19:0 ...

  9. 06 . Nginx静态资源缓存

    Nginx静态资源 Nginx可以处理静态资源 非Web服务器可以运行处理而生成的文件,即服务器只需要从硬盘或者缓存中读取然后直接给客户端响应即可. 常见的静态资源 # 浏览器渲染: html文件,样 ...

  10. css引入方式和基本样式

    css的三种引入方式: 1.内嵌:直接在标签中添加style属性 格式:<标签名 style="样式1:样式值1:样式2=样式值2:"></标签名> 2.内 ...