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

    考试遇到的问题:

    很没有状态的一场考试T1调了半天的nth_element,而且还没记得复杂度,

    然后发现了nth_element(a+l,a+k,a+r),其中的k表示[l,r]中第k小元素且l!=1时k应该+l-1

    后来又发现交上去的代码有如下若干问题:

    1.线筛打错了,应该是if(v[i]<prm[j])break;

    2.s1,s2数组开到了1e8。。。

    3.交的代码没删调试

    T2题干的问题?虽然好多人看出来没说取abs

    T1坑

    T2

    一个显然的贪心,考场上比较犹豫的,每个人都去拿当前最大的,否则同样一次机会,会让对手拿到更大的

    那么考虑怎么维护?$O(kn)$是可以的

    那么每次就可以开个桶,然后每次记录最大值然后每次 while(!t[mx])--mx;   当然要离散化

    T3

    考场上想多了证明了一下是否是让旅行家的更少

    旅行家每次扔食物的操作就会使其经过的点权加大,只会让后者更大

    考虑dp

    定义f[i][j]表示从i的子树某点走向i 撒下了j的面包渣的贡献

    定义g[i][j]表示从i走向子树中某点撒了j面包渣的贡献

    转移 f[x][j]=max{g[y][j-1]+sum[x]-a[y]}sum[x]为与x相连的所有点的点权和,多出来的贡献就是sum[x]-a[y]

    g[x][j]=max(g[y][j-1]+sum[x]-a[fa])为什么要-a[fa]?考虑最终对ans做贡献:

    ans=max(ans,f[x][j]+g[x][V-j])两者必须要减去一个拼接点x的fa

    对于每个点dp正反跑两边:第一遍按照一个顺序更新出的x的dp值拼接相当于从左到右的方向

    另一种方向也要考虑了

    愿你在迷茫时,记起自己的珍贵。
  • 相关阅读:
    Go 场景
    sourcetree clone 提示url无效
    简单去重比较/复杂数据去重处理
    vue组件之间的通信
    js-执行机制之同步、异步、宏任务、微任务
    react生命周期
    git push被忽略的文件 处理
    请求头的属性
    运算精度问题https://blog.csdn.net/smile_ping/article/details/80284969
    react中状态提升
  • 原文地址:https://www.cnblogs.com/casun547/p/11635766.html
Copyright © 2011-2022 走看看