2016"百度之星" - 初赛(Astar Round2A)HDU 5695 拓扑排序+优先队列
Gym Class
Time Limit: 6000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 681 Accepted Submission(s): 271
今天,它终于当上了梦寐以求的体育课老师。第一次课上,它发现一个有趣的事情。在上课之前,所有同学要排成一列, 假设最开始每个人有一个唯一的ID,从1到N
,在排好队之后,每个同学会找出包括自己在内的前方所有同学的最小ID,作为自己评价这堂课的分数。麻烦的是,有一些同学不希望某个(些)同学排在他(她)前面,在满足这个前提的情况下,新晋体育课老师——度度熊,希望最后的排队结果可以使得所有同学的评价分数和最大。
,表示T(1≤T≤30)
组数据。
对于每组数据,第一行输入两个整数N
和M(1≤N≤100000,0≤M≤100000)
,分别表示总人数和某些同学的偏好。
接下来M
行,每行两个整数A
和B(1≤A,B≤N)
,表示ID为A
的同学不希望ID为B
的同学排在他(她)之前。你可以认为题目保证至少有一种排列方法是符合所有要求的。
#include<iostream>
#include<cstring>
#include<cstdio>
#include<queue>
#include<stack>
#include<vector>
#include<map>
#define ll __int64
using namespace std;
vector<int> mp[];
int in[];
int t;
int ans[];
int vis[];
struct node
{
int x;
friend bool operator < (node aa,node bb)
{
return aa.x<bb.x;
}
};
priority_queue<node> p;
int n,m,a,b;
int main()
{
while(scanf("%d",&t)!=EOF)
{
for(int i=;i<=t;i++)
{
scanf("%d %d",&n,&m);
int jishu=;
struct node exm;
memset(ans,,sizeof(ans));
for(int j=;j<=n;j++)
{
mp[j].clear();
in[j]=;
vis[j]=;
}
for(int j=;j<=m;j++)
{
scanf("%d %d",&a,&b);
mp[a].push_back(b);
in[b]++;
}
for(int j=;j<=n;j++)
{
if(in[j]==)
{
exm.x=j;
vis[j]=;
p.push(exm);
}
}
while(!p.empty())
{
exm=p.top();
ans[jishu++]=exm.x;
p.pop();
for(unsigned int j=;j<mp[exm.x].size();j++)
{
if(--in[mp[exm.x][j]]==&&vis[mp[exm.x][j]]==)
{
vis[mp[exm.x][j]]==;
struct node ggggg;////wa点
ggggg.x=mp[exm.x][j];
p.push(ggggg);
}
}
}
int minx=ans[];
ll gg=ans[];
for(int j=;j<=n;j++)
{
minx=min(minx,ans[j]);
gg+=minx;
}
printf("%I64d\n",gg);
}
}
return ;
}
2016"百度之星" - 初赛(Astar Round2A)HDU 5695 拓扑排序+优先队列的更多相关文章
- 2016百度之星-初赛(Astar Round2A)AII X
Problem Description F(x,m) 代表一个全是由数字x组成的m位数字.请计算,以下式子是否成立: F(x,m) mod k ≡ c Input 第一行一个整数T,表示T组数据. 每 ...
- 2016"百度之星" - 初赛(Astar Round2B) 1006 中位数计数
思路:统计当前数左边比它小|大 i个人,相应右边就应该是比它大|小i个人 l数组表示左边i个人的方案 r表示右边i个人的方案 数组下标不可能是负数所以要加n //#pragma comment(lin ...
- HDU 5690:2016"百度之星" - 初赛 All X
原文链接:https://www.dreamwings.cn/hdu5690/2657.html All X Time Limit: 2000/1000 MS (Java/Others) Mem ...
- 2016百度之星 初赛2A ABEF
只做了1001 1002 1005 1006.剩下2题可能以后补? http://acm.hdu.edu.cn/search.php?field=problem&key=2016%22%B0% ...
- HDU 4857 拓扑排序 优先队列
n个数,已经有大小关系,现给m个约束,规定a在b之前,剩下的数要尽可能往前移.输出序列 大小关系显然使用拓扑结构,关键在于n个数本身就有大小关系,那么考虑反向建图,优先选择值最大的入度为零的点,这样得 ...
- 2016 百度之星初赛 Gym Class(优先队列+拓扑排序)
Time Limit:1000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64u Submit Status Pract ...
- 2014百度之星初赛第二场hdu 4831 Scenic Popularity
Scenic Popularity Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others ...
- HDU 5638 拓扑排序+优先队列
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5638 题意: 给你一个DAG图,删除k条边,使得能个得到字典序尽可能小的拓扑排序 题解: 把拓扑排序 ...
- hdu 5690 2016"百度之星" - 初赛(Astar Round2A) All X 快速二次幂 || 寻找周期
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5690 题意:m个数字全为x mod k ?= c;其中m <= 1010,0 < c,k ...
随机推荐
- keepalived实现nginx的高可用
1.使用yum安装keepalived yum install keepalived -y 2.修改配置文件keepalived.conf 主服务器配置文件 global_defs { router_ ...
- 干货!一篇文章集合所有Linux基础命令,适合所有菜鸟学习和老手回顾!
1 文件{ ls -rtl # 按时间倒叙列出所有目录和文件 ll -rt touch file # 创建空白文件 rm -rf 目录名 # 不提示删除非空目录(-r:递归删除 -f强制) dos2u ...
- U盘装机记录
U盘装机记录 1. 将U盘制作为启动盘(安装PE文件到U盘). (1)准备材料 8G以上U盘一个 一个可信的启动盘制作工具(这里是用的老毛桃) (2)将U盘插入电脑,单击老毛桃客户端(出现如下图所示的 ...
- 线程、进程、协程和GIL(一)
参考链接:https://www.cnblogs.com/alex3714/articles/5230609.html https://www.cnblogs.com/work115/p/562027 ...
- 归并排序算法Java实现
一. 算法描述 归并排序采用了分治策略(divide-and-conquer),就是将原问题分解为一些规模较小的相似子问题,然后递归解决这些子问题,最后合并其结果作为原问题的解. 归并排序将待排序数组 ...
- 1、spring boot入门
1.Spring Boot 简介 简化Spring应用开发的一个框架: 整个Spring技术栈的一个大整合: J2EE开发的一站式解决方案: 2.微服务 2014,martin fowler 微服务: ...
- python基础之正则表达式和re模块
正则表达式 就其本质而言,正则表达式(或 re)是一种小型的.高度专业化的编程语言,(在Python中)它内嵌在Python中,并通过 re 模块实现.正则表达式模式被编译成一系列的字节码,然后由用 ...
- 初见akka-01
最近在学习akka,在看rpc相关的东西,有点脑子疼,哈哈 1.需求: 目前大多数分布式架构底层通信是通过RPC实现的,RPC框架非常多, 比如我们学过的Hadoop项目的RPC通信框架,但是Hado ...
- 计算机指令集CISC与RISC
当接触一新CPU时商家会首先描述它是RISC指令集,这意味着什么,从这个描述你能了解多少CPU特性信息? 复杂指令集计算机(CISC) 长期来,计算机性能的提高往往是通过增加硬件的复杂性来获得.随着集 ...
- MySQL之查询性能优化(一)
为什么查询速度会慢 通常来说,查询的生命周期大致可以按照顺序来看:从客户端,到服务器,然后在服务器上进行解析,生成执行计划,执行,并返回结果给客户端.其中“执行”可以认为是整个生命周期中最重要的阶段, ...