题意:给定N个字符串,如果A串的最后两个字母跟B串的前两个字母相同它们就能连接。

求一个由字符串组成的首尾相连的环,使(字符串总长度/字符串个数)最大。

n<=100000 len<=1000

思路:SPFA国家队论文题

赋所有dis[i]=0,跑最长路,如果某个元素入队次数超过点数就说明有正环。

使用DFS版本的SPFA做比BFS快10倍,为什么?

论文里高大上看不懂,蒟蒻用简单粗暴的方法想了一下:

如果某个环有K个点组成,BFS会从K个点中的某个点开始,每次都换一个点扩展一次,可能达到O(N*K^2)

DFS则只选其中的一个点不断扩展,K次就能使自己重新入队一次,这样就是O(N*K)

孰优孰劣一眼分明

以下是论文原文,用来证明初始值=0的正确性

 var q:array[..]of longint;
dis:array[..]of double;
head,vet,next,len,time,inq:array[..]of longint;
n,m,tot,i,x,y,k:longint;
l,r,mid,last,eps:double;
ch:ansistring; procedure add(a,b,c:longint);
begin
inc(tot);
next[tot]:=head[a];
vet[tot]:=b;
len[tot]:=c;
head[a]:=tot;
end; function spfa(k:double):boolean;
var u,top,i,e,v:longint;
begin
top:=;
for i:= to * do
begin
inq[i]:=; dis[i]:=; time[i]:=;
end;
for i:= to * do
if head[i]> then
begin
inc(top); q[top]:=i; inq[i]:=; inc(time[i]);
end;
while top> do
begin
u:=q[top]; dec(top);
inq[u]:=;
e:=head[u];
while e<> do
begin
v:=vet[e];
if dis[u]+len[e]-k>dis[v] then
begin
dis[v]:=dis[u]+len[e]-k;
if inq[v]= then
begin
inc(top); q[top]:=v; inq[v]:=;
inc(time[v]);
if time[v]>n then exit(true);
end;
end;
e:=next[e];
end;
end;
exit(false);
end; begin
assign(input,'poj2949.in'); reset(input);
assign(output,'poj2949.out'); rewrite(output);
while not eof do
begin
readln(n);
if n= then exit;
fillchar(head,sizeof(head),); tot:=;
for i:= to n do
begin
readln(ch); k:=length(ch);
x:=(ord(ch[])-ord('a'))*+ord(ch[])-ord('a')+;
y:=(ord(ch[k-])-ord('a'))*+ord(ch[k])-ord('a')+;
add(x,y,k);
end;
n:=;
for i:= to * do
if head[i]> then inc(n);
l:=; r:=; last:=;
eps:=1e-5;
while r-l>eps do
begin
mid:=(l+r)/;
if spfa(mid) then begin last:=mid; l:=mid; end
else r:=mid;
end;
if last<eps then writeln('No solution.')
else writeln(last::); end;
close(input);
close(output);
end.

【POJ2949】Word Rings(最大平均值环)的更多相关文章

  1. Word rings

    Word rings 题目描述 这道题就是想求出所有的环,然后在所有环中比较出环串的平均长度最长的那一个,然后就输出平均长度最长的,如果在一个点当中的样例中没有环的话我们就应该输出"No S ...

  2. 图论&数学:最小平均值环

    POJ2989:求解最小平均值环 最优化平均值的显然做法是01分数规划 给定一个带权有向图 对于这个图中的每一个环 定义这个环的价值为权值之和的平均值 对于所有的环,求出最小的平均值 这个结论怎么做的 ...

  3. deeplearning.ai 序列模型 Week 2 NLP & Word Embeddings

    1. Word representation One-hot representation的缺点:把每个单词独立对待,导致对相关词的泛化能力不强.比如训练出“I want a glass of ora ...

  4. 2019寒假练题计划——LibreOJ刷题计划 &《信息学奥赛一本通》提高版题目

    目录 2019.1.27 #10082. 「一本通 3.3 例 1」Word Rings 题意 思路 #10083. 「一本通 3.3 例 2」双调路径 题意 思路 #10084. 「一本通 3.3 ...

  5. 【转】最短路&差分约束题集

    转自:http://blog.csdn.net/shahdza/article/details/7779273 最短路 [HDU] 1548 A strange lift基础最短路(或bfs)★254 ...

  6. ACM一些题目

    Low Power 先二分答案,可以通过调整证明同一台机器选的两个芯片必然是提供能量数值相邻的两个.所以再贪心一下就可以了. 时间复杂度\(O(n \log n)\). Factors 假设\(k\) ...

  7. LOJ 一本通一句话题解系列:

    第一部分 基础算法 第 1 章 贪心算法 1):「一本通 1.1 例 1」活动安排:按照结束时间排序,然后扫一遍就可以了. 2):「一本通 1.1 例 2」种树:首先要尽量的往区间重叠的部分种树,先按 ...

  8. 转载 - 最短路&差分约束题集

    出处:http://blog.csdn.net/shahdza/article/details/7779273 最短路 [HDU] 1548    A strange lift基础最短路(或bfs)★ ...

  9. loj题目总览

    --DavidJing提供技术支持 现将今年7月份之前必须刷完的题目列举 完成度[23/34] [178/250] 第 1 章 贪心算法 √ [11/11] #10000 「一本通 1.1 例 1」活 ...

随机推荐

  1. 虚拟机VMBox的空间扩展和对加载进来资源的扩展

    来源于:http://www.linuxidc.com/Linux/2015-01/111186.htm 其中有点bug就自己重新复制黏贴下 VirtualBox虚拟机在使用的过程中,有时会遇到磁盘大 ...

  2. 如何使用NPOI 导出到excel和导入excel到数据库

    近期一直在做如何将数据库的数据导出到excel和导入excel到数据库. 首先进入官网进行下载NPOI插件(http://npoi.codeplex.com/). 我用的NPOI1.2.5稳定版. 使 ...

  3. VISIBLE、INVISIBLE、GONE的区别

    VISIBLE:设置控件可见 INVISIBLE:设置控件不可见 GONE:设置控件隐藏 而INVISIBLE和GONE的主要区别是:当控件visibility属性为INVISIBLE时,界面保留了v ...

  4. 解决Ubuntu输入正确密码后无法进入桌面,一直停留在登陆界面的问题

    在登陆界面按下Ctrl + Shift + F1 进入命令行模式,输入你的用户名和密码之后,敲入下面几行命令就可以了! $ cd - $ sudo chown 你的用户名:你的用户名 .Xauthor ...

  5. 39:第n小的质数

    39:第n小的质数    总时间限制:    1000ms    内存限制:    65536kB描述    输入一个正整数n,求第n小的质数.输入    一个不超过10000的正整数n.输出    ...

  6. Docker run命令详解 转

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 Usage: doc ...

  7. sqlserver2008 ,只能选C盘目录,不能选其它盘目录

    数据库sql2008安装后,无论备份或还原,只能看到C盘,手工输入路径,错误提示如下:尝试打开或创建物理文件 'D:\数据库\db.mdf' 时,CREATE FILE 遇到操作系统错误 5(拒绝访问 ...

  8. Tomcat应用中post方式传参数长度限制

    Tomcat应用中post方式传参数长度限制 jsp页面上是没有限制的,但是在tomcat服务器上有限制,Tomcat 默认的post参数的最大大小为2M, 当超过时将会出错,可以配置maxPostS ...

  9. Asp.net MVC 之过滤器

    整理一下MVC中的几种过滤器,以及每种过滤器是干什么用的 四种过滤器 1.AuthorizationFilter(授权过滤器) 2.ActionFilter(方法过滤器) 3.ResultFilter ...

  10. ADF_Data Binding系列3_使用Placeholder Data Control

    2015-02-16 Created By BaoXinjian