poj The Settlers of Catan( 求图中的最长路 小数据量 暴力dfs搜索(递归回溯))
| Time Limit: 1000MS | Memory Limit: 65536K | |
| Total Submissions: 1123 | Accepted: 732 |
Description
You are employed by a software company that just has decided to
develop a computer version of this game, and you are chosen to implement
one of the game's special rules:
When the game ends, the player who built the longest road gains two extra victory points.
The problem here is that the players usually build complex road
networks and not just one linear path. Therefore, determining the
longest road is not trivial (although human players usually see it
immediately).
Compared to the original game, we will solve a simplified problem
here: You are given a set of nodes (cities) and a set of edges (road
segments) of length 1 connecting the nodes.
The longest road is defined as the longest path within the network
that doesn't use an edge twice. Nodes may be visited more than once,
though.
Example: The following network contains a road of length 12.
o o--o o
\ / \ /
o--o o--o
/ \ / \
o o--o o--o
\ /
o--o
Input
The first line of each test case contains two integers: the number
of nodes n (2<=n<=25) and the number of edges m (1<=m<=25).
The next m lines describe the m edges. Each edge is given by the numbers
of the two nodes connected by it. Nodes are numbered from 0 to n-1.
Edges are undirected. Nodes have degrees of three or less. The network
is not neccessarily connected.
Input will be terminated by two values of 0 for n and m.
Output
Sample Input
3 2
0 1
1 2
15 16
0 2
1 2
2 3
3 4
3 5
4 6
5 7
6 8
7 8
7 9
8 10
9 11
10 12
11 12
10 13
12 14
0 0
Sample Output
2
12
代码:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <algorithm> using namespace std; int map[30][30];
bool vis[30][30];
int n, m;
int MAX; void dfs(int dd, int num )
{
for(int i=0; i<n; i++)
{
if(map[dd][i]==1 && vis[dd][i]==0 )
{
vis[dd][i]=1; vis[i][dd]=1;
dfs(i, num+1);
vis[dd][i]=0; vis[i][dd]=0;
}
}
if(num>MAX) MAX=num;
} int main()
{
int i, j;
int u, v;
while(scanf("%d %d", &n, &m)!=EOF)
{
if(n==0 && m==0 )break;
memset(map, 0, sizeof(map )); for(i=0; i<m; i++)
{
scanf("%d %d", &u, &v);
map[u][v]=1; map[v][u]=1;
}
MAX=-1;
int cnt;
for(i=0; i<n; i++)
{
cnt=0;
memset(vis, false, sizeof(vis));
dfs(i, 0);
//if(cnt>MAX) MAX=cnt;
}
printf("%d\n", MAX );
}
return 0;
}
poj The Settlers of Catan( 求图中的最长路 小数据量 暴力dfs搜索(递归回溯))的更多相关文章
- Floyd-Warshall求图中任意两点的最短路径
原创 除了DFS和BFS求图中最短路径的方法,算法Floyd-Warshall也可以求图中任意两点的最短路径. 从图中任取两点A.B,A到B的最短路径无非只有两种情况: 1:A直接到B这条路径即是最短 ...
- HDU 3249 Test for job (有向无环图上的最长路,DP)
解题思路: 求有向无环图上的最长路.简单的动态规划 #include <iostream> #include <cstring> #include <cstdlib ...
- hdu 5952 Counting Cliques 求图中指定大小的团的个数 暴搜
题目链接 题意 给定一个\(n个点,m条边\)的无向图,找出其中大小为\(s\)的完全图个数\((n\leq 100,m\leq 1000,s\leq 10)\). 思路 暴搜. 搜索的时候判断要加进 ...
- POJ 3660 Cow Contest(求图的传递性)
题意: 给定n头牛, 然后有m个比较, 求出有多少头牛能确定自己的排名. 分析: 假设有一头牛a, 有ki头牛强于自己, kj头牛弱于自己, ki + kj == n-1时, 那么这头牛的排名就确定了 ...
- hdu4587 Two Nodes 求图中删除两个结点剩余的连通分量的数量
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4587 题目给了12000ms,对于tarjan这种O(|V|+|E|)复杂度的算法来说,暴力是能狗住的 ...
- 编程之美 set 7 求数组中的最长递增子序列
解法 1. 假设在目标数组 array[] 的前 i 个元素中, 最长递增子序列的长度为 LIS[i] 那么状态转移方程为 LIS[i] = max(1, LIS[k]+1) array[i+1] & ...
- poj 1679 The Unique MST 【次小生成树+100的小数据量】
题目地址:http://poj.org/problem?id=1679 2 3 3 1 2 1 2 3 2 3 1 3 4 4 1 2 2 2 3 2 3 4 2 4 1 2 Sample Outpu ...
- splunk中mongodb作用——存用户相关数据如会话、搜索结果等
About the app key value store The app key value store (or KV store) provides a way to save and retri ...
- SpringBoot中Post请求提交富文本数据量过大参数无法获取的问题
yml增加配置 # 开发环境配置 server: tomcat: max-http-form-post-size: -1
随机推荐
- Scala 中Array,List,Tuple的差别
尽管学了一段时间的Scala了,可是总认为基础不是太扎实,还有非常多的基础知识比較模糊.于是近期又打算又一次学习基础. Scala中的三种集合类型包含:Array,List,Tuple.那么究竟这三种 ...
- bat文件转换为exe文件
批处理文件转换为exe文件(简单的处理文件),点击下载 使用超简单的了,不多说.
- 管理voting disks
管理voting disks 一.关于voting disk 的一些必需要知道的东西: 11g 曾经我们能够使用dd 命令来备份voting disk ,可是在11g 以后 oracle 不再支 ...
- zabbix agent shell一键安装脚本
#!/bin/bash basepath=$(cd ``; pwd) SHELL_DIR="${basepath}/shell" PACKAGE_DIR="${basep ...
- nodejs读取配置文件
INI.js(模块) var eol = process.platform === "win32" ? "\r\n" : "\n" func ...
- Pyqt4 360界面风格皮肤实现
前言 最近用Pyqt做了软件界面,始终觉得windows风格不太好看,虽然数字公司的行为有争议,但是也不影响我欣赏360卫士的界面风格. 声明 首先声明,此项工作并非原创,而是基于这位zhuyeqin ...
- 分区容量大于16TB的格式化
File systems do have limits. Thats no surprise. ext3 had a limit at 16 TB file system size. If you n ...
- java中Executor、ExecutorService、ThreadPoolExecutor介绍
源码非常简单,只有一个execute(Runnable command)回调接口 public interface Executor { /** * Executes the given c ...
- FileOutPutStream 的写操作
package xinhuiji_day07; import java.io.File;import java.io.FileNotFoundException;import java.io.File ...
- request 请求转发
package request; import java.io.IOException;import javax.servlet.ServletException;import javax.servl ...