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])的方案数,就是一个组合数。
    代码 : 略

  • 相关阅读:
    Sentry异常捕获平台
    docker部署RabbitMQ(单机)
    Elasticsearch参数调优
    docker 部署Elasticsearch-权限认证(单节点)
    ElementUI 实现el-table 列宽自适应
    vue 弹幕插件
    linux 命令笔记
    swoole安装笔记
    Swoole学习笔记
    VM安装centos8实战
  • 原文地址:https://www.cnblogs.com/ihopenot/p/6635133.html
Copyright © 2011-2022 走看看