zoukankan      html  css  js  c++  java
  • ???--???Insection is not allowed

    题意 :
    给你一个n*n的网格图,还有k个起点和k个终点。
    保证起点均为(1,a[i]),终点均为(n,b[i])且0 < a[1] < a[2] < ... < a[k] <= n ,0 < b[1] < b[2] < ... < b[k] <=n 。
    求从所有起点到终点的k条路径互不相交的方案数。

    数据范围 : n <= 1e5 , k <= 100

    ------------------------------------------------此后一千里---------------------------------------------------

    我们考虑对于每一种起点与终点对应的方案,即并不a[i] -> b[i] ,而可以 a[i] -> b[j] 的方案,那么如果这时有两条路径有交的话,那么我们选取一个交点,把交在这点的两条路径之后部分交换一下,就可以得到另一种方案。而如果我们用行列式去计算的话,会发现这两种方案一正一负正好抵消。那么方案数其实就是这个行列式的值。
    具体的行列式就是 A[i][j] = 从 (1 , a[i]) 到 (n , b[j])的方案数,就是一个组合数。
    代码 : 略

  • 相关阅读:
    单例模式
    collections额外数据类型
    logging的简单使用
    杂记
    字符编码
    面向对象编程简介
    logging模块
    re与subprocess模块
    oepnpyxl模块 与excle交互
    json序列化模块
  • 原文地址:https://www.cnblogs.com/ihopenot/p/6635133.html
Copyright © 2011-2022 走看看