-
D - Pants On Fire
- Gym - 101873D
- 题意:
- 给出一些正确话
- 然后给出一下询问这些话是正确错误还是不确定
-
#include<bits/stdc++.h> using namespace std; #define maxn 555 map<string,int>mmp; bool gra[maxn][maxn]; string u,v,s1,s2,s3; int n,m,cnt; void floyd() { for(int k=1; k<cnt; k++) for(int i=1; i<cnt; i++) for(int j=1; j<cnt; j++) { if(gra[i][k]&&gra[k][j]) { gra[i][j]=1; } } } int main() { cin>>n>>m; cnt=1; while(n--) { cin>>u>>s1>>s2>>s3>>v; if(mmp[u]==0) mmp[u]=cnt++; if(mmp[v]==0) mmp[v]=cnt++; gra[mmp[u]][mmp[v]]=1; } floyd(); while(m--) { cin>>u>>s1>>s2>>s3>>v; if(gra[mmp[u]][mmp[v]]==1) cout<<"Fact"<<endl; else if(gra[mmp[v]][mmp[u]]==1) cout<<"Alternative Fact"<<endl; else cout<<"Pants on Fire"<<endl; } return 0; }
D - Pants On Fire -闭包传递
本文介绍了一道名为D-PantsOnFire的算法题目,通过使用Floyd算法解决真假话判断问题。代码中利用了C++标准模板库,定义了一个包含555个节点的布尔型二维数组来表示关系,通过读取输入并更新关系矩阵,最终能够判断两句话之间的正确性、错误性或不确定性。

被折叠的 条评论
为什么被折叠?



