玄学错误求助

CF940F Machine Learning

@[fighterkong](/user/547618) 举个例子 ```cpp solve(a[pr--]) 事实上传到函数里面的值是 a[pr] ,函数操作完后才会 pr-- 而 solve(pr--) ,这个时候 pr 已经减一了,然后才传进函数中的,所以肯定是有问题的。 ```
by RealKzos @ 2022-03-10 13:38:53


@[simpleton](/user/178803) 彳亍,我肤浅了
by fighterkong @ 2022-03-10 22:07:25


@[simpleton](/user/178803) 不是啊 ```cpp #include<iostream> #include<cstdio> using namespace std; int now=666; void solve(int x) { cout<<x<<endl; } int main() { solve(now--); return 0; } ``` 这个程序的输出是 $666$,说明它是先传入函数再减减的啊。
by Elegy_of_Green_Kite @ 2022-05-13 13:08:05


@[Elegy_of_Green_Kite](/user/242473) 彳亍,我肤浅了
by RealKzos @ 2022-05-13 14:25:32


@[fighterkong](/user/547618) 第一份之所以错了,是因为两份代码里面的 update 里面给 `add` 和 `del` 传入的都是数字而不是下标,而第一份代码的 `add` 和 `del` 传入的是下标,所以就错了 以及对于 `add(--l)` 和 `add(a[--l])` 这样的操作,都是先 `--l` 后调用函数,没毛病
by Hanoist @ 2022-05-19 10:49:27


以及 `add(a[l--])` 和 `add(l--)` 都是先调用函数后 `l--`
by Hanoist @ 2022-05-19 10:52:51


|