zoukankan      html  css  js  c++  java
  • 省选模拟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,流量相同。

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

  • 相关阅读:
    20200226 Java IO流——廖雪峰
    20200225 Java 多线程(2)-廖雪峰
    20200225 Java 多线程(1)-廖雪峰
    20200224 尚硅谷ElasticSearch【归档】
    20200224 一 概述
    20200222 尚硅谷Dubbo【归档】
    20200222 四、dubbo原理
    Improved robustness of reinforcement learning policies upon conversion to spiking neuronal network platforms applied to Atari Breakout game
    Reinforcement learning in populations of spiking neurons
    Solving the Distal Reward Problem through Linkage of STDP and Dopamine Signaling
  • 原文地址:https://www.cnblogs.com/hzoi-cbx/p/12445217.html
Copyright © 2011-2022 走看看