5811

作者: 姜浩_19强化班 | 来源:发表于2020-04-12 11:09 被阅读0次

题目大意

构造题。n个点,给出n个点能到达点的数量a[i],构造一个有向图,满足条件。N (1 <= N <= 1000)

样例解释:

3

2 1 0

表示点1,2,3能到达的点的数量2,1,0;

构造1->2->3 满足条件。

要求,构造的图不能有重边,不能有环。

题目解析

把a[i]从大到小排序,对于第i个节点,能指向所有大于i的节点,最多能到达(n-i)个节点。

题目大意

有n只monster;

输入一个矩阵mat,表示monster之间的关系;

mat[i][j]=1表示i怪物能打败j怪物;

mat[j][i]=0表示i怪物打不过j怪物;

注意,mat[j][i]=0 <=> mat[i][j]=1 可以互推,但是没有传递性,A能打败B、B能打败C => C能打败A 是不满足的。

输入m,再输入m个数字,表示挑选出m只monster组成T1队,剩下n-m只monster组成T2队,询问T1队与T2队是否合法 (合法是指存在某种排列,排列中任意一只monster都能打败他右边所有monster)?

如果合法,最多从T2队中能选出几只monster插入到T1中,并保证T1合法?

题目解析

要求1,可以用拓扑排序;(O(n^2))

要求2,先按照T2队从大到小的顺序,求出T2队中每个monster对应在T1队的位置pos[i],这样就转换成求pos数组的最长不下降子序列;(O(n^2)的dp)

注意1、2、2、3这种序列是合法的,因为原来T2本来就满足顺序要求(排列中任意一只monster都能打败他右边所有monster);

相关文章

  • 5811

    题目大意: 构造题。n个点,给出n个点能到达点的数量a[i],构造一个有向图,满足条件。N (1 <= N <= ...

  • 泛型

    https://juejin.im/post/5811cad4570c3500680d4a1f https://j...

  • 2015-2016年中国民宿品牌发展报告

    于博文迈点 据迈点旅游研究院统计,截止2016年9月,我国大陆客栈民宿总数达31254家。其中云南以5811家客栈...

网友评论

      本文标题:5811

      本文链接:https://www.haomeiwen.com/subject/bjdvmhtx.html