文章转自:https://blog.csdn.net/fjinhao/article/details/52662554

C++ 中vector的使用方法

memset用法小结

吃在工大

Time Limit: 1000 MS Memory Limit: 65536 KB
Total Submissions: 51 Accepted: 15

Description

     JH和他的好朋友YZ两名程序员回访母校合工大,准备在这住一段日子,都说“玩在安大,吃在工大”,JH又是一名典型吃货,于是决定在工大食堂好好吃一段日子,但是,面对美食诱惑:黄焖鸡、风暴干锅、麻辣香锅、奥尔良烤翅…由于时间有限,JH不知道哪顿饭吃哪个菜好。

于是YZ为了帮助他解决这个问题,也顺便考考他,给他出了一个问题:“黄焖鸡必须在干锅花菜前面吃,干锅牛肉必须在干锅鱿鱼前面吃….你按这个要求下,就知道吃的顺序啦”。JH抓抓头,分分钟写了个程序搞定,现在,让你来写写看?输出一组JH符合条件下吃的食物的序列。

           假设JH每顿只吃一种食物,且每顿吃的都不同,食物编号1到N。

Input

         先输入一个整数T,表示T(T<50)组数据。

每组数据第一行输出一个整数,N,M,分别表示有N种食物,总共有M个约束条件,接下来M行每行输入两个正整数a,b(n>=a>0,n>=b>0),表示食物a必须在食物b之前吃。

Output

         各组数据输出答案占一行,输出一组符合条件的序列(要求输出字典序最大的那一组),如果答案不存在,输出“-1”。

Sample Input

1
4 3
1 2 
2 3
4 3

Sample Output

4 1 2 3

此题考得是拓扑排序,一开始做这道题的时候只知道是拓扑排序,当时带了几本书了都写的有,怪自己当初没有好好看书,不知道其中的原理,比赛时照着一个拓扑排序的程序写了,然后测试过了几次,都是正确的,还是不知道怎么改

题解:拓扑排序就我理解就是在无环的图中(如果有环一定不能排),先找入度为0的点放入队列,但是找这个点也不是随便找,因为需要满足拓扑条件下时有多个是需要按字典序最大的情况,故我用到了优先队列,这样保证每次从其中取出时最大的,取出后,存入数组,并把取出的这个点所连接的点的入度-1,再次查找入度为0的点,进行此操作,直到队列空。详见程序

#include <iostream>
#include <cstdio>
#include <cstring>
#include <vector>
#include <queue>  using namespace std;  const int maxn = 10000 + 5;
vector<int> g[maxn];
int du[maxn], n, m, L[maxn];  bool toposort()
{  memset(du, 0, sizeof(du));  for (int i=0; i<n; i++)  for (int j=0; j<g[i].size(); j++)  du[g[i][j]]++;  int tot = 0;  priority_queue<int> Q;  for (int i=0; i<n; i++)  if (!du[i]) Q.push(i);//入度为0的点存入优先队列  while (!Q.empty()) {  int x = Q.top(); Q.pop();  L[tot++] = x;//取出入度为0的点,并存入数组  for (int j=0; j<g[x].size(); j++){  int t = g[x][j];  du[t]--;//相连的点入度依次减一  if (!du[t])  Q.push(t);//把入度为0的点放入优先队列  }  }  if (tot == n)  return 1;  return 0;
}  int main(int argc, char const *argv[])
{  int t;  scanf("%d", &t);  while (t--)  {  scanf("%d%d", &n, &m);  for(int i=0;i<n;i++)  g[i].clear();  while (m--)  {  int N, M;  scanf("%d%d", &N, &M);  g[N-1].push_back(M-1);  }  int first = 0;  if (toposort()) {  for (int i=0; i<n; i++) {  if (first)  printf(" ");  first = 1;  printf("%d", L[i]+1);  }  printf("\n");  }  else  printf("-1\n");  }  return 0;
}

ACM------吃在工大(合工大OJ 1359)相关推荐

  1. 计算机网络试题合工大,合工大计算机网络课后习题答案精简版

    1-03.试从多个方面比较电路交换.报文交换和分组交换的主要优缺点. 答:(1)电路交换电路交换就是计算机终端之间通信时,一方发起呼叫,独占一条物理线路.当交换机完成接续,对方收到发起端的信号,双方即 ...

  2. 学机械可以转计算机吗,本人合工大车辆工程大一新生,但是机械类前景都不太好,我要不要转计算机,求教?...

    你好,合工大的车辆工程偏机械电子,无论是转专业还是毕业后转行做程序员,相对其他专业(包括机械制造)还是比较容易的,针对转专业985老学长给你提3点建议,希望能帮到你.第一点建议:计算机大类专业下有个专 ...

  3. 合工大五套卷_2021森哥五套卷(五)

    难度系数★★★(137) 1.考查等价无穷小定参数,这道题出现了原函数的概念,原函数的导数为g(x),其实更简单的是先把原函数等价无穷小,然后再求导,它与g(x)是等价的,再把f(x)等价一下,参数就 ...

  4. 合工大五套卷_2020合工大超越数一五套卷第一套感想

    合工大的卷子确实不错,题目给我的感觉是题干包装的看起来就很难,但是写起来还是一样的套路.计算上要难一些,需要细心点 选择题: 1.可去间断点的定义和泰勒公式 2.这个题我用排除法写的,可微的话连续和偏 ...

  5. 武汉理工大学合肥工业大学 计算机,合工大为什么从985降到211?附合肥工业大学211地位(合工大不是985)...

    选择科目 测一测我能上哪些大学 选择科目 领取你的专属报告 > 选择省份 关闭 请选择科目 确定 v> 合肥工业大学是安徽省一所著名高校,简称"合工大",也是安徽211 ...

  6. 合肥工业大学宣城校区计算机大赛,合工大宣城校区学子!全国冠军!

    原标题:合工大宣城校区学子!全国冠军! 4月18日至21日,2019国家机器人发展论坛暨RoboCup机器人世界杯中国赛在浙江省绍兴市举行. 我校代表队夺得足球仿真2D项目全国冠军(一等奖),这是我校 ...

  7. 合工大计算机专业考研难度,合工大计算机考研经验分享

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 我也不怎么会写分享我就把我的说一下,我学习方法可能并不适合所有人,仅供参考. 数学:110+在今年并不是很高,我是从去年冬天寒假开始复习的,前期看课本,发 ...

  8. python爬取合工大、安大、中科大就业信息网宣讲会信息——requests_htmlmongoDB

    # -*- coding: utf-8 -*- """ Created on Fri Apr 27 15:12:18 2018 #python 3.6 "&qu ...

  9. 合工大850参考书_合肥工业大学硕士目录

    1.合工大车辆工程考研科目? 初试科目: 1.(101)思想政治理论 2.(201)英语一或(202)俄语或(203)日语 3.(301)数学一 4.(824)机械设计 复试科目:521 自动控制原理 ...

  10. 合工大计算机考研数学,[考研干货]一战上岸合肥工业大学,来给大家分享一下考研心得...

    楼主河南二本,应届生,22岁,考上了合工大机械专业,下面说一些考研需要注意的小技巧,不分享别人都说的那些学习方法,只说一下我感觉对21考研有用的东西. 1.选择大于努力.今年重庆大学一个专业招40几个 ...

最新文章

  1. 劝你别把开源的AI项目写在简历上了!!!
  2. 应对618,京东到家订单系统高可用架构的迭代实战
  3. 图的概念以及常见的图论问题介绍
  4. 复地集团的现代化办公方案
  5. Poj3177 分离的路径
  6. C# 生成随机字符串
  7. 浅谈jQuery中 wrap() wrapAll() 与 wrapInner()的差异
  8. 我们出了套西游记考题,可以保证吴承恩不及格
  9. 安装 Visual Studio 插件 Visual Assist - C语言零基础入门教程
  10. 理论基础 —— 栈 —— 链栈
  11. WINCE7中RTC时钟芯片BQ32K的开发
  12. Unity3d大会的部分总结
  13. Oracle中shrink space命令详解
  14. 服务器常见问题,如何解决“远程服务器返回错误”?
  15. 十分钟学懂Python入门基础3(中)
  16. UE4 C++ 通过Spline绘制任意道路
  17. 电脑重启桌面 计算机图标消失,电脑重启后计算机图标不见了怎么办
  18. unity urp 实现雨水在物体上流动的效果
  19. 存储数据的介质销毁时怎么处置
  20. Temporal action localization in untrimmed videos via Multi-stage CNNs SCNN论文阅读笔记

热门文章

  1. Python的numpy中axis=0、axis=1、axis=2解释
  2. java graphics颜色_在Java Graphics对象中设置背景色
  3. Docker:镜像加速器
  4. SpringBoot @Mapper注解实现类型转换bean无法注入
  5. ARP协议格式和实例分析
  6. 小学计算机教室使用汇报材料,勃李小学“教育信息化示范学校”汇报材料
  7. 中华神话传说中神仙全表(ZZ)
  8. 微信登陆失败redirect_uri 域名与后台配置不一致 10003(thinkphp)
  9. 【LOJ6225】【网络流24题】火星探险问题
  10. win10计算机方差,标准差计算工具