2012年3月29日

poj 2230 Watchcow

摘要: // 题意: n个顶点,m条无向边,图连通,从顶点1出发,要将每条边恰好遍历两遍,而且要以不同的方向,// 最后还要回到顶点1,求出这样的路线, 题目保证有解.// 思路: 欧拉回路问题,可以将无向边转换为有向边,// 即将每条边拆成两条反向边,使其双向连通,g[a][b]=g[b][a]=1,// 然后根据建立的有向图求解该图的欧拉回路.// 注意用邻接表建图,邻接矩阵会 MLE#include<iostream> // 欧拉回路,无向图转有向图#include<string>#include<algorithm>using namespace std;# 阅读全文

posted @ 2012-03-29 20:56 sysu_mjc 阅读(327) 评论(0) 推荐(0) 编辑

poj 1386 Play on Words

摘要: /* 题意: 有一些单词,排列这些单词,要求前一个单词的最后一个字母与后一个单词的第一个字母相同。 问能否对所有单词进行排列 思路: 把单词的第一个字母和最后一个字母作为点,由第一个字母向最后一个字母连一条有向边, 问题转化为判断一个有向图是否存在欧拉道路 有向图存在欧拉道路的条件: 在忽略边的方向后,图必须是连通的,同时最多只能有两个点的入度不等于出度, 而且必须是其中一个点的出度刚好比入度大1(把它作为起点),另一个的入度比出度大1(把它作为终点).*/#include <iostream> //有向图的欧拉道路using namespace std;int in[26],o. 阅读全文

posted @ 2012-03-29 16:25 sysu_mjc 阅读(399) 评论(0) 推荐(0) 编辑

poj 1816 Wild Words

摘要: // 题意: 给出N(<=100000)个带通配符(?和*)的模式串, M(<=100)个字符串,// '*'可代替0个或多个字母,'?'可代替一个字母,问每个字符串能匹配到哪些模式串,按顺序给出 // 模式串长度不超过6, 要匹配的字符串长度不超过20.// 思路: 用trie树动态构建模式串,然后再dfs来匹配,// 要注意若静态建树会 MLE ,因为每个节点都含有vector<int>#include <iostream> // trie树, 含通配符的多字符串匹配#include <string>#incl 阅读全文

posted @ 2012-03-29 15:15 sysu_mjc 阅读(407) 评论(0) 推荐(0) 编辑

导航