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树状数组优化一下就好了

  • 相关阅读:
    自相关函数 互相关函数 平稳随机过程
    MC323发短信程序+MSP430F149
    labview notes
    DSSS FHSS
    dBm与功率(w)换算关系!
    int 正负相乘
    51单片机 1602液晶显示
    51单片机 AD转换
    51单片机 蜂鸣器
    51单片机 串口通信
  • 原文地址:https://www.cnblogs.com/mikufun-hzoi-cpp/p/11361558.html
Copyright © 2011-2022 走看看