为什么只有60分?! ——蒟蒻求助

P1064 [NOIP2006 提高组] 金明的预算方案

@[过_路_人](/user/363972) emmm ```cpp if (!q) { c[cnt][0] = v; w[cnt][0] = v * p; cnt++; } else { if (c[q][1]){ c[q][2] = v; w[q][2] = v * p; } else { c[q][1] = v; w[q][1] = v * p; } ``` 这里,主件和附件就对应不上了,大概是这样的: $q$和组不是对应的,$q$是第$q$个物品,而不是某个$cnt$,并非是第$q$个主件
by 圣嘉然 @ 2020-10-27 20:14:59


@[过_路_人](/user/363972) 可以这么搞 ```cpp if (!q) { c[i][0] = v; w[i][0] = v * p; gro[cnt++]=i; } ``` 记录一下第`cnt`组的主件,遍历的时候 ```cpp for (int t = 1; t <= cnt; t++) { int i=gro[t]; ``` 后面就不用改了(因为还是$i$代替某一组的主件编号
by 圣嘉然 @ 2020-10-27 20:17:03


@[圣嘉然](/user/110997) 感谢
by 智子 @ 2021-10-11 17:59:26


|