poj 3687 Labeling Balls 逆向拓扑

简介:

  要求输出每个球的重量,标号越小的重量越轻越好。

  逆向拓扑,从大向小查找入度为0的点,然后赋予最大的值,这样就可以保证小号重量轻了

  好久没敲代码了,完全不会敲了

/*
author:jxy
lang:C/C++
university:China,Xidian University
**If you need to reprint,please indicate the source**
*/
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <queue>
#define INF 1E9
using namespace std;
int n,m;
int map[201][201],in[201];
int ans[201];
int main()
{
    int T;
    scanf("%d",&T);
    while(T--)
    {
        memset(map,0,sizeof(map));
        memset(in,0,sizeof(in));
        scanf("%d%d",&n,&m);
        int a,b,i;
        for(i=0;i<m;i++)
        {
            scanf("%d%d",&b,&a);
            if(map[a][b])continue;
            map[a][b]=1;
            in[b]++;
        }
        int Min=0,j,k=0;
        bool flag=1;
        for(i=n;i>=1;i--)
        {
            for(j=n;j>0,in[j]!=0;j--);
            if(j==0){flag=0;break;}
            for(int nn=1;nn<=n;nn++)
            {
                if(!map[j][nn])continue;
                in[nn]--;
            }
            in[j]=i;
            ans[i]=j;
        }
        if(!flag)printf("-1\n");
        else
        {
            printf("%d",in[1]);
            for(i=2;i<=n;i++)
             printf(" %d",in[i]);
            puts("");
        }
    }
}


目录
相关文章
|
4月前
[HDCTF2019]Maze(初识逆向)
[HDCTF2019]Maze(初识逆向)
54 1
|
人工智能 算法 BI
LeetCode 周赛 341 场,模拟 / 树上差分 / Tarjan 离线 LCA / DFS
上周末有单双周赛,双周赛我们讲过了,单周赛那天早上有事没参加,后面做了虚拟竞赛,然后整个人就不好了。前 3 题非常简单,但第 4 题有点东西啊,差点就放弃了。最后,被折磨了一个下午和一个大夜总算把第 4 题做出来了,除了新学的 Tarjon 离线算法,这道题还涉及到树上差分、前缀和、DFS、图论等基础知识,几度被折磨得想要放弃。这种感觉,似乎和当年在 LeetCode 上做前 10 题的时候差不多哈哈。
66 0
|
人工智能 vr&ar
SPOJ - COT Count on a tree(主席树 LCA)
SPOJ - COT Count on a tree(主席树 LCA)
70 0
[UVA1364 | POJ | NC]Knights of the Round Table | Tarjan 求点双 | 二分图 | 综合图论
我们可以很轻松地发现,被提出的都是在点双连通分量之外的,比如该图中的1 和 5 ,那么怎么判断哪些点不在环中呢? 此时我们还可以逆向思考,不 在 环 中 的 = = 总 的 − 在 环 中 的,所以说现在问题就转换成了满足条件的环内的点的个数
97 0
[UVA1364 | POJ | NC]Knights of the Round Table | Tarjan 求点双 | 二分图 | 综合图论
POJ-1475,Pushing Boxes(双BFS)
POJ-1475,Pushing Boxes(双BFS)
[Nowcoder] network | Tarjan 边双连通分量 | 缩点 | LCA倍增优化 | 并查集
题目描述 A network administrator manages a large network. The network consists of N computers and M links between pairs of computers. Any pair of computers are connected directly or indirectly by successive links, so data can be transformed between any two computers.
107 0
[Nowcoder] network | Tarjan 边双连通分量 | 缩点 | LCA倍增优化 | 并查集
|
人工智能 BI
[UVA 1599] Ideal Path | 细节最短路
Description New labyrinth attraction is open in New Lostland amusement park. The labyrinth consists of n rooms connected by m passages. Each passage is colored into some color ci .
176 0
|
算法 C++
PTA——7-2 图深度优先遍历
PTA——7-2 图深度优先遍历
480 0
|
存储 算法 Java
【每日算法】用树建图,求距离目标节点为 k 的点集的两种方式:「建图 + BFS」&「建图 + 迭代加深」 |Python 主题月
【每日算法】用树建图,求距离目标节点为 k 的点集的两种方式:「建图 + BFS」&「建图 + 迭代加深」 |Python 主题月