思路求证伪

P4157 [SCOI2006] 整数划分

WA精光了
by 览遍千秋 @ 2020-01-10 19:52:48


@[expect](/user/28910) 很正确鸭,你再处理下细节
by yummy @ 2020-01-10 20:03:10


@[expect](/user/28910) ~~ca精光?~~
by xuShengzhe @ 2020-01-10 20:04:49


@[expect](/user/28910) ~~zwh说在外面出卖他的,头一号就是你~~
by xuShengzhe @ 2020-01-10 20:06:31


x=14。 按你的思路,应该是分成7+7,然后递归求解。7求出来应该是12,然后12x12=144。 实际上应该分出来3,3,3,3,2,答案是162。 证伪只需要一个反例。证毕。 讲道理吧。你不能保证分出来的结果一定能被分成两个x/2,还有跨两半的情况。
by 可爱的Flandre酱 @ 2020-01-10 20:08:49


我把Int换成long long了之后试了一下。的确是输出144的。 您的代码(加了点东西) ~~memery拼错了,应该是memory,不知道有意无意~~ ``` #include <bits/stdc++.h> using namespace std; #define int long long int memery[100000+100]; int dfs(int x){ if(x<=3){ int res; if(x==2) res=2; else if(x==3) res=3; return res; } if(memery[x]!=0) return memery[x]; if(x&1) memery[x]=dfs(x/2)*dfs(x/2+1); else memery[x]=dfs(x/2),memery[x]=memery[x]*memery[x]; return memery[x]; } #undef int //long long int main() { cout<<dfs(14)<<endl; } ``` 但我的标程(大号LightningUZ的代码)告诉我答案的确是162。
by 可爱的Flandre酱 @ 2020-01-10 20:17:22


你为什么不问问神奇的海螺呢?
by 可爱的Flandre酱 @ 2020-01-10 20:17:43


@[DaRk_MasTeR](/user/106248) Thanks
by 览遍千秋 @ 2020-01-10 20:29:12


|