不懂就问,为什么这个只有80分

P1515 旅行

问不是让你一写错就丢上来让大家帮你调
by Lstdo @ 2019-08-05 16:42:07


@[Lstdo](/space/show?uid=53930) 那我该注什么呢?第一次发讨论的帖子,以及刚学深搜 DFS那个函数有问题但是和我能看懂的题解对了很多遍不能理解 我的判断语句在外面而可以过的那个在里面,不明白有什么区别。 最后一个点 输入 /*999 1001 11 1000 4000 1001 2002 3003 4004 5005 6006 3001 4999 5999 */ 输出/ 1 / 我的程序搜索的时候回溯好像出了问题答案输出为0 它大概是在排序后走到1000之后错误,然后无法到1001以至于最后一个点WA 我问了我身边的人不过并没有得到解答才打算投上来的,如果哪里有问题,非常抱歉
by 王诗琪 @ 2019-08-05 17:37:53


@[王诗琪](/space/show?uid=35646) 调代码是自己的事情,也是能力的培养,以后的代码几百行就没人可以帮你了。 建议先自己尝试解决,调了几天都没有结果再发上来,并详细说明自己的思路、进展、可能的错误(这点您做得很好) 粗略地看了一下,可能是边界问题。如果没有问题,忽略这句话。
by Lstdo @ 2019-08-05 17:48:54


```cpp #include<bits/stdc++.h> using namespace std; int a,b,n,ans,x[40]={0,990,1010,1970,2030,2940,3060,3930,4060,4970,5030,5990,6010,7000},v[40]; void dfs(int k){ for(int i=1;i<=n+13;++i){ if(x[i]>=x[k]+a&&x[i]<=x[k]+b&&v[i]==0){ if(x[i]==7000){ ans++; return; } v[i]=1; dfs(i); v[i]=0; } else if(x[k]+a>=7000){ ans++; return; } } return; } int main(){ cin>>a>>b>>n; for(int i=13;i<=n+12;++i)cin>>x[i]; dfs(0); cout<<ans; return 0; } ```
by _really_myself_ @ 2022-07-24 17:04:41


最后一个案例需要将所有的旅馆位置从小到大排序
by jjj0523 @ 2023-02-27 21:15:20


|