vinegar的专栏

其实昨天完会之后,还是很失落的。去不了现场赛一个假期的努力,没有了。其实今天做了搜索之后觉得去不了也是正常的,我的水平实在是太低了。这道BFS结果我弄成了DFS。。结果一直TLE 。。后来看了DISCUSS 才发现这道题是BFS。哎,很是失落。我的搜索几乎都没有做过。这道题的还是很有收获的。其中的用队列,VIS这个数组的应用。我一直RE。完全都要疯掉了。结果 我发现我的RE不是跟DISCUSS里面的数组开小了什么的,而是一个特别弱的错误。position-1可能等于-1 。哎,弱暴了。今天才发现自己离五月份已经有3.4个月了。可是我没有很大的进步想想挺悲哀的。今天看到YK的状态“明天就是网赛了,什么都还不会”,其实想想我与他人的差距,我不能去现场赛,其实很是正常我不应该感到不爽,或者是失落。能力问题,,悲伤自己的能力又有什么用。还不如用那些个时间去多做一些题。现在我是该把图论,数据结构那些东西给补起来了。我还是我服气,我还是想再战一年。无论最后的结果是什么,我只是想说:“我不会后悔现在我的决定。。。”

附代码:

#include<cstdio>#include<cstring>using namespace std;struct node{int step;int p;};node queue[500010];int h,r,i,n,k,vis[500010];main(){scanf("%d%d",&n,&k);queue[0].p=n;queue[0].step=0;h=0;r=1;memset(vis,0,sizeof(vis));vis[n]=1;if(n>k)printf("%d\n",n-k);else{//i=0;while(queue[h].p!=k && h<r){if(queue[h].p==k)break;//if(r<=100000){if(queue[h].p-1>=0 && queue[h].p-1<=200000 && queue[h].p>k && !vis[queue[h].p-1] ){queue[r].step=queue[h].step+1;queue[r++].p=queue[h].p-1;vis[queue[h].p-1]=1;}else{if(queue[h].p+1<=200000 && !vis[queue[h].p+1]){queue[r].step=queue[h].step+1;queue[r++].p=queue[h].p+1;vis[queue[h].p+1]=1;}if(queue[h].p-1>=0 && queue[h].p-1<=200000 && !vis[queue[h].p-1]){queue[r].step=queue[h].step+1;queue[r++].p=queue[h].p-1;vis[queue[h].p-1]=1;}if(2*queue[h].p<=200000 && !vis[2*queue[h].p]){queue[r].step=queue[h].step+1;queue[r++].p=2*queue[h].p;vis[2*queue[h].p]=1;}}//}h++;}//printf("%d\n",h);//printf("%d\n",queue[h].p);printf("%d\n",queue[h].step);}}

到尽头,也许快乐,或有时孤独,如果心在远方,

vinegar的专栏

相关文章:

你感兴趣的文章:

标签云: