就是依照一定顺序输出排序。

比方a欠b的钱就不能先输出a然后输出b。

本题的技巧就是。要求的是不能先输出a然后输出b,可是能够先输出b然后输出a。

故此能够依照a欠b的钱的关系。建立图,然后DFS深度优先搜索,然后逆向记录点,输出这些逆向点,也就是a欠b的钱。就先输出b然后输出a,那么这个顺序就满足要求了。

非常狡猾的题意。要细心。不然就搞半天都白搞了。

题目连接:http://codeforces.com/problemset/problem/412/D

#include <stdio.h>
#include <vector>
using std::vector; const int MAX_S = 30001;
vector<int> gra[MAX_S];
bool vis[MAX_S] = {0};
vector<int> res;
int N, M; void dfsReverseNodes(int u)
{
vis[u] = true;
for (int i = 0; i < (int)gra[u].size(); i++)
{
int v = gra[u][i];
if (!vis[v]) dfsReverseNodes(v);
}
res.push_back(u);
} int main()
{
int u, v;
scanf("%d %d", &N, &M);
for (int i = 1; i <= M; i++)
{
scanf("%d %d", &u, &v);
gra[u].push_back(v);
}
for (int i = 1; i <= N; i++)
{
if (!vis[i]) dfsReverseNodes(i);
} for (int i = 0; i < (int)res.size(); i++)
{
printf("%d ", res[i]);
}
return 0;
}

最新文章

  1. AOJ 0558 Cheese【BFS】
  2. iOS Apple Pay
  3. HDU2929 Bigger is Better[DP 打印方案 !]
  4. cocos2d-x之单点触碰初试
  5. HNOI2004宠物收养所(平衡树)
  6. UOJ Test Round #2
  7. MSCRM4.0如何使js事件在批量编辑表单中触发
  8. Attribute的一个列子
  9. MongoDB数据模型(一)
  10. PHP加水印代码 支持文字和图片水印
  11. 开始学习机器学习,从Ng的视频开始
  12. 前端开发工具Brackets介绍,安装及安装Emme插件时踩过的坑
  13. 【Ubuntu 16】安装deb
  14. 【EF6学习笔记】(三)排序、过滤查询及分页
  15. [转]Jquery 点击图片在弹出层显示大图
  16. 面向对象的类关系及其C++实现
  17. XSY contest1586 proB
  18. UVA12171-Sculpture(离散化+floodfill)
  19. POJ 2442 - Sequence - [小顶堆][优先队列]
  20. GDB和GDB Server

热门文章

  1. set .net principle
  2. [Leetcode Week4]H-Index
  3. Swift 闭包(六)
  4. 嵌入式上 iscsi实现
  5. linux shell 脚本实现tcp/upd协议通讯(重定向应用)
  6. Linux环境下通过ODBC访问MSSql Server
  7. 【bzoj1042】硬币购物
  8. Selenium2+python自动化48-登录方法(参数化)【转载】
  9. json数据格式了解
  10. UVA12096 集合栈计算机(map和vector实现双射关系+集合的交并运算的STL)