https://leetcode.com/problems/race-car/description/

1. BFS剪枝 0<=current position<=2*target。为什么2*target有点不太明白

 class Solution {
public:
int dp[];
struct Node{
int pos;
int speed;
int step;
Node(int p,int s,int ss){
pos=p;
speed=s;
step=ss;
}
};
int racecar(int target) {
queue<Node> Q;
set<pair<int,int> > vis;
Q.push(Node(,,));
vis.insert({,});
while(!Q.empty()){
Node q=Q.front();
Q.pop();
if(q.pos==target) return q.step;
if(vis.find({q.pos+q.speed,q.speed*})==vis.end()&&q.pos+q.speed>=&&q.pos+q.speed<=*target){
vis.insert({q.pos+q.speed,q.speed*});
Q.push(Node(q.pos+q.speed,q.speed*,q.step+));
}
if(vis.find({q.pos,q.speed>?-:})==vis.end()){
vis.insert({q.pos,q.speed>?-:});
Q.push(Node(q.pos,q.speed>?-:,q.step+));
}
}
return -;
}
};

2. Dijkstra,官方题解,没太看懂

3. DP

 class Solution {
public:
int dp[];
int racecar(int target) {
if(dp[target]!=) return dp[target];
int bound;
for(int i=;i<;i++){
if((<<i)-==target) return dp[target]=i;
if((<<i)->target){
bound=i;
break;
}
}
dp[target]=bound++racecar((<<bound)--target);
for(int i=;i<bound-;i++){
dp[target]=min(dp[target],bound-++i++racecar(target-(((<<(bound-))-)-((<<i)-))));
}
return dp[target];
}
};

最新文章

  1. PHP开发笔记:二维数组根据某一项来进行排序
  2. 解决虚拟机VMware安装CentOS7.0识别不到网卡
  3. Linux内核--网络栈实现分析(四)--网络层之IP协议(上)
  4. C++中的vector
  5. 第一个android应用程序
  6. Google Chrome 55 Released – Install on RHEL/CentOS 7/6 and Fedora 25-20
  7. Cannot start service SPUserCodeV4 on computer
  8. Linux软件
  9. FMDB将对象放进数据库[二](使用runtime)
  10. [置顶] IOS培训资料
  11. Jenkins中关于一些插件的使用方法
  12. Java基础——第一个记事本代码与Java注释
  13. 由于losf引起的pxc启动报错处理
  14. Nginx入门案例(Mac版)
  15. DjangoRestFramework实践笔记
  16. --- Android 设置为A2DP 接收器
  17. kafka为何需要High Available
  18. sql查询条件为空的另类写法o( ̄▽ ̄)d
  19. oracle substr函数
  20. oozie JAVA Client 编程提交作业

热门文章

  1. Codeforces Round #316 (Div. 2) D Tree Requests
  2. webpack 使用总结
  3. CSS - position属性小结
  4. Dev-Cpp 5.11 c++编译器下载
  5. 将find过滤添加到数组
  6. linux系统产生随机数的6种方法
  7. 解决 mounting /dev/block/mmcblk0p1 on /sdcard failed
  8. Python函数的装饰器
  9. 多线程并发情况下 重复insert问题
  10. C++中 #ifdef 和#endif的作用