• 省选模拟40


    A. 染色问题

      考虑如何使用$m<=n+5$这个条件搞事情。

      发现如果我们将度数很少的点缩掉,那么剩余的点的个数会很少,甚至可以到直接搜索的程度。

      发现只要将度数$<=2$的点缩掉就可以了。

      对于度数等于1的点,可以直接消掉,给最终的答案乘上$k-1$即可。

      考虑给每条边设两个权值,即两边的点颜色相同时的权值和颜色不同的权值。

      度数等于2的点,那么需要将两条边合并成一条,考虑新加入这条边的权值,分为两边相同和不同讨论。

      最终在缩完点的图上只要搜索出答案就可以了。

    B. IOer

      首先可以把题意转化成n个物品m天取完的方案数并且在某一天取走一件物品的贡献是确定的,所以所以枚举每个时间取走多少件就可以确定贡献。

      所以考虑这个东西的组合意义。

      假如有很多球,每个球上标有$1-m$的数字,其中标有m的球的种类数是u+v,其余数字球的种类数是u,那么求满足以下条件序列的个数:

      1.长度为n+m-1。

      2.每个数字出现至少1次。

      3.数字出现的顺序单调递增(m除外)。

      那么可以发现,满足条件的序列个数就是原来问题的答案$*u^{m-1}$。

      发现最后一个条件很烦人,那么考虑去掉它。可以发现,除了第$m$种球,其他每种球都是等价的,所以假如去掉了最后一个条件,那么答案就会变成原来的$(m-1)!$倍。

      所以只要求出来满足前两个条件的序列个数。

      这个东西可以简单的容斥得到,也就是枚举最多出现了多少种颜色,容斥得到出现m种颜色的方案数。

    C. deadline

      考虑部分分的做法,假如将每个点相连的两种点之间连一条边,那么这张图显然是一张二分图。

      发现最大匹配必然每条边的两端至少选一个点,所以这个问题转化成了最小点覆盖。最小点覆盖=最大匹配,所以直接跑就行了。

      将这个东西扩展到正解。

      将每个时间段拆成两个点,之间连一条流量为1的边,对于每个任务$x$,假如$t=0$,那么S->x,流量为1,x->能够完成任务的时间段,流量为inf。否则x->T,能够完成的时间段->x,流量相同。

      之后跑最小割就可以得到答案。

  • 相关阅读:
    关于神奇的MD5算法21
    【转】C# 轻松实现对窗体(Form)换肤
    个人代码库のXML操作演练
    个人代码库の自定义后缀名
    个人代码库の自定义不规则窗体和控件
    个人代码库の创建快捷方式
    jquery 实现省市级联动
    分析器错误消息: 无法识别的属性“targetFramework”。请注意属性名称区分大小写
    EXTJS 面板控件panel应用
    HTTP 错误 500.21 Internal Server Error处理程序
  • 原文地址:https://www.cnblogs.com/hzoi-cbx/p/12445217.html
Copyright © 2020-2023  润新知