zoukankan      html  css  js  c++  java
  • 模拟测试20190815(已更新)

    %%%skyh

    这次考得什么玩意啊,三道题丝毫想不到正解,骗分又不会骗,只有打打暴力才能维持得了生活这样子一道比一道神

    上来对着T1的表看了2h,尝试了矩阵,组合数均无果只得打了个树状数组的暴力,2h20min,得分15pts

    然后打T2暴力(没错我已经放弃正解了orz),爆搜+20pts特判,不知怎的挂了5pts,得分45pts

    然后码T3暴力,然而暴力并不会打导致递归爆栈,MLE 0

    总分15+45+0=60,rank......5?!?

    真是神(du)奇(liu)的一场考试

    T1:数论

    (极不友善的题目)

    根据观察(打表+瞎猜)可知,数据范围内的良好的整数很少

    那么如果我们可以较快地筛出所有优秀的数,就可以做到O(1)回答询问

    怎么筛呢,我们最开始已知1是良好的数,考虑用其进行扩展

    每次枚举一个质数p,用已知可能是良好的数x进行扩展(x*p0,x*p1......),得到一个候选集合S

    从小到大扫S中每一个元素,同时维护约数个数前k+1大值,若一个元素约数个数小于第k+1大值就舍弃

    那么我们质因子应枚举至多少呢,我们发现一个数包含尽量小的质因子时才更可能是良好的数,经实践,p<=293足以通过本题

    当然我们可以考虑迭代至稳定的思想,判断是否好几次筛完都没有发生改变

    复杂度O(max(p)*n*logk*log(m))

    未完待续(咕了)

    T2:位运算

    考试时候以为是搜索剪枝,然而只会搜索不会剪枝,拿了暴力和两个特判分就溜了

    正解dp,我们发现我们不关心能得到的过程数是什么,只关心数中1的个数

    设f[i][j]表示第i位得到位数为j的方案数

    对于&,|,^分类讨论转移则可,转移过程顺便记录可行方案(任一)

    若最终f[n][(c中1的个数)]不为0,则递推回去寻找可行方案

    每次相当于寻找(位数为s)opt(位数为a[i])==now的一组可行解

    分类讨论则可

    T3:旅行

    好神啊好神啊好神啊

    直接统计方案不好统计,我们不妨按照数位dp中逐位确定的思想来解决本题

    显然我们应该从b[1]进行dfs,寻找脱离限制的方案数

    先用换根dp得出从其他点出发的方案数

    然后从b[1]进行dfs,只沿着b走,用一个全局变量维护现在脱离控制的方案数

    用线段树or树状数组优化一下就好了

  • 相关阅读:
    gain 基尼系数
    luogu P5826 【模板】子序列自动机 主席树 vector 二分
    牛客挑战赛39 树与异或 离线 树上莫队 树状数组 约数
    4.22 省选模拟赛 三元组 manacher 回文自动机
    4.22 省选模拟赛 最优价值 网络流 最大权闭合子图
    4.18 省选模拟赛 消息传递 树剖 倍增 线段树维护等比数列
    luogu P4008 [NOI2003]文本编辑器 splay 块状链表
    牛客挑战赛39 密码系统 后缀数组
    luogu P1526 [NOI2003]智破连环阵 搜索+最大匹配+剪枝
    luogu P4095 [HEOI2013]Eden 的新背包问题 多重背包 背包的合并
  • 原文地址:https://www.cnblogs.com/mikufun-hzoi-cpp/p/11361558.html
Copyright © 2011-2022 走看看