【拓扑排序】确定比赛名次
HDU P1285 确定比赛名次
拓扑排序裸题qwq
注意:入度为一的点删掉之后,它的入度要更新为-1
这个题刷出了我人生中第一次PE 可还行qaq
我搜索PE是输出格式与标准输出不符, 结果发现语言选成G++ orz
想起来《%你抄》 “原来CE,只因选错语言” 可我PE,也是选错语言啊啊啊啊啊QAQ
代码君qwq
1 #include<cstdio> 2 #include<cstring> 3 #include<iostream> 4 using namespace std; 5 const int sz = sz; 6 int n, m; 7 int plat[sz][sz], in[sz], ans[sz]; 8 int main() { 9 while(~scanf("%d%d", &n, &m)) { 10 memset(plat, 0, sizeof(plat)); 11 memset(in, 0, sizeof(in)); 12 int cnt = 0, flag = 0, x, y; 13 for(int i = 1; i <= m; i++) { 14 scanf("%d%d", &x, &y); 15 if(!plat[x][y]) { 16 plat[x][y] = 1; 17 in[y]++; 18 } 19 } 20 while(cnt < n) { 21 for(int i = 1; i <= n; i++) { 22 if(in[i]==0) { 23 in[i] = -1; 24 ans[++cnt] = i; 25 flag = i; 26 break; 27 } 28 } 29 for(int i = 1; i <= n; i++) { 30 if(plat[flag][i]) in[i]--; 31 } 32 } 33 for(int i = 1; i < n; i++) 34 printf("%d ", ans[i]); 35 printf("%d\n", ans[n]); 36 } 37 return 0; 38 }
这是我写的邻接表存图的拓扑排序,自认为没有错误但交上去就ce
原因如下:(我很懵逼qaq
HDU你是魔鬼吗???
1 #include<queue> 2 #include<cstdio> 3 #include<iostream> 4 using namespace std; 5 const int sz = 505; 6 struct edge { 7 int nxt, to; 8 }e[sz<<1]; 9 priority_queue<int, vector<int>, greater<int> >q; 10 int n, m, x, y, num = 0, cnt = 0, in[sz], ans[sz], head[sz]; 11 void add(int from, int to) { 12 in[to]++; 13 e[++num].nxt = head[from]; 14 e[num].to = to; 15 head[from] = num; 16 } 17 int main() { 18 while(~scanf("%d%d", &n, &m)) { 19 for(int i = 1; i <= m; i++) { 20 scanf("%d%d", &x, &y); 21 add(x, y); 22 } 23 for(int i = 1; i <= n; i++) { 24 if(!in[i]) q.push(i); 25 } 26 while(!q.empty()) { 27 int u = q.top(); 28 q.pop(); 29 ans[++cnt] = u; 30 for(int i = head[u]; i; i = e[i].nxt) { 31 int v = e[i].to; 32 in[v]--; 33 if(!in[v]) q.push(v); 34 } 35 } 36 for(int i = 1; i < n; i++) 37 printf("%d ", ans[i]); 38 printf("%d\n", ans[n]); 39 } 40 return 0; 41 }
在看拓扑排序qaq实在是找不到用邻接表存图且不用指针的(美妙)代码了
难受香菇(想吃香菇馅的水饺啦啦啦啦)
转载于:https://www.cnblogs.com/Hwjia/p/9789618.html
【拓扑排序】确定比赛名次相关推荐
- 拓扑排序 确定比赛名次
确定比赛名次 Problem Description 有N个比赛队(1<=N<=500),编号依次为1,2,3,....,N进行比赛,比赛结束后,裁判委员会要将所有参赛队伍从前往后依次排名 ...
- HDU 1285 - 确定比赛名次(拓扑排序)
确定比赛名次 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Sub ...
- [ACM] hdu 1285 确定比赛名次 (拓扑排序)
确定比赛名次 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Sub ...
- HDU 1285:确定比赛名次(拓扑排序)
确定比赛名次 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Sub ...
- HDU1285 确定比赛名次【拓扑排序】
确定比赛名次 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Sub ...
- HDU-1285 确定比赛名次 拓扑排序
确定比赛名次 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- 图论--拓扑排序--HDU-1285确定比赛名次
Problem Description 有N个比赛队(1<=N<=500),编号依次为1,2,3,....,N进行比赛,比赛结束后,裁判委员会要将所有参赛队伍从前往后依次排名,但现在裁判委 ...
- 【HDU - 1285】确定比赛名次 (拓扑排序)
题干: 有N个比赛队(1<=N<=500),编号依次为1,2,3,....,N进行比赛,比赛结束后,裁判委员会要将所有参赛队伍从前往后依次排名,但现在裁判委员会不能直接获得每个队的比赛成绩 ...
- HDU1285确定比赛名次(拓扑排序+优先队列)
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=1285 思路 每场比赛的结果我们可以看成一个有向图,从胜利的一方指向失败的一方,在这个有向图的入度为0的 ...
最新文章
- [开发工具]JBuilder2008已经发布
- 架构师课程之-haproxy专业级负载均衡软件权威讲解
- canvas js 绘图插件_[开盖即食]小程序图表插件eCharts实战
- php 替换字符串 图片,PHP替换字符串实现图片自适应屏幕实例代码
- bzoj2140: 稳定婚姻
- Flutter 核心原理与混合开发模式
- 易驾佳智能机器人教练_机器人教练创始人马宏先生受邀到中国人民大学进行经验分享...
- zbb20180913 java synchronized同步静态方法和同步非静态方法的异同
- 速修复!开源企业自动化软件 Apache OFBiz 出现严重的 RCE 漏洞
- 生成.properties文件(bat文件生成)
- Swing 100行画图示例
- opencv无获取摄像头视频帧(YUV打开导致失败)
- 白话CMMI(一)——CMMI扫盲
- ARM汇编之合法立即数的快速判断方法
- 蓝桥杯单片机——PWM脉宽调制(10)
- 《深度工作》学习总结
- 几个经典的数字电路设计
- windows 11 锁屏壁纸路径
- 推荐个边玩边学编程的游戏
- 未过GMS认证和CTS测试的ODM厂商如何使用google play