hdu 6165
2024-09-01 15:17:08
虽然题解上说缩点然后判断入度就可以了,然后比赛的时候瞎暴力过了。
#include <iostream>
#include <cstring>
#include <string>
#include <queue>
#include <vector>
#include <map>
#include <set>
#include <stack>
#include <cmath>
#include <cstdio>
#include <algorithm>
#include <iomanip>
#define N 1010
#define LL __int64
#define inf 0x3f3f3f3f
#define lson l,mid,ans<<1
#define rson mid+1,r,ans<<1|1
#define getMid (l+r)>>1
#define movel ans<<1
#define mover ans<<1|1
using namespace std;
const LL mod = ;
int n, m;
bool flag[N][N];
int cnt;
vector<int> mapp[N];
bool vis[N];
void dfs(int u) {
for (int i = ; i < mapp[u].size(); i++) {
int v = mapp[u][i];
if (!vis[v]) {
flag[cnt][v] = true;
flag[v][cnt] = true;
vis[v] = true;
dfs(v);
}
}
}
void solve(int u) {
memset(vis, false, sizeof(vis));
vis[u] = true;
cnt = u;
dfs(u);
flag[u][u] = ;
}
void init() {
for (int i = ; i <= n; i++) {
mapp[i].clear();
}
memset(flag, false, sizeof(flag));
}
int main() {
cin.sync_with_stdio(false);
int T;
int a, b;
cin >> T;
while (T--) {
cin >> n >> m;
init();
for (int i = ; i < m; i++) {
cin >> a >> b;
mapp[a].push_back(b);
}
for (int i = ; i <= n; i++) {
solve(i);
}
cnt = ;
for (int i = ; i <= n; i++) {
for (int j = ; j <= n; j++) {
if (flag[i][j] == false) {
cnt = ;
}
}
}
if (!cnt) {
cout << "I love you my love and our love save us!" << endl;
}
else {
cout << "Light my fire!" << endl;
}
}
return ;
}
最新文章
- 会议通js
- spring+mybatis+springmvc的配置
- SQL GROUP BY 后排序
- The Simplified Project Management Process
- 远程DLL注入
- 【LRU Cache】cpp
- UVa 11107 (后缀数组 二分) Life Forms
- 配置tomcat连接器后,启动服务报错“No Certificate file specified or invalid file format";异常
- C# 线程知识--使用ThreadPool执行异步操作
- 写一个“标准”宏MIN,这个宏输入两个参数并返回较小的一个。
- session与cookie的差别
- redis------del命令
- wpf之StackPanel、WrapPanel、WrapPanel之间的关系
- UVA - 1220 Party at Hali-Bula 树的最大独立集
- docker php容器中简单添加seaslog拓展
- linux面试题-基础题1
- CC2 条理分明-----AACTP教你谈恋爱
- std::bind常见的坑
- fortran中提取字符串中可见字符的索引
- stm8时钟