2019.4.7高中部集训

2019 年 4 月 7 日 星期日(已编辑)
/ , , , , , ,

2019.4.7高中部集训

课程表

上午
  • 讲评考试、TarjanTarjan
下午
  • 依然TarjanTarjan

考试

  • 我最讨厌订正了
  1. TaskTask 11:注意细节就可以了,这题不用订。
  2. TaskTask 22:我不知道为什么考试的时候脑子抽了,一道裸的贪心卡不出来,emm......emm......竟可能把最高位变得越大即可。
  3. TaskTask 33:我真不知道为什么这题TLETLE了10个点,或许用的空间大跑的就比较慢??这题可以用滚动数组,因为dp[i][j][k]dp[i][j][k]只与dp[i][...][...]dp[i][...][...]dp[i1][...][...]dp[i-1][...][...]有关。不开心呐~~
  4. TaskTask 44:考试的时候,我一直在想O(1)O(1)的方法求出解,但是为什么不行呢??无法证明这一点,我好菜啊qwqqwq。可以发现沿着一三象限角平分线分开,左右的格点数是一样的,除了在这条将平分线上的点,即P(x,y)x=yP(x,y),x=y时,这部分可以后面加上,不要算两遍。
    • 核心CodeCode
    for (ll i = 1; i <= t; i++)
        ans = (ans + k / i) % MOD;
    for (ll i = t + 1; i <= k; i = t + 1) {
        t = k / (k / i);
        ans = (ans + (k / i) * (t - i + 1)) % MOD;
    }
  5. TaskTask 55:我觉得这是6题中最难的一道了,一道区间dpdp。先分析一下,发现如果要第ii个元素出栈,则一定要把ii上面的元素先出栈,然后再把ii出栈,最后把ii下面的出栈。这样,[1,n][1,n]的区间最值问题就变成了[1,i][1,i][i+1,n][i+1,n]两个问题。于是可以开一个dp[l][r]dp[l][r]dpdp数组,每次求出dp[l][k1]dp[l][k-1]kkdp[k+1][r]dp[k+1][r]这3部分的惩罚值,然后枚举kk,就可以求出dp[l][r]dp[l][r]的区间最小值,答案最后存在dp[1][n]dp[1][n]

    现在来看怎么分别求出dp[l][k1]dp[l][k-1]kkdp[k+1][r]dp[k+1][r]

    • dp[l][k1]=dp[l][k1]dp[l][k-1]=dp[l][k-1],因为在栈的最上面,所以说,和原来的没有任何区别。
    • k=(tl+tl+1+tl+2+...+tk2+tk1+tk)×dkk=(t_l+t_{l+1}+t_{l+2}+...+t_{k-2}+t_{k-1}+t_k)\times d_k,完成栈上面的产品的时间和乘以惩罚值即可。
    • dp[k+1][r]=u=k+1r(tu+tl+tl+1+...+tk1+tk)×dudp[k+1][r]=\sum\limits_{u=k+1}^{r}(t_u+t_l+t_{l+1}+...+t_{k-1}+t_{k})\times d_u
      =u=k+1rtu×du+(tu+tl+tl+1+...+tk1+tk)×u=k+1rdu=\sum\limits_{u=k+1}^{r}t_u \times d_u+(t_u+t_l+t_{l+1}+...+t_{k-1}+t_{k})\times \sum\limits_{u=k+1}^{r} d_u
      =dp[k+1][r]+(stk1stl1)×(sdrsdk)=dp[k+1][r]+(st_{k-1}-st_{l-1})\times (sd_{r}-sd_k)

      PS:上面的ststsdsd是前缀和。

    然后就可以愉快的dpdp了~~

  6. TaskTask 66:样例也太弱了,我写了一个全裸的KruskalKruskal还过了,于是我就dp[l][k1]dp[l][k-1]kkdp[k+1][r]dp[k+1][r]没有管。。。。。这题可以先选择那一条边用李牌,然后再KruskalKruskal一遍,这样试能拿45分?!正解是先KruskalKruskal,然后枚举每一条边,看看是否替换成李牌使整体更优。数据说明说有两个点是只用王牌无法联通这个图,但是我们一样可以进行KruskalKruskal,把没有连接的边设为INFINF就可以了,这样又可以顺利进行上面的替换比对。

使用社交账号登录

  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...