题目名称 | 525. [CTSC 2010]珠宝商 |
---|---|
输入输出 | jewelry.in/out |
难度等级 | ★★★★★ |
时间限制 | 8000 ms (8 s) |
内存限制 | 512 MiB |
测试数据 | 10 |
题目来源 | cqw 于2010-12-27加入 |
开放分组 | 全部用户 |
提交状态 | |
分类标签 | |
分享题解 |
通过:15, 提交:47, 通过率:31.91% | ||||
神威难藏于泪 | 100 | 0.000 s | 0.00 MiB | C++ |
Marshmello | 100 | 0.000 s | 0.00 MiB | C++ |
Archer | 100 | 0.000 s | 0.00 MiB | C++ |
ypr0708 | 100 | 0.000 s | 0.00 MiB | C++ |
yaopr0708 | 100 | 0.000 s | 0.00 MiB | C++ |
Lixj | 100 | 0.029 s | 3.51 MiB | C++ |
chenhongkan | 100 | 3.202 s | 30.07 MiB | C++ |
ljt | 100 | 5.652 s | 53.72 MiB | C++ |
AloneLight | 100 | 6.476 s | 51.46 MiB | C++ |
Owaski | 100 | 6.987 s | 47.52 MiB | C++ |
关于 珠宝商 的近10条评论(全部评论) | ||||
---|---|---|---|---|
18s的意思是,直接用$O(nm)$暴力过!?
FoolMike
2017-10-07 20:14
5楼
| ||||
我对不起习主席对不起人民啊我粗鄙我下流我不是人啊。。。
| ||||
不会啊
提莫
2014-09-04 20:54
3楼
| ||||
妈蛋,统统删号、。
GDFRWMY
2013-10-04 21:31
2楼
| ||||
竟然亵渎神题?该当何罪!
QhelDIV
2013-07-27 14:40
1楼
|
【问题描述】
Louis.PS是一名精明的珠宝商,他出售的项链构造独特,很大程度上是因为他的制作方法与众不同。每次Louis.PS到达某个国家后,他会选择一条路径去遍历该国的城市。在到达一个城市后,他会使用在这个城市流行的材料制作一颗珠子,并按照城市被访问的顺序将珠子串联做成项链,为了使制作出来的项链不会因为城市之间的竞争而影响销量,路径中同一个城市不会重复出现(因为如果项链中A城市的材料比B城市的材料使用的多,则项链在B城市的宣传可能会受到影响)。经过多年对消费者的调查,Louis.PS已经掌握了判断一条项链吸引消费者程度的方法,具体来说,Louis.PS经过调查得出了受消费者欢迎的项链的特征,并基于此制作了一个长项链(Louis.PS称之为特征项链)。对于一条待售的项链,这条项链在特征项链里出现的次数越多,这条项链就越受消费者欢迎。
考虑到现实情况的复杂性,我们对条件做出适当的简化。对于每个国家:在某城市间存在道路直接相连,对于两个不同的城市,有且仅有一条路径连接这两个城市 (即国家是连通的,且不存在一个环)。对于每个城市,我们用一个小写字母来表示在这个城市流行的材料类型。这样,我们就可以用一个仅包含小写字母的字符串来表示一条项链,我们将特征项链所对应的字符串称作特征字符串,设为EigenString[1..M],M为特征项链的长度。对于一条项链,假设其对应字符串为P[1..L],L为这条项链的长度。如果在一个正整数K,使EigenString[K..K+L-1]=P[1..L],称这条项链在特征项链中出现了一次。满足上述条件的正整数K的个数即为这条项链在特征项链中出现次数,记为Popularity(P)。
Louis.PS使用数学中的期望概念来评价一个国家是否适合珠宝的采集,对于一个包含N个城市的国家,令Stru,v表示沿着从u开始,至v结束的路径所得到的项链的对应字符串。
(Stru,v与Strv,u表示的串一般不相同),则Expectation=∑u,vPopularity(Stru,v)/N2
对于如下的例子(图中实线表示两端点的国家有直接道路相连):
N=3,所流行的材料类型分别为a,a,b。
EigenString=”abaab”
Str(3,1)=ba Popularity(ba)=1
Str(1,1)=a Popularity(ba)=3
Str(1,2)=aa Popularity(ba)=1
Str(1,3)=ab Popularity(baa)=2
Str(2,1)=aa Popularity(ba)=1
Str(2,2)=a Popularity(ba)=3
Str(2,3)=aab Popularity(ba)=1
Str(3,1)=ba Popularity(ba)=1
Str(3,2)=baa Popularity(baa)=1
Str(3,3)=b Popularity(b)=2
Expectation=(3+1+2+1+3+1+1+1+2)/9=5/3
对于一个国家,Louis.PS想知道其Expectation的值,但苦于计算期望的工作量太大。作为珠宝店的学徒,你当然不愿放过难得在老板面前展示自己的机会。
【输入文件】
输入文件jewelry.in,第一行包含两个整数N,M,表示城市个数及特征项链的长度。
接下来的N-1行,每行两个整数x,y 表示城市x与城市y有直道接路相连。城市由1~N进行编号。
接下来的一行,包含一个长度为N,仅包含小写字母的字符串,第i位的字符表示在城市i流行的原料类型。
最后一行,包含一个长度为M,仅包含小写字母的字符串,表示特征字符串。
【输出文件】
输出文件jewelry.out,仅包含一个整数,为N2*Expectation。
【样例输入】
3 5
1 2
1 3
aab
abaab
【样例输出】
15
【数据规模】
有20%的数据,满足M<= 1000;
有40%的数据,满足N≤8000,M≤50000;
对于100%的数据,N,M≤50000。