zoukankan      html  css  js  c++  java
  • UOJ Round总结

    #22. 【UR #1】外星人

    一开始随便搞出第一问答案,很显然的性质对$x$有变化的$a$一定是递减的,就拿一个桶直接记录可以达到的值

    然后我开始想第二问,一开始想直接在这个桶上统计答案,然后发现不行,之后再想,如果利用上面的性质,在选取了一个$a_i leq x$时,会有一段区间的$a$可以随便插入到$a_i$之后,然后就被一些组合数学的细节绕晕,没有想清楚,这一段区间是$(x mod a_i,x]$,并且要在$a_i$中挑一个出来放在最前面,然后会发现$x mod a_i$是一个子问题,搞出来这个合法方案排列数后,将$(x mod a_i,x]$中的数,插入排列中,方案数$(sum[x mod a_i]+1)(sum[x mod a_i]+2)...(sum[x]-1)$,即$frac{sum[x-1]!}{sum[x mod a_i]!}$

    那么就设$dp[i]$为当前$x=i$时最大答案,$f[i]$为$x=i$且满足最大答案时的方案数

    $dp[i]=max dp[i mod a_j]$  $(a_j leq i)$

    然后f[i]由那些可以得到最大答案的$f[i mod a_j]$根据上面的更新得到

    代码

  • 相关阅读:
    Vue--路由
    Vue -- 双向过滤器去除html标签
    SQL表的基本操作
    .NET面试题
    MVC Razor
    MVC aspx
    CSS修改滚动条样式
    C# 制作图片验证码
    上传图片加水印
    eclipse常用快捷键
  • 原文地址:https://www.cnblogs.com/huangchenyan/p/13841072.html
Copyright © 2011-2022 走看看