zoukankan      html  css  js  c++  java
  • [BZOJ1562/ZJOI2007]最大半连通子图

    Description

    Input

    第一行包含两个整数N,M,X。N,M分别表示图G的点数与边数,X的意义如上文所述。接下来M行,每行两个正整数a, b,表示一条有向边(a, b)。图中的每个点将编号为1,2,3…N,保证输入中同一个(a,b)不会出现两次。

    Output

    应包含两行,第一行包含一个整数K。第二行包含整数C Mod X.

    Sample Input

    6 6 20070603
    1 2
    2 1
    1 3
    2 4
    5 6
    6 4

    Sample Output

    3
    3

    HINT

    对于100%的数据, N ≤100000, M ≤1000000;对于100%的数据, X ≤10^8。

    题目描述真复杂!一句话就可以描述完:给定一个有向图,请你求出它的一个最大的满足任意两点间至少有一条路径相连的导出子图,并统计个数(对P取模)。

    题解:

      一个强连通分量要选肯定一起选。所以我们可以先Tarjan缩点(=>DAG)。DAG中两点之间至少有一条路径相连<=>这个DAG一定是一条链。重构图DP就行了(注意重边的情况,用map判一下)。
  • 相关阅读:
    php 手动搭建环境
    C#开源大全项目
    基于Aforge的物体运动识别-入门
    第二阶段站立会议02
    第二阶段站立会议01
    第一次绩效评估
    意见评论
    团队项目评论
    意见汇总
    对“小小之植物人”的博客检查结果
  • 原文地址:https://www.cnblogs.com/jinkun113/p/4894712.html
Copyright © 2011-2022 走看看