HACK70pts&请求修改或撤下题解
  • 板块P1174 打砖块
  • 楼主liugh_
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/11/5 00:42
  • 上次更新2024/11/5 12:55:33
查看原帖
HACK70pts&请求修改或撤下题解
544520
liugh_楼主2024/11/5 00:42

WA on #8#9#10 可能的原因。

如果您和我都是设 f(j,0/1)f(j,0/1) 为已发射 jj 颗子弹,先前是 (1)(1)(0)(0) 取过末尾为 N 的一个物品,那么有一些坑点需要注意:

  • 不要压维而应该滚动数组,而且滚动时不要清空而是拷贝(也可能是我太弱了)
  • f(0,0)f(0,0) 应设为 -\infty
  • int tp=c[i][k]-c[i][k-1];
    if(j+k-c[i][k]<=m){
      tomax(g[0][j+k-c[i][k]],f[0][j]+a[i][k]); // 不能漏掉这个转移(对应下面的hack)
      tomax(g[tp][j+k-c[i][k]],f[0][j]+a[i][k]);
      if(j+k-c[i][k-1]<=m)
        tomax(g[tp][j+k-c[i][k]],f[1][j]+a[i][k]);
    }
    hack:
    5 3 4
    1 Y 5 Y 2 Y 
    3 N 1 Y 4 N 
    2 N 3 Y 2 N 
    1 N 2 Y 5 Y 
    1 N 2 Y 3 N 
    ans:
    30
    

同时,这篇题解不能通过此题第11个点以及上面我提供的hack,请求修改或撤下题解。

2024/11/5 00:42
加载中...