社区讨论
请使用左闭右开区间
P3147[USACO16OPEN] 262144 P参与者 7已保存回复 9
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 9 条
- 当前快照
- 1 份
- 快照标识符
- @lo1sqq2o
- 此快照首次捕获于
- 2023/10/23 02:22 2 年前
- 此快照最后确认于
- 2023/11/03 02:59 2 年前
不能写为左闭右闭区间的原因是假如
f[i-1][j] 根本就不存在,它的值是 ,按照左闭右开的写法这样就会导致左端点为 从而返回值是 ,这样是正确的,因为不存在根本就无法转移。而按照左闭右闭的写法的话就会导致明明是 却认为这是上个区间的右端点,导致下个区间的左端点变成1,从而返回错误答案。
错误代码:
CPPf[a][i]=i;
......
if(!f[i][j])
f[i][j]=f[i-1][f[i-1][j]+1];
正确代码:
CPPf[a][i]=i+1;
......
if(!f[i][j])
f[i][j]=f[i-1][f[i-1][j]];

错误输出:左图。
正确输出:右图。
回复
共 9 条回复,欢迎继续交流。
正在加载回复...