pku 3159 Candies

12 篇文章 0 订阅

狗题~~

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

因为没写过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就可以了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值