博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
POJ2513 欧拉 + 字典树
阅读量:7121 次
发布时间:2019-06-28

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

POJ 2513

有N根木棒,一根木棒有2头,我们把每头涂色(相同或不同),如果2根木棒有相同颜色的一端就可以连接,颜色全部不同就不能连接,现在给你N根木棒以及它们的颜色,问最后能不能链接成1条链。

欧拉回路的问题,判断联通  以及  奇点个个数

输入为字符串,开始并不知道怎么弄,参考了下别人的报告,用字典树处理(学到的新东西),

 

#include
#include
#include
#include
#include
using namespace std;const int N = 15;const int M = 1000010;struct node{ int num; node* next[26];}*Head;char u[N], v[N];int num, n, top, total;bool flag;int pre[M], in[M];node pnode[M];int fin(int x) //递归+路径压缩{ return pre[x] == -1 ? x : (pre[x] = fin(pre[x]));}void Uni(int x, int y) //合并{ int root1 = fin(x); int root2 = fin(y); if(root1 != root2) pre[root2] = root1;}int insert(char str[]) //返回数组下标{ Head = &pnode[0]; int len = strlen(str); for(int i = 0; i < len; ++i) { int temp = str[i] - 'a'; if(Head->next[temp] == NULL) Head->next[temp] = &pnode[++num]; Head = Head->next[temp]; } if(Head->num == 0) Head->num = top++; return Head->num;}void init(){ num = total = 0; top = 1; flag = true; memset(in,0,sizeof(in));memset(pre,-1,sizeof(pre)); for(int i = 0; i
2) break; } // 奇点为0 环 ,奇点为2 链 puts(((total == 0 || total == 2) && flag == true) ? "Possible" : "Impossible"); return 0;}

  

转载于:https://www.cnblogs.com/Przz/p/5409842.html

你可能感兴趣的文章
<VirtualHost *:80>配置文件
查看>>
C++中的头文件
查看>>
EXCHANGE虚拟目录功能介绍
查看>>
ubuntu下rar文件解压后文件名乱码
查看>>
面试题整理_04
查看>>
CentOS 7.1.1503 varnish动静分离反代用户请求
查看>>
天坑-安装salt-api安装的正确姿势
查看>>
EAPS和RRPP比较
查看>>
解决uploadify在Firefox下丢失session的问题
查看>>
BGinfo配置
查看>>
比特币不是货币
查看>>
Maven多模块项目搭建
查看>>
Linux下手动挂载新增磁盘
查看>>
自定义单元格
查看>>
汇编实现时钟设置代码理解
查看>>
企业云存储 | 为什么越来越多的NAS用户转向企业云盘?
查看>>
linux查看某个时间段的日志
查看>>
Windows上的svn仓库迁移(visualSVN)
查看>>
java,andoid安卓去掉替换字符串中的空字符空格换行等
查看>>
微软的新一代web开发工具 - WebMatrix2
查看>>