poj3687 反向建图拓扑排序

【吃瓜教程】周志华西瓜书课后习题第一章答案 第一章 1.1表1.1中若只包含编号为1和4的两个样例,试给出相应的版本空间。 编号 色泽 根蒂 敲声 好瓜(标记) 1 青绿 蜷缩 浊响 是Y 4 乌黑 稍蜷 沉闷 否N 知识储备: 假设空间: 所有假设组成的空间 版本空间:与训练集一致的假设集合 从假设空间到版本空间算法大致如下: 1.删除与正例不一致的假设且删除与反例一致的假设 2.删除与正例不一致的假设 3.删除与反例一致的假设 具体选择哪种 阅读详情

题目:点击打开链接

这题好坑啊,WA了一下午,到最后发现读错题了QAQ,如果理解了题意,那就是简单的拓扑排序了。

题意:n个重量为1~n的球,给定一些编号间的重量比较关系,现在给每个球编号,在符合条件的前提下使得编号小的球重量小。(先保证1号球最轻,其次2号……)

分析:拓扑排序,注意根据题的要求,要先保证1号球最轻,如果我们由轻的向重的连边,然后我们依次有小到大每次把重量分给一个入度为0的点,那么在拓扑时我们面对多个入度为0的点,我们不知道该把最轻的分给谁才能以最快的速度找到1号(使1号入度为0),并把当前最轻的分给1号。所以我们要由重的向轻的连边,然后从大到小每次把一个重量分给一个入度为0的点。这样我们就不用急于探求最小号。我们只需要一直给最大号附最大值,尽量不给小号赋值,这样自然而然就会把轻的重量留给小号。

注意重边。

以上分析来自: 点击打开链接


#include<iostream>
#include<cstdio>
#include<vector>
#include<queue>
#include<cstring>
#include<string>
using namespace std;
const int N=209;
bool vis[N][N]; //判断重边,n《200,m《40000,显然会有重边
int in[N],ans[N];

int main()
{
    int n,m,a,b;
    int T;scanf("%d",&T);
    while(T--){
        memset(vis,0,sizeof(vis));
        memset(in,0,sizeof(in));
        vector<int>e[N];
        scanf("%d%d",&n,&m);
        for(int i=0;i<m;i++){
            scanf("%d%d",&a,&b);
            if(!vis[a][b])in[a]++,e[b].push_back(a),vis[a][b]=1;
        }
        priority_queue<int>q;
        for(int i=1;i<=n;i++)if(!in[i])q.push(i);
        int id=n;
        while(!q.empty()){
            int t=q.top();q.pop();
            ans[t]=id--;
            for(int i=0;i<e[t].size();i++)if(--in[e[t][i]]==0)q.push(e[t][i]);
        }
        if(id)printf("-1\n");
        else for(int i=1;i<n;i++)printf("%d ",ans[i]);
        if(!id)printf("%d\n",ans[n]);
    }
    return 0;
}


Box2D-Lite源码阅读笔记(2) 0.初始化函数 static void InitDemo(int index) { world.Clear(); numBodies = 0; numJoints = 0; bomb = NULL; demoIndex = index; demos[index](bodies, joints); } 在这个初始化函数中,一般会默认执行index=0的函数,这个函数就是一个示例,因为示例比较简单,所以也便于研究,示例效果如下。 就是一个方块。 进入第一个示例函数。(忽略我加的注释) 阅读详情

相关推荐

oscp备考,oscp系列——Djinn3靶场:ssti漏洞,pkexec提权

oscp备考,oscp系列——Djinn3靶场:ssti漏洞,pkexec提权难度简单偏上对于低权限shell获取涉及:ssti漏洞对于提权:pkexec提权。

2202_75361164的博客 633

2020.2.19 hdu 1285

题意:已知偏序求一个完整的排序 这很明显就是拓扑排序的内涵 注意的是它给了一个说明: 符合条件的排名可能不是唯一的,此时要求输出时编号小的队伍在前 (按道理能用优先队列执行,但咱能直接暴力不好吗) 拓扑排序的操作如下: 1.在有向图中选择一个入度为0的顶点,输出 2.从图中删除该顶点和所有以它为尾的弧,并更新相关点的入度 3.重复1,2步,直到所有顶点都被输出,或者发现图中存在回路 根据这个思路直接简单暴力,题目说什么我们做什么 #include <stdio.h> #include <s

weixin_45671932的博客 259

Labview调用C++ dll之字符串数组传递

做项目的时候碰到了一个需求,有一个复杂的运算,用labview实现非常的麻烦,但是如果用C++实现,就会灵活很多。尝试着采用Labview调用C++编写的动态链接库方式解决,兼顾Labview的便利和C++的灵活性。 运算好说,主要难点是Labview与C++之间的数据对应关系,因为我最后的结果是既有字符串又有数字,对于单纯的数字来说,直接通过调用数组的方式就能解决,这里主要记录一下字符串数组...

bgbgx的博客 6807

拓扑排序

/*   拓扑排序方法如下:   (1)从有向图中选择一个没有前驱(即入度为0)的顶点并且输出它.   (2)从网中删去该顶点,并且删去从该顶点发出的全部有向边.   (3)重复上述两步,直到剩余的网中不再存在没有前趋的顶点为止. */ bool TopologicalSort(int a[][101]){ //可以完成拓扑排序则返回True int n = a[0][0], i, j;

lethic的专栏 601

避坑指南:PyCINRAD处理CINRAD雷达数据时遇到的5个典型报错及解决方案

本文针对使用PyCINRAD库处理CINRAD雷达基数据时常见的5个典型报错,提供了详细的解决方案。内容涵盖环境配置、数据读取、PPI可视化及性能优化等核心环节,重点解决了版本兼容性、数据异常处理和中文乱码等实际问题,帮助用户高效处理雷达基数据并生成准确的PPI图像。

cc789的博客 1068

RH850从0搭建Autosar开发环境【3X】- Davinci Configurator之BswM模块配置详解(上)

RH850从0搭建Autosar开发环境【3X】- Davinci Configurator之BswM模块配置详解(上)

weixin_42412049的博客 739

拓扑排序的简单实现

 对一个有向无环图(Directed Acyclic Graph简称DAG)G进行拓扑排序,是将G中所有顶点排成一个线性序列,使得图中任意一对顶点u和v,若边(u,v)∈E(G),则u在线性序列中出现在v之前。通常,这样的线性序列称为满足拓扑次序(Topological Order)的序列,简称拓扑序列。简单的说,由某个集合上的一个偏序得到该集合上的一个全序,这个操作称之为拓扑排序。

liu_xiao_cheng的专栏 438

解锁RK3588:内核模块签名与安全启动配置全攻略

RK3588作为一款高性能嵌入式SoC芯片,其内核模块签名与安全启动配置是保障系统安全的核心机制。本文详细介绍了RK3588的芯片特性,重点阐述了安全启动的硬件信任链原理和内核模块签名的实现方法。通过具体步骤演示了从密钥生成、模块签名到验证加载的完整流程,并深入解析了安全启动配置的硬件连接、软件工具准备、密钥烧录等关键环节。此外,还提出了防御旁路攻击和动态信任链扩展等高级安全策略,为RK3588在工业控制、智能安防等高安全要求场景中的应用提供了全面的安全解决方案。

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 346

【数据结构】【图文】【oj习题】 图的拓扑排序(邻接表)

拓扑排序: 按照有向图给出的次序关系,将图中顶点排成一个线性序列,对于有向图中没有限定次序关系的顶点,则可以人为加上任意的次序关系,由此所得顶点的线性序列称之为拓扑有序序列。显然对于有回路的有向图得不到拓扑有序序列,因为有回路的话,顶点的先后次序就不确定了。 例如:例如,下图,我们可以人为限定次序:A B C D 或 A C B D 解释:该输出顺序特点就是后面的顶点输出必然后于该顶点的前驱顶点 算法: 从有向图中选取一个没有前驱(没有在它之前活动)的顶点,输出之; 从有向图中删去此顶点以及所有以它为.

qq_25218219的博客 1450

Xilinx FPGA平台GTX简易使用教程(五)GTX收发测试及示例工程介绍

GTX IP配置完了,你不得搞个回环测试一番?

数字IC/FPGA杂货铺,找一找,或许有你想要的~ 1万+

SAR成像概述

1. 发展概述 雷达是英文Radar(Radio detection and ranging)的音译,原意为“无线电探测与测距”。雷达的发明是无线电发展史上的里程碑,二战时,英国急需通过雷达探测空中金属物体来帮助搜寻德国飞机,这期间,雷达技术飞速发展,发展出了地对空、空对地轰炸、空对空火控、敌我识别等功能。雷达在第二次世界大战中发挥了重大作用,至今仍是军用和许多民用领域的重要传感器。 早期雷达系统通过时间延迟来测距,通过天线指向来测角,通过多普勒频移测速。1951年,Carl Wiley发现,通..

5070

图-----拓扑排序

拓扑排序方法如下: 1.从有向图中选择一个没有前驱(即入度为0)的结点并输出它。 2.从图中删去该结点,并删去从该结点出发的所有边。 3.重复(1)、(2),直到当前有向图中不存在没有前驱结点的结点为止,或者当前有向图中的所有结点均已输出为止。 Status TopoLogicalSort(ALGraph G) { //创建一个栈 int i; Initstack(s); //将入度...

weixin_39916039的博客 355

【RBF预测】基于粒子群算法优化RBF神经网络实现数据回归预测含Matlab源码

1 简介 原油含水率预测对于确定油井水,油层位以及估计原油产量有着非常重要意义.BP神经网络是最近常用的原油含水率预测方法,然而,由于BP神经网络存在容易陷入局部极小值,收敛速度慢等问题,影响了其预测的实用性和准确性,对此,提出基于粒子群优化RBF神经网络(PSO-RBFNN)的原油含水率预测方法,粒子群优化算法用于RBF神经网络参数优化.在分析原油含水率预测的影响因素基础上,建立粒子群优化RBF神经网络的原油含水率预测模型.实验结果表明,在原油含水率预测中,基于粒子群优化RBF神经网络比BP神经网络有着

qq_59747472的博客 1232

poj3687 Labeling Balls【反向建图拓扑排序】

DescriptionWindy has N balls of distinct weights from 1 unit to N units. Now he tries to label them with 1 to N in such a way that: No two balls share the same label.The labeling satisfies several con...

loving coding 322

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

拓扑排序(反向建图)poj3687

翻译版本的题意哈哈哈哈 : Windy有N个球,重量从1个单位到N个单位不等。现在他试图用1到N来标记它们,这样: 没有两个球有相同的标签。 标记满足几个约束条件,如“标有a的球比标有b的球轻”。你能帮温迪找到解决办法吗 输入 的第一行是测试用例的数量。每个测试用例的第一行包含两个整数,N(1≤N≤200)和M(0≤M≤40000)。下一个M行包含两个整数a和b,表示标有a的球必须比标有b的球轻。(1≤a,b≤N)每个测试用例前都有一个空行。 输出 对于每一个测试用例输出一行从标签

m0_46082460的博客 442

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

poj 3687 Invitation Cards(反向建图 + 拓扑排序 + 贪心)!!!

毒瘤题。。。。 题意:每个球都有一个重量,然后有n组约束条件,每次 A B ,代表着A标号的球 < B标号的球。最后让你输出每个标号的重量,如果有多个解决方案,那么尽量使得编号小的重量小。也就是说排列的字典序最小。如果不存在可能的排列输出-1。 思路:一开始当成模板题来做的我付出了惨痛的代价。。。 一看题目,可以建图进行拓扑排序,但不知道为什么一直Wa,后来看了别人的题解发现自己想的太...

一身清贫怎敢入繁华 462

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

POJ【3687】Labeling Balls

POJ【3687】Labeling Balls

ACMer' 844

2018.4.10-2018.5.26 【训练记录】

省赛5月26.27,我只是想看看自己到底能不能坚持下来。2018.4.10 第1天调整心态制定一个计划复习kmp模板+最短路径模板+最小生成树模板。cf 上一场div2 42 group里的c题2018.4.11 周三 第2天补cf div2 42 理解算法入门经典第8章 8.1 8.2 8.3 和第9章 9.1 9.2 部分例题和思想  用代码实现:归并排序,DAG模型(嵌套矩形和硬币问题)结:...

loving coding 384

拓扑排序之正向建图和反向建图(hdu1285和hdu4857)

拓扑排序可以正向和反向建图,正向和反向只在输出排序时才有区别,对于字典序输出和(编号)小的在前面会有不同,需要注意 对于1->4->2 5->3->2 字典序:1 4 5 3 2 (编号)小的在前面:1 5 3 4 2 比较的顺序: 1 4 35 2 所以按(编号)小的在前面的话,应该要第三次输出3才对,而字典序则完全按...

wangtao的博客 1043

算法_拓扑排序

拓扑排序 ​ 图G=(V,E)是一个具有n个顶点的有向图,V中的顶点序列v1,v2,v3…vn为一个拓扑序列当且仅当该顶点序列满足下列条件:若<vi,vj>是图中的边(即顶点vi到顶点vj有一条路径),则在序列中顶点vi必须排在顶点vj之前。 ​ 在一个有向图中找一个拓扑序列的过程称为拓扑排序。 例如,计算机专业的相关课程如下: 课程代号 课程名称 先修课程 C1 高等数学 无 C2 程序设计 无 C3 离散数学 C1 C4 数据结构 C1,C2 C5 编译原理

shui2104的博客 794

c++ 小知识点小讲之 最大最小值字典序找出

讲解 各位肯定都遇到过求最大最小值的题目吧 一般都是让用字典序输出 这时候怎么办呢 这里提供一个方法 打擂台 我们找出一个最大值(最小值),然后再把数组里每一个数与他比较,如果比他大(小),就更新数值,最终剩下来的就是按字典序的最大值(最小值)了 代码演示: #include <iostream> using namespace std; const int N=1e6+10; int num[N]; int main(){ int n; cin>>n; int maxx=-1

struct_cym的博客 808

百钱百鸡问题

百钱百鸡问题: 时间限制:1Sec 内存限制:128MB 题目描述 中国古代数学家张丘建在他的《算经》中提出了著名的“百钱买百鸡问题”:鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁、母、雏各几何? 输入 无输入 输出 给出所有的解,每组解占一行 解的顺序:按“字典序”排列,即公鸡数少的在前;公鸡数相同,母鸡数少的在前 格式: cock=%d,hen=%d,chicken=%d\n 样例输入 复制 样例输出 复制 cock=0,hen=25,chicken=75 cock=4,hen=18

m0_52708559的博客 688

poj3687

题意:n个重量为1~n的球,给定一些编号间的重量比较关系,现在给每个球编号,在符合条件的前提下使得编号小的球重量小。(先保证1号球最轻,其次2号……) 分析:拓扑排序,注意根据题的要求,要先保证1号球最轻,如果我们由轻的向重的连边,然后我们依次有小到大每次把重量分给一个入度为0的点,那么在拓扑时我们面对多个入度为0的点,我们不知道该把最轻的分给谁才能以最快的速度找到1号(使1号入度为0),并把当...

weixin_34138377的博客 183

POJ 3687 Labeling Balls(拓扑排序)题解

DescriptionWindy hasNballs of distinct weights from 1 unit toNunits. Now he tries to label them with 1 toNin such a way that:No two balls share the same label.The labeling satis...

weixin_34185512的博客 217

poj3687 图论 拓扑排序

题目大致意思如下: 1-n个球,编号1-n,重量分别为1-n,给出条件例如 2 3表示2比3轻,条件无法判断时,编号大的重。依据条件输出每个球分别为多重 分析:刚开始在理解题意时,尤其要注意编号默认编号大的球重。显然,当条件能确定重量时一个拓扑排序就出来了,但是条件不能确定顺序时且不矛盾,拓扑排序就要注,这里用一个优先队列决解,待一个样例输入完成后, 解题思路:先把所有入度为

...... 805

poj3687 Labeling Balls 拓扑排序

题意:有n个球,给它们标上序号,满足一下要求,第i个的序号小于第j个的序号,此处i和j是输入的数据 解法:在图论专题里面看到的这道题,就一直往图那个方向想,想到了不能有环,但是没有想到拓扑排序,百度了一下发现大部分用的拓扑排序,然后就试着自己敲了一下,反正已经学过了数据结构,自己敲起来也并不难,而且此题数据并不大。 注意:拓扑排序顺序要按大的来,假如i比j轻,那么应该建立j->i的边,为了使字

always_here 579
上一篇: poj3026 bfs+prim
下一篇: poj 1094 简单拓扑排序
HARD_UNDERSTAND
博客等级 码龄11年 14粉丝 289原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值