博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
NYOJ 99单词拼接(有向图的欧拉(回)路)
阅读量:6581 次
发布时间:2019-06-24

本文共 1615 字,大约阅读时间需要 5 分钟。

/*   NYOJ 99单词拼接:   思路:欧拉回路或者欧拉路的搜索!   注意:是有向图的!不要当成无向图,否则在在搜索之前的判断中因为判断有无导致不必要的搜索,以致TLE!   有向图的欧拉路:abs(In[i] - Out[i])==1(入度[i] - 出度[i])的节点个数为两个    有向图的欧拉回路:所有的节点都有In[i]==Out[i] */ #include
#include
#include
#include
using namespace std;struct node{ char s[35]; int first, end;};bool cmp(node a, node b){ return strcmp(a.s, b.s) <0;}node nd[1005];int In[30], Out[30];int order[1005], vis[1005]; int n;int fun(){ memset(vis, 0, sizeof(vis)); int i; int last=-1; int first=-1; //有向图欧拉路的判断 for(i=0; i<26; ++i) { if(In[i]!=Out[i]) { //首先入度和出度之差的绝对值为 1的节点的要么没有,要么只有两个(没有欧拉回路,只有欧拉路)! if(Out[i]-In[i]==1 && first==-1) first=i; else if(Out[i]-In[i]==-1 && last==-1) last=i; else return -1; } } if(first>-1 && last>-1) //这种情况是 欧拉路的搜索 ! return first; else if(first==-1 && last==-1) //这种是欧拉回路的搜索! { for(i=0; i<26; ++i) if(In[i]!=0) return i; } else return -1; }bool dfs(int st, int cnt){ if(cnt == n) return true; int ld=0, rd=n-1; while(ld<=rd){ int mid=(ld+rd)/2; if(nd[mid].first
st) return false; for(int i=m; i
st) return false; if(nd[i].first == st){ vis[i]=1; order[cnt]=i; if(dfs(nd[i].end, cnt+1)) return true; vis[i]=0; } } return false;}int main(){ int t; scanf("%d", &t); while(t--){ scanf("%d", &n); memset(In, 0, sizeof(In)); memset(Out, 0, sizeof(Out)); for(int i=0; i

转载地址:http://sisno.baihongyu.com/

你可能感兴趣的文章
在JS中使用Ajax
查看>>
Jolt大奖获奖图书
查看>>
ubuntu 16.04 安装PhpMyAdmin
查看>>
设置分录行按钮监听事件
查看>>
java并发库之Executors常用的创建ExecutorService的几个方法说明
查看>>
23种设计模式(1):单例模式
查看>>
socket 编程入门教程(五)UDP原理:4、“有连接”的UDP
查看>>
Jquery获取iframe中的元素
查看>>
Laravel 学习笔记5.3之 Query Builder 源码解析(下)
查看>>
Struts2简单入门实例
查看>>
2012CSDN年度博客之星评选http://vote.blog.csdn.net/item/blogstar/xyz_lmn
查看>>
BZOJ 4037 [HAOI2015]数字串拆分 ——动态规划
查看>>
SpringBoot实战总汇--详解
查看>>
2018年7月1日笔记
查看>>
尝试使用iReport4.7(基于Ubuntu Desktop 12.04 LTS)
查看>>
动态规划:金矿模型
查看>>
子元素应该margin-top为何会影响父元素【转】
查看>>
AJAX 状态值(readyState)与状态码(status)详解
查看>>
BZOJ3668:[NOI2014]起床困难综合症(贪心)
查看>>
LightOJ 1245(Harmonic Number (II))
查看>>