Gym-101873D-Pants On Fire(闭包)
原题链接:2017-2018 ACM-ICPC German Collegiate Programming Contest (GCPC 2017)
Pants On Fire
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?
Input
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.
- one line containing two integers n and m, where
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.
Output
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.
Sample Input 1
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
Sample Output 1
Fact
Alternative Fact
Pants on Fire
Pants on Fire
Pants on Fire
求个传递闭包就能AC,拷贝到了东庆巨巨的代码,顺便学了点用map把串转化成下标;话说这个闭包写的真漂亮
#include <bits/stdc++.h>
using namespace std;
map <string, int> data;
const int MAX = 500;
int tot;
int get( string str )
{
if( data.count(str) ) return data[str];
tot = data.size();
data[str] = ++tot;
return data[str];
}
int edge[MAX][MAX];
int main()
{
int n, m;
cin >> n >> m;
while( n-- )
{
int u, v;
string str;
cin >> str;
u = get(str);
cin >> str;
cin >> str;
cin >> str;
cin >> str;
v = get(str);
edge[u][v] = 1;
}
for( int c = 1; c <= tot; c++ )
for( int a = 1; a <= tot; a++ )
for( int b = 1; b <= tot; b++ )
edge[a][b] |= edge[a][c] && edge[c][b];
while( m-- )
{
int u, v;
string str;
cin >> str;
u = get(str);
cin >> str;
cin >> str;
cin >> str;
cin >> str;
v = get(str);
if( edge[u][v] ) printf("Fact\n");
else if( edge[v][u] ) printf("Alternative Fact\n");
else printf("Pants on Fire\n");
}
return 0;
}
Gym-101873D-Pants On Fire(闭包)的更多相关文章
- Gym 101873D - Pants On Fire - [warshall算法求传递闭包]
题目链接:http://codeforces.com/gym/101873/problem/D 题意: 给出 $n$ 个事实,表述为 "XXX are worse than YYY" ...
- 【闭包】Pants On Fire
Pants On Fire 题目描述 Donald and Mike are the leaders of the free world and haven’t yet (after half a y ...
- Pants On Fire(链式前向星存图、dfs)
Pants On Fire 传送门:链接 来源:upc9653 题目描述 Donald and Mike are the leaders of the free world and haven't ...
- (寒假开黑gym)2017-2018 ACM-ICPC German Collegiate Programming Contest (GCPC 2017)
layout: post title: (寒假开黑gym)2017-2018 ACM-ICPC German Collegiate Programming Contest (GCPC 2017) au ...
- gym 101873
题还没补完 以下是牢骚:删了 现在只有六个...太恐怖了,我发现四星场我连300人的题都不会啊. C:最短路加一维状态就好了叭..嗯,一开始没看到输出的那句话 那个 "."也要输 ...
- 2017-2018 ACM-ICPC German Collegiate Programming Contest (GCPC 2017) Solution
A. Drawing Borders Unsolved. B. Buildings Unsolved. C. Joyride Upsolved. 题意: 在游乐园中,有n个游玩设施,有些设施之间有道路 ...
- 2017-2018 ACM-ICPC German Collegiate Programming Contest (GCPC 2017)
A Drawing Borders 很多构造方法,下图可能是最简单的了 代码: #include<bits/stdc++.h> using namespace std; ; struct ...
- Multi-label && Multi-label classification
Multi-label classification with Keras In today’s blog post you learned how to perform multi-label cl ...
- The German Collegiate Programming Contest 2017
B - Building 给一个m各面的多边形柱体,每一侧面有n*n个格子,现在对这些格子染色,看有多少种方式使得多面柱体无论如何旋转都不会与另一个一样. #include <bits/stdc ...
随机推荐
- unity animation readonly 无法加事件?
目前找到的解决方案是用代码加Event: using System.Collections; using System.Collections.Generic; using UnityEngine; ...
- MySqlDBHelper
代码: using System; using System.Collections.Generic; using System.Linq; using System.Web; using Syste ...
- JavaScript stringObject.replace() 方法
定义和用法: replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串. 语法: stringObject.replace(RegExp/substr,reol ...
- c# windows服务的制作
一.创建一个Windows Service )创建Windows Service项目 )对Service重命名 将Service1重命名为你服务名称,这里我们命名为Servicetest. 二.创建服 ...
- linux 下 WebSphere日志中文乱码
管理控制台--->服务器--->应用程序服务器--->server1--->java和进程管理--->进程定义--->java虚拟机--->将通用jvm参数设 ...
- 超级详细的解决方法 (CentOS7) :永久修改 mysql read-only 问题 could not retrieve transation read-only status server
一.查看mysql的事物隔离级别 SHOW VARIABLES LIKE '%iso%'; 二.临时修改事物隔离级别 SET GLOBAL tx_isolation='READ-COMMITTED'; ...
- tpshop使用中遇到的问题
1.短信配置里:商家发货时是否给客户发短信 配置了 开启 如果购买者个人资料里的电话没填写,商家点击发货时, 程序会挂掉 解决方法:修改application\common\logic\SmsL ...
- CLOB 和 BLOB
An SQL CLOB is a built-in type that stores a Character Large Object as a column value in a row of a ...
- Codeforces788A Functions again 2017-04-12 18:22 56人阅读 评论(0) 收藏
C. Functions again time limit per test 1 second memory limit per test 256 megabytes input standard i ...
- OpenGL中的像素包装理解
OpenGL中的像素包装理解 像素包装 位图和像素图很少会被紧密包装到内存中.在许多硬件平台上,考虑到性能的原因位图和像素图的每一行的数据会从特殊的字节对齐地址开始.绝大多数编译 器会自动把变量和缓冲 ...