zoukankan      html  css  js  c++  java
  • 省选模拟2

    A.铁轨建设

      考场上打了插头$DP$,妄想不A也有七八十分,然而数据把插头$dp$卡的很死,所以就只剩45了。

      正解网络流,类似无限之环,将每个点拆成四个方向,只要建图保证关键点建直路费用为1,其他费用为0即可,然后跑费用流就可以得到答案。

    B.圈地游戏

      考场以为是网络流,然后伪了。

      正解是最短路树?没看懂。

    C.组合数学

      题解上来一个题意转化就看蒙了:

      共有n种球,每种球有$a_{i}$个,按照顺序标号,那么枚举n的排列,要求对于每种球,1号球必须在同种球的最前面,1号球的排列与枚举的排列相同。

      这样我们可以拟合出前缀和的效果,然而和题目中给的式子还是有所不同,多除掉了一项前缀和。

      那么可以继续转化:如果不要求最后一种球的1号球在同种球的最前面,那么排列的方案数就是题中所给的式子。

      考虑枚举最后一种球是哪种,设这种球第一次出现的位置是$pos$,这种球为$last$

      那么设$f_{i}$表示至少i种球放到了$last$后面,这个东西二项式反演就可以得到合法方案数了。

      有:

      $f_{i}=frac{(t+a_{last}-1!}{Pi b}*inom{m-pos}{t+a_{last}-1}*frac{(m-t-a_{last})!}{Pi c}$

      其中$b$表示放在$last$后面的球的集合,$c$表示放在前面的球的集合。

      发现这个东西只和两部分球的个数有关,打个背包就完了。

  • 相关阅读:
    网络传输介质和布线
    计算机网络参考模型
    c语言中利用函数库获取当前时间,写入文件中。
    明解c语言 13-4
    c语言中fprintf函数,向文件中写入数据
    c语言 13
    c语言中统计文件字符数
    c语言中使用fscanf函数从文件读取数据(逐行读取并保存变量)
    繁华模拟赛 ljw搭积木
    繁华模拟赛 找十字架
  • 原文地址:https://www.cnblogs.com/hzoi-cbx/p/12093724.html
Copyright © 2011-2022 走看看