1007. 小黄车
来源:互联网 发布:电脑网络不通怎么检查 编辑:程序博客网 时间:2024/06/05 05:52
Description
随着共享经济的兴起,大学城如今到处可见ofo小黄车. 小左现在打算每天都骑小黄车从宿舍去实验室. 假设大学城的地图可以简化为一个有向图,图中有N个地点(节点),用0到N-1进行编号,有些地点之间存在有向的道路(有向边). 小左的宿舍所在地点编号为0,实验室所在地点编号为N-1. 小左希望为连续的M天规划线路,使得每天从宿舍到实验室,都至少会经过一条之前没有走过的道路(有向边). 小左想知道M的最大值,你能帮助他么?
请实现下面Solution类中的countPath函数,完成上述功能.
参数G: N*N(2 <= N <= 50)邻接矩阵,如果地点i到地点j之间有道路,则G[i][j] = 1;否则G[i][j] = 0. G[i][i]的值总是为0.
返回值:M的最大值. 如果不存在满足要求的路径则返回0.
class Solution {
public:
int countPaths(vector<vector<int>> G) {
};
例1:
G = {{0, 1}, {1, 0}},返回值为2,因为第1天:0 --> 1,第2天 0 --> 1 --> 0 --> 1. 虽然小左第2天兜了一下圈,但他确实走了一条第1天没有走过的边1 --> 0.
例2:
G = {{0, 1, 1}, {1, 0, 1}, {1, 0, 0}},返回值为4.
第1天:0 --> 2
第2天:0 --> 2 --> 0 --> 2
第3天:0 --> 1 --> 2
第4天:0 --> 1 --> 0 --> 1 --> 2
例3:
G = {{0, 1, 0}, {1, 0, 0}, {0, 0, 0}},返回值为0.
学委写了,链接如下。。。http://blog.csdn.net/sysu_xiamengyou/article/details/73521901
class Solution {private:vector<bool> vis, rvis;vector<int> Q;public:int countPaths(vector<vector<int>> G) {int res, n, p, q, u, v, i, j;n = G.size();vis.resize(n);rvis.resize(n);Q.resize(n);for (i=0; i<n; i++) vis[i] = false;Q[0] = 0;vis[0] = true;p = 0;q = 1;while (p < q){u = Q[p];for (i=0; i<n; i++)if (G[u][i] && !vis[i]){Q[q++] = i;vis[i] = true;}p ++;}if (!vis[n-1]) return 0;for (i=0; i<n; i++) rvis[i] = false;Q[0] = n - 1;rvis[n-1] = true;p = 0;q = 1;while (p < q){u = Q[p];for (i=0; i<n; i++)if (G[i][u] && !rvis[i]){Q[q++] = i;rvis[i] = true;}p ++;}res = 0;for (i=0; i<n; i++) for (j=0; j<n; j++) if (G[i][j] && vis[i] && rvis[i] && vis[j] && rvis[j]) res ++;for (i=0; i<n; i++) if (vis[i] && rvis[i]) res --;return res + 2;}};
阅读全文
0 1
- 1007. 小黄车
- 【Sicily】1007. 小黄车
- [算法机试模拟题]1007.小黄车
- YTU.3179: 小黄车ofo
- ofo(小黄车)项目分析
- 1007. Rails
- 1007. To and Fro
- 1007. To and Fro
- 1007. To and Fro
- 1007. Maximum Subsequence Sum
- 1007. To and Fro
- 1007. Sorting Algorithm
- 1007.奥运排序问题
- 1007. To and Fro
- 1007.Maximum Subsequence Sum
- 1007. 素数对猜想
- 1007. Maximum Subsequence Sum
- 1007. 素数对猜想
- java:String使用equals和==比较的区别
- 深度强化学习中的DQN系列算法
- JSP&Servlet6(二) --- JSP标准标签
- gflags学习
- hdu 2196 Computer(树dp)
- 1007. 小黄车
- 拦截器
- Bash Scripts ---part1
- 多线程并发执行任务,取结果归集。终极总结:Future、FutureTask、CompletionService、CompletableFuture
- Swing 中如何获取JTestField中的内容 并且 点击按钮输出
- 转发与重定向的区别
- 文章标题
- 一个屌丝程序猿的人生(四)
- CSS中背景图片定位方法