zoj 1589 Professor John
把不等式A<B看成一条从A到B的边
那么所有不等式就可以组合成一张有向无环图
然后只需对每个点bfs,从bfs的第二层开始记录即可
#include<iostream>
#include<cstdio>
#include<cstring>
#include<queue>
#include<map>
#include<vector>
#include<set>
#include<algorithm>
using namespace std;
int vis[27];
map<int, vector<int>> ans;
map<int, vector<int>> mp;
set<int> from;
void bfs(int sorce) {memset(vis, 0, sizeof(vis));vis[sorce] = 1;queue<int> q;q.push(sorce);int cur, t, sz, i, j, len;t = 0;while (!q.empty()) {sz = q.size();t++;for (i = 0; i < sz; i++) {cur = q.front();q.pop();if (t > 2)ans[sorce].push_back(cur);vector<int> to = mp[cur];len = to.size();for (j = 0; j < len; j++) {if (!vis[to[j]]) {vis[to[j]] = 1;q.push(to[j]);}}}}
}int main() {int T, m, i, coun, len;char ch[10];scanf("%d", &T);coun = 0;while (T--) {scanf("%d", &m);mp.clear();ans.clear();for (i = 1; i <= m; i++) {scanf("%s", ch);if (ch[1] == '<') {mp[ch[0] - 'A'].push_back(ch[2] - 'A');from.insert(ch[0] - 'A');} else {mp[ch[2] - 'A'].push_back(ch[0] - 'A');from.insert(ch[2] - 'A');}}map<int, vector<int>>::iterator it;for (it = mp.begin(); it != mp.end(); it++) {bfs(it->first);}printf("Case %d:\n", ++coun);if (!ans.size())printf("NONE\n");else {set<int>::iterator it;for (it = from.begin(); it != from.end(); it++) {vector<int> v = ans[*it];sort(v.begin(), v.end());len = v.size();for (i = 0; i < len; i++) {printf("%c<%c\n", 'A' + *it, 'A' + v[i]);}}}}
}
zoj 1589 Professor John相关推荐
- 《设计模式》作者John Vlissides-UMLChina访谈录
透明,think,Qingrun 整理 2001年9月20日,面向对象技术专家.IBM研究中心研究员.软件开发的里程碑著作<设计模式>的作者John Vlissides在UMLCHINA( ...
- 机器学习关键的几门课程_互联网上每门机器学习课程,均按您的评论排名
机器学习关键的几门课程 by David Venturi 大卫·文图里(David Venturi) 互联网上每门机器学习课程,均按您的评论排名 (Every single Machine Learn ...
- 英国将迎来史上第二位女首相
Theresa May and Andrea Leadsom will battle it out to become the next leader of the Conservative Part ...
- signature=00e71e60a412c9a393d6d1740e539e14,2006年江苏专转本(英语)真题试卷
一.1. 1.Vegetable gardening is the relaxing art and science of turning a love for growing plants into ...
- 关于人工智能的定义,这篇文章定义比较全面了
在昨天人工神经网络课程之后,有一位同学课下问了一个问题,她这学期也在学习"机器学习"课程,感觉"人工神经网络"课程的内容与机器学习课程的内容大同小异.究竟这些课 ...
- 投入OJ的怀抱~~~~~~~~~~
OpenJudge C20182024 信箱(1) 账号 修改设定 退出小组 管理员 frank 林舒 Dzx someone 李文新 公告 11-05 程序设计与算法(大学先修课) 成员(61910 ...
- 疾病研究:LEMS和先天性肌无力患者指南
A Medical Guide for Patients with LEMS or Congenital Myasthenia LEMS和先天性 ...
- 疾病研究:重症肌无力医师指南
Medical Information For Medical Professionals 重症肌无力医师指南 The Myasthenia Gravis Association does its ...
- 给国外教授发邮件_如何给您的教授发送电子邮件并获得快速回复
给国外教授发邮件 Photo by uniinnsbruck 图片来自uniinnsbruck Professors are some of busiest people around. They h ...
最新文章
- Linux基金会网络策略副总裁Marc Cohn:OPEN-O遍及网络,尽享服务
- Emacs 使用graphviz-dot-mode创建架构图
- web网站服务(二)
- 查看Linux硬件信息命令的使用
- 3-3 面向对象 本章总结
- Elasticsearch-01CentOS7单节点部署ES5.6.16
- [BUUCTF-pwn]——[BJDCTF 2nd]test
- 下一代微服务架构基础:ServiceMesh?
- kindeditor简单使用
- Jartto: 如何成为一名合格的技术面试官?
- [Vue.js] 路由 -- 基于vue-router的案例--后台管理
- 学习结构[记录]类型(7) - 结构也可以有构造函数
- 万字长文带你解析23 个问题 TCP 疑难杂症!
- 黑苹果cpu架构???_自研桌面CPU,苹果对英特尔发“分手信”
- 【COCOS2DX-LUA 脚本开发之十二】利用AssetsManager实现在线更新资源文件
- SSH(六)hibernate持久层模板于事务管理
- JavaScript怎么安装_WebStrom 2019安装教程
- 科来数据包生成器使用,广播域内进行arp欺骗
- iPhone4S 未能激活蜂窝移动数据网
- matlab海洋数值模拟,海洋数值模拟课程教学大纲.PDF