zoukankan      html  css  js  c++  java
  • 考试总结 模拟58

    T1「试除法」

    可以发现m只有200,不难猜到复杂度是 $O(msqrt{a_i})$

    只需要把每个数$O(sqrt{a_i})$试除法,求一下约数并且记录一下每个数作为约数出现了多少次即可,用map实现多了个$log$

    当然也可以开数组记录,由试除法推论,一个数N的约数个数最多为$2sqrt{N}$,所以开1e7左右即可,

    T2 「背包DP」

     我背包DP就没会过考场上只能死板地摸(mo)索(xie)了板子苟到了40分

    这个思路很好,之前的都是$f[cost]=max-val$,由于cost很大,那么就可以把下标和值换一下,再跑DP

    1 for(int i=1;i<=n;++i){
    2     for(int j=n*single_val;j>=1;--j){
    3         f[j]=min(f[j],f[j-val[i]]+cost[i]);
    4     }
    5     for(int j=n*single_val;j>=1;--j){
    6         f[j]=min(f[j],f[j+1]);
    7     }
    8 }

    离线一下,每次lower_bound复杂度$O(n^2v+qlog{nv})$

    T3什么点分支,并查集的思路出想了好几次,模拟41 T2 影子

    愿你在迷茫时,记起自己的珍贵。
  • 相关阅读:
    Nginx常用日志分割方法
    nginx的 CPU参数worker_processes和worker_cpu_affinity使用说明
    js中的“==”和“===”的区别
    学习JS
    svg
    用户界面设计
    bootstrap和easyui
    axure—日期函数
    axure--轮播图
    字符串属性和函数的使用
  • 原文地址:https://www.cnblogs.com/casun547/p/11620336.html
Copyright © 2011-2022 走看看