J. Kitchen Plates

找入度为0的点,使与其连接的点都入度-1。

#include<iostream>
#include<cstdio>
#include<string>
#include<cmath>
#include<cstring>
#include<algorithm>
#include<map>
#include<queue>
#include<vector>
using namespace std;
#define ll long long
#define PII piar
map<char,int>mp;
vector<int>v[10];
queue<int>q;
int ideg[50],ans[50],k=1;
bool topsort(){int num=0;for(int i=1;i<=5;i++) if(!ideg[i]) q.push(i);while(!q.empty()){int j=q.front();//点 ans[k++]=j;num++;q.pop();for(int i=0;i<v[j].size();i++){if(--ideg[v[j][i]]==0) q.push(v[j][i]);}}if(num==5) return true;return false;
}
signed main()
{mp['A']=1;mp['B']=2;mp['C']=3;mp['D']=4;mp['E']=5;for(int i=1;i<=5;i++){string s; cin>>s;getchar();int x=mp[s[0]],y=mp[s[2]];if(s[1]=='>') swap(x,y);ideg[y]++;v[x].push_back(y);}if(!topsort()) cout<<"impossible"<<endl;else{//      while(!q.empty()){//          char c=q.front();
//          cout<<c;
//          q.pop();
//      }
//      cout<<k;for(int i=1;i<k;i++){char c=ans[i]-(1-'A');cout<<c;}cout<<endl;}
}

别老是忘记

string s; cin>>s;
getchar();

拓扑排序

三个要素:ideg:点的入度
v[maxn]:点的连接点
q:拓扑序列

const int maxn=1e5;
int ideg[maxn];//入度
vector<int>v[maxn];//点的连接点
void topsort(){queue<int>q;//拓扑序列for(int i=1;i<=n;i++) if(!ideg[i]) q.push(i);while(!q.empty()){int j=q.front();//入度为0的点 q.pop();for(int i=0;i<v[j].size();i++){//v[j][i]为j所连接的点 if(--ideg[v[j][i]]==0) q.push(v[j][i]); }}
}
signed main(){int T; cin>>T;while(T--){int n,m; cin>>n>>m;for(int i=1;i<=n;i++) v[i].clear();memset(ideg,0,sizeof ideg);for(int i=1;i<=m;i++){int x,y; cin>>x>>y;ideg[y]++;v[x].push_back(y);}topsort();}
}

拓扑排序--Kitchen Plates相关推荐

  1. CodeForces - Kitchen Plates(拓扑排序)

    题目链接:http://codeforces.com/gym/102219/problem/J Time limit per test 1.0 s Memory limit per test 256 ...

  2. Kitchen Plates(暴力写法和学习拓扑排序)

    太暴力了!!!!!!! ! 关于next_permutation 的用法:头文件#include https://blog.csdn.net/sgsyacm/article/details/80139 ...

  3. Kitchen Plates (拓扑排序)

    原题链接 题意 给五个关系像"A<B"这种,问根据这些关系,问这些关系是否有矛盾,有矛盾的话就输出"impossible",没有的话尽量从小到大输出这些东 ...

  4. Gym - 102219J Kitchen Plates(暴力或拓扑序列)

    题意:略 题记: 做法一:拓扑排序.五个盘子相当于一个有五个点的有向图,A<B相当于A有一条边指向B.那么建图后做一遍基于BFS的拓扑排序即可. 时间复杂度O(5+5) #include< ...

  5. 【图论】有向无环图的拓扑排序

    1. 引言 有向无环图(Directed Acyclic Graph, DAG)是有向图的一种,字面意思的理解就是图中没有环.常常被用来表示事件之间的驱动依赖关系,管理任务之间的调度.拓扑排序是对DA ...

  6. C#实现有向无环图(DAG)拓扑排序

    对一个有向无环图(Directed Acyclic Graph简称DAG)G进行拓扑排序,是将G中所有顶点排成一个线性序列,使得图中任意一对顶点u和v,若边(u,v)∈E(G),则u在线性序列中出现在 ...

  7. hdu 5438 Ponds 拓扑排序

    Ponds Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/contests/contest_showproblem ...

  8. usaco frame up(所有拓扑排序的输出)

    先根据图建图再拓扑排序. /** ID: jinbo wu TASK: frameup LANG:C++ */ #include<bits/stdc++.h> using namespac ...

  9. HDU1811 Rank of Tetris 拓扑排序+并查集 OR 差分约束最短路+并查集

    题目链接 题意:就是给你一堆关系,看能不能排出个确定的顺序 做法: 1. 拓扑排序+并查集 应该很容易想到的一种思路,大于小于建立单向边.对于相等的呢,就把他们缩成一个点.就用并查集缩成一个点就行了 ...

最新文章

  1. lua元表和元方法 《lua程序设计》 13章 读书笔记
  2. Anroid推送服务
  3. rf中resourceid_解决VC++ MFC程序resource.h头文件中ID重复问题
  4. Redis笔记之基本数据结构 链表
  5. 【codevs1287】矩阵乘法
  6. windows 下使用 MinGW + msys 编译 ffmpeg
  7. spring boot redis分布式锁
  8. 深入理解JVM虚拟机(总结篇)
  9. 蓝牙版本avrcp怎么选_新款AirPods怎么选?还是不算好耳机,但是最配的iPhone蓝牙耳机...
  10. selenium提示geckodriver‘ execut解决办法
  11. 别说理科男不懂撩妹,这个老司机一生只爱两样:物理和18岁的少女
  12. signature=4d7e0a8216b57730ec16fe4e5ae2b93f,dragonfly对接harbor拉取镜像没有走dragonfly问题
  13. SAP FICO 第一节 后台配置
  14. html b5纸尺寸,b5纸尺寸大小(b5纸宽高尺寸是多少)
  15. 在Visual Paradigm如何创建电路图?
  16. MySQL 主从同步延迟的原因及解决办法
  17. C#行转列绑定DGV
  18. 反射可以使用lambda吗_社保卡可以在外地使用吗?
  19. html 自动日期,excel自动生成连续日期
  20. AttributeError: ‘FigureCanvasTkAgg‘ object has no attribute ‘set_window_title‘

热门文章

  1. 工业数据分析技术与实战之营销服务——昆仑数据田春华培训听课记录
  2. 【CUDA安装详细教程】
  3. c语言自动刷票代码,简单刷票系统 c语言实现(转)
  4. 四个翅膀的飞机Simulink与轨迹跟踪仿真
  5. android蓝牙指令缓存,Android 蓝牙缓存清理
  6. 企业用什么留住人才??? .
  7. ARES-500AI的环境配置
  8. 带你了解软件工程中的类与类的关系
  9. 我就用PowerDesigne建模
  10. NAIROBI,KENYA_GWG3