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

    T1:
    首先有一个(n^2)的DP
    将操作倒过来,每次相当于在之前的中插入一段相同颜色的
    设计(f_{i,j})表示考虑了前i种颜色,当前总长为j的方案数
    转移显然:
    (f_{i,j}=f_{i-1,j}+sumlimits_{k=0}^{j-1}f_{i-1,k}*(k+1))
    考虑优化
    显然如果把DP的含义变为选了i种颜色,那么转移就变为:
    (f_{i,j}=sumlimits_{k=0}^{j-1}f_{i-1,k}*(k+1))
    只需要最后将答案乘上一个组合数就行了
    (需要注意最后一种颜色是必须出现的,所以可以先算m-1的答案,最后再枚举一遍将最后一种颜色加上)
    到这里就可以发现,实际上最终长度为k的答案就是(prodlimits_{i=2}^n (x+i))的第n-k次项系数
    分治的乘起来就可以做到(O(nlog^2n))
    但毒瘤出题人不允(yong)
    考虑倍增的构造,即知道(prodlimits_{i=2}^{2^t}(x+i))如何求(prodlimits_{i=2}^{2^{t+1}}(x+i))
    拆拆式子就行了

    T2:
    毒瘤题,咕

    T3:
    看到循环同构,想到polya定理
    (F_{i,j})表示长度为i的环,染j个珠子,连续的不超过k个的方案

    [ans=frac{sumlimits_{d|gcd(n,m)}varphi(d)*F_{n/d,m/d}}{n} ]

    考虑F咋算,钦定第一个不染,那么就变为了序列上的经典问题,容斥一下就行了
    因为总共有i-j个没有染色的珠子,所以最后需要将答案乘上(frac{i}{i-j})
    因为(sigma_1)的大小大概是(nloglog n)的,所以没啥问题

  • 相关阅读:
    android外存文件读写
    android内存文件读写
    SearchView的使用
    Notification的使用(待完善)-〉添加点击取消,显示优化
    列表Dialog和“确认”、“取消”Dialog
    PopupWindow弹出窗口的使用
    侧拉菜单
    腾讯分析移动设备屏幕分辨率分析报告--转
    git hub使用
    input 原始版,后面修改
  • 原文地址:https://www.cnblogs.com/Gkeng/p/12871701.html
Copyright © 2011-2022 走看看