rank4大众rank

  

  T1 天空龙

    让他自由翱翔吧

  T2 巨神兵

    对于n=10的测试点本可以打出非常优秀的分层状压

    但是没有打出来,因为对拓扑图理解不够深刻,纠结于指回的边,实际上只关注伸出的边就可以

    正解则是跟分层一点关系都没有

    记录两层的状态一定要gg的,所以只记录一层

    那么状态定义就不可避免地成了”保证状态是个拓扑图“

    然后内部一片混沌,于是又得容斥。

    假设现在我们有一个完全正确的状态$st$,也就是所有符合条件的状态都被计算一次

    考虑如何转移到更庞大的一个状态$state$

    由于$dp$是枚举所有状态和所有转移,所以我们可以认为$st -> state$的过程会经过所有可能的路径

    将这些路径分类来达到容斥的目的

    假设$size[state^st]=sz$

    那么根据最后一次加入点的个数可以分成:

    $1 C_{sz}^1 条$

    $2 C_{sz}^2 条$

    ${sz} C_{sz}^{sz}条$

    这种组合数的东西,我们十分套路地使用奇加偶减就行了

    具体来说就是转移的时候,如果加入奇数个点则系数为1,否则系数为-1

  T3

    枚举最大公约数,则$ans=\sum \limits_d=1^n \sum \limits_{1<=a,b<=\frac{n}{d}} [gcd(a,b)==1]$

    而$n/d$只有$\sqrt[2]{n}$种取值,所以先上分块

    随后的东西我不会证复杂度了

    $sol1$

    假设a<b枚举$a<\sqrt[2]{\frac{n}{d}}$,变成$\sum\limits_{a=1}^{\frac{n}{d}} [gcd(a,\frac{n}{d*a})==1]$

    设$k=frac{n}{d}$,上莫比乌斯反演$\sum\limits_{a=1}^k \sum\limits_{t|a} u(t)$

    $\sum\limits_{t=1}^k u(t) \sum\limits_{x=1}^{x*t<=k} 1    -phi(x*t)$

    然后直接就是调和级数,时间复杂度$nlogn$, 空间复杂度根号

    可以水到80

    $sol2$

    考虑函数$f(x)=\sum\limits_{1<=a,b<=k} [a*b<=k][gcd(a,b)==1]$

    发现$f(x)$比$f(x-1)$多出的部分就是$\sum[a*b==k][gcd(a,b)==1]$

    也就是把k拆成两部分,不含有相同的质因子

    $delta=2^{d(k)}$

    可以线筛,时间复杂度$n$,空间复杂度$n$

    如果你能结合$sol1,sol2$,同时计算出最优复杂度分界线$n^{\frac{2}{3}}$,可以直接AC

    $sol3$

    还是考虑那个函数,这次上容斥(又是容斥,算上明天的题都3道容斥题了)

    设$g(i)=\sum\limits_{1<=a,b<=k} [a*b<=k]$

    枚举ab的gcd t,则重复的部分就是k中除去$t^2$之后分成两个互质的数的方案数

    这不就是f自己

    $f(i)=g(i)-\sum\limits_{t>1} f(\frac{k}{t^2})$

    递归调用自己,复杂度不会证,听说是$n^{\frac{2}{3}}$

    然后又要玄学计算最优复杂度分界线又是$n^{\frac{2}{3}}$,结合sol1可以用更快的速度AC

    

  恰完饭再写,饿。

最新文章

  1. JQuery easyUI DataGrid 创建复杂列表头(译)
  2. 机器数据的价值 - Web 访问日志和数据库审计日志
  3. C++ Primer 第九章 顺序容器
  4. 在word里插入图片,并设置图片的格式
  5. oracle断电重启之ORA-01033和ORA-01172
  6. zabbix监控nginx
  7. iOS - UITouch
  8. shell脚本初析
  9. ORA-12704 字符集不匹配
  10. 转:成为JavaGC专家Part I — 深入浅出Java垃圾回收机制
  11. activiti 部署在oracle多用户下不能自动建表问题的解决!
  12. Binder机制,从Java到C (5. IBinder对象传递形式)
  13. 【干货篇】步步为营,带你轻松掌握jQuery!
  14. [CodeForces 471A] MUH and Sticks
  15. jQuery的回调管理机制(二)
  16. SSH 本地端口转发
  17. shell中与运算 cut切分行 if while综合在一起的一个例子
  18. Java LinkedHashMap工作原理及实现
  19. 测试Websocket建立通信,使用protobuf格式交换数据
  20. [笔记]Python中模块互相调用的例子

热门文章

  1. maven打包工程出现错误 Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.12.4:test
  2. Android_布局
  3. 分库分表(5) ---SpringBoot + ShardingSphere 实现分库分表
  4. mac下安装jmeter
  5. 初探内核之《Linux内核设计与实现》笔记下
  6. Java的动手动脑
  7. .NET Core 3.0中IAsyncEnumerable&lt;T&gt;有什么大不了的?
  8. 网络编程java
  9. Python3升级3.6强力Django+杀手级xadmin打造在线教育平台☝☝☝
  10. 代码审计之create_function()函数