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. 关于Slow HTTP Denial of Service Attack slowhttptest的几种慢攻击DOS原理

    关于Slow HTTP Denial of Service Attack  slowhttptest的几种慢攻击DOS原理 http://www.myhack58.com/Article/60/sor ...

  2. IIS网站发布不了.ttf .woff 文件 并且网站报脚本错误找不到

    -----------------------------解决方法------------------------------------------------ 1. 既然脚本发布不了,就将脚本从本 ...

  3. D:Sequence Swapping

    BaoBao has just found a strange sequence {<, >, <, >, , <, >} of length in his poc ...

  4. 聊聊UDP、TCP和实现一个简单的JAVA UDP小Demo

    最近真的比较忙,很久就想写了,可是一直苦于写点什么,今天脑袋灵光一闪,觉得自己再UDP方面还有些不了解的地方,所以要给自己扫盲. 好了,咱们进入今天的主题,先列一下提纲: 1. UDP是什么,UDP适 ...

  5. Java——Json字符串与Object互转

    public static void JacksonTest() {//推荐 //{"MNG001":[{"ID":"1","PW ...

  6. 使用records库操作SQL并且查询MySQL数据库

    获取数据库 db = records.Database('mysql://root:xxxx@47.106.151.165/web_table?charset=utf8')注释:xxxx为数据密码 执 ...

  7. web自动化之浏览器的窗口切换

    from selenium import webdriver from selenium.webdriver.support.wait import WebDriverWait from seleni ...

  8. Redis学习笔记(1)

    一.NoSQL基础知识 1. NoSQL概念 NoSQL(NoSQL = Not Only SQL ),意即“不仅仅是SQL”,泛指非关系型的数据库.随着互联网web2.0网站的兴起,传统的关系数据库 ...

  9. 4.Linux的目录结构

    Linux的目录结构 (1)"/"目录 Linux文件系统的入口,也是出于最高一级的目录 (2)"/bin" 基础系统所需要的那些命令位于此目录.也是最小系统所 ...

  10. [JavaWeb基础] 012.Struts2 自定义标签使用

    在做开发中,我们会把一些比较经常使用到的代码封装起来,这样可以加快开发的速度和减少错误,并且在修改bug可以一次修改多次修复.那么在前端页面上,如果我们要经常用到公用的显示功能,并涉及到服务端逻辑操作 ...