【leetcode最短路】818. Race Car
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];
}
};
【leetcode最短路】818. Race Car的更多相关文章
- LeetCode 818. Race Car
原题链接在这里:https://leetcode.com/problems/race-car/ 题目: Your car starts at position 0 and speed +1 on an ...
- 818. Race Car
Your car starts at position 0 and speed +1 on an infinite number line. (Your car can go into negati ...
- All LeetCode Questions List 题目汇总
All LeetCode Questions List(Part of Answers, still updating) 题目汇总及部分答案(持续更新中) Leetcode problems clas ...
- leetcode hard
# Title Solution Acceptance Difficulty Frequency 4 Median of Two Sorted Arrays 27.2% Hard ...
- [LeetCode] Race Car 赛车
Your car starts at position 0 and speed +1 on an infinite number line. (Your car can go into negati ...
- LeetCode Triangle 三角形(最短路)
题意:给一个用序列堆成的三角形,第n层的元素个数为n,从顶往下,每个元素可以选择与自己最近的两个下层元素往下走,类似一棵二叉树,求最短路. [], [,4], [6,,7], [4,,8,3] 注意: ...
- [LeetCode] Network Delay Time 网络延迟时间——最短路算法 Bellman-Ford(DP) 和 dijkstra(本质上就是BFS的迭代变种)
There are N network nodes, labelled 1 to N. Given times, a list of travel times as directed edges ti ...
- leetCode 64.Minimum Path Sum (最短路) 解题思路和方法
Given a m x n grid filled with non-negative numbers, find a path from top left to bottom right which ...
- 【LeetCode】堆 heap(共31题)
链接:https://leetcode.com/tag/heap/ [23] Merge k Sorted Lists [215] Kth Largest Element in an Array (无 ...
随机推荐
- Caused by: java.lang.NoClassDefFoundError: com/sun/tools/javac/util/List at
折腾了一下的时间,都没有找到解决的方案,在网上搜了一下答案都是让清理编译环境和重新打包之类的.就这样折腾一下,还没有解决问题.之所以会抛出找不到类的问题,需要排查你使用这个包的类是否存在,存在之后 查 ...
- ActiveAndroid问题no such table解决总结
android.database.sqlite.SQLiteException: no such table at android.database.sqlite.SQLiteConnection ...
- 在hibernate框架中配置显示sql语句
使用Hibernate的框架开发时,可在Hibernate.cfg.xml中加上 <property name="hibernate.show_sql">true< ...
- tomcat中如何禁止和允许主机或地址访问
1.tomcat中如何禁止和允许列目录下的文件 在{tomcat_home}/conf/web.xml中,把listings参数设置成false即可,如下: <servlet>...< ...
- 洛谷 P1120 小木棍[数据加强版]
这道题可能是我做过的数据最不水的一道题-- 题目传送门 这题可以说是神剪枝,本身搜索并不算难,但剪枝是真不好想(好吧,我承认我看了题解)-- 剪枝: 用桶来存储木棍 在输入的时候记录下最长的木棍和最短 ...
- P2261 bzoj1257 [CQOI2007]余数求和
一道数论分块首先这类的求和写一下公式∑n%i=∑n-i*(n/i)= ∑n-∑i*(n/i) 前面的好求所以 ans=nk+∑k*(k/i);于是进行分块这里总结一下只要出现除法∑就进行分块由阿尔贝和 ...
- Leetcode 9 回文数Palindrome Number
判断一个整数是否是回文数.回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数. 示例 1: 输入: 121 输出: true 示例 2: 输入: -121 输出: false 解释: 从左向 ...
- NOIP 成绩
这道题中点是在小数上,因为成绩可能是:“95.5 87.7……”所以我们就要用:printf和scanf这样就可以控制小数了!!! code: #include<bits/stdc++.h> ...
- 学习笔记(_huaji_)
假如我没有见过太阳,我也许会忍受黑暗. 如果我知道自己会在哪里死去,我就永远都不去那儿.失败的经历,其实也有它的价值. 人的过失会带来错误,但要制造真正的灾难还得用计算机. 嘴角微微上扬已不复当年轻狂 ...
- datetime模块,random模块
6.10自我总结 1.datetime模块(用于修改日期) import datetime print(datetime.datetime.now(),type(datetime.datetime.n ...