pku 3159 Candies

来源:互联网 发布:圣经 知乎 编辑:程序博客网 时间:2024/06/06 04:29

狗题~~

做到我快抓狂,很明显一道差分约束题

因为没写过bellman,所以刚开始的时候用bellman写,超时。。理解

后来用spfa+queue ~~~还是超时了

后来看了discuss~~才知道别人用spfa+queue都是超时的,然后用spfa+stack才不超时。

然后我改成spfa+stack,一交,,,还是超时~~郁闷~~后来再详细看看discuss,估计数据是加强过,以前可以过的现在未必可以过

然后有人提出跟高效一点的办法,,,dijkstra+优先级队列,,,看到别人写了ac了, 自己也写stl写一个,。。无论怎么交都是tle  >_<

然后听说spfa+stack是可以过的,但是卡stl ,。绝望之际好像看到了新生,于是改用一个自己写的stack+vector的spfa。。。提交~依然tle~~~~

 

崩溃中~~这时候听一个师兄说他用了自己用链表实现的邻接表还有自己写的栈来写spfa,500MS ac了,,于是百般无奈下自己也这样做~~

终于以1450MS低空飞过。。真不知道为什么同样的实现别人的是500MS而自己的1450MS???郁闷中

 

超时代码:

 

AC 代码:

 

 



终于知道为什么这么慢了

原来用new开内存会很慢的,把我们链表要用到的节点一次性够就可以快很多了

原来1450MS, 一改之后500MS就可以了

原创粉丝点击