暑假测试 Day 5

问题 A: 单词检索

时间限制: 1 Sec  内存限制: 128 MB
提交: 634  解决: 96
[提交][状态][讨论版]

题目描述

小可可是学校图书馆的管理员,现在他接手了一个十分棘手的任务。

由于学校需要一些材料,校长需要在文章中检索一些信息。校长一共给了小可可N篇文章,每篇文章为一个字符串。现在,校长需要他找到这样的单词,它至少在这N篇文章中的M篇文章里出现过,且单词长度为L。可是,工作量十分庞大,但校长又急需小可可完成这项任务。

现在他向你求助,需要你编写程序完成这项艰巨的任务。

输入

第1行3个正整数N,M,L,表示文章的数目,单词至少出现在M篇文章中和每个单词的长度。

接下来N行,每行一个字符串,表示一篇文章。

输出

仅一行,表示满足检索条件的单词数。

样例输入

3 2 2noip istudycppimacppstudent

样例输出

5

提示

这5个单词分别为:st,tu,ud,pp,cp。


对于20%的数据有1≤N,M≤10;


对于60%的数据有1≤N,M≤100;


对于100%的数据有1≤N,M≤2000,L≤1000。每篇文章长度不大于1000,均有小写字母组成。



~~:

A了……

很容易想到hash……

把它看作一个进制数(进制最好>=26)然后再模,再哈希。

比较气的是同一个单词里面会有很多相同部分……一开始没想到想了好久。



问题 B: 无聊的游戏

时间限制: 1 Sec  内存限制: 256 MB  Special Judge
提交: 186  解决: 28
[ 提交][ 状态][ 讨论版]

题目描述

学校的运动会开始了,体能很菜的小可可没报任何比赛项目,于是和同学们玩一个十分无聊的游戏。

游戏在一个由n*n个方格组成的正方形棋盘上进行,首先在每个方格上均匀随机地填入1到m之间的正整数(每个方格填的数均不同),然后小可可均匀随机选出k个1到m的数字(可能选的数不在棋盘上),把它们出现在棋盘上的方格涂黑,设有R行被整行涂黑,有C列被整列涂黑,小可可便可以得到2^(R+C)分。

现在小可可想知道他的期望得分是多少,你能帮助他吗?

输入

第一行包含三个正整数n,m,k。

输出

仅一行包含一个实数,为期望得分,如果答案>10^99,就输出10^99,输出被认为正确当且仅当你的输出与标准输出的相对误差不超过10-6

样例输入

1 2 1

样例输出

2.5

提示

【样例解释】


在1*1的方格中填入1,选1或2,得分分别为22=4和20=1;在1*1的方格中填入2,选1或2,得分分别为20=1和22=4,所以期望得分为(4+1+1+4)/4=2.5。


【数据范围】


对于30%的数据,2≤n≤5,m≤10;


对于60%的数据,2≤n≤10,m≤200;


对于100%的数据,2≤n≤300, n2≤m100000, n≤k≤m。



~~:

5分……

完全不会做……输出1e99骗了5分。。

看了题解才知道是数学题……

可是这个推导。。。靠完全不懂的啊……

考场上怎么推出来。。。

A了的大牛%%%。。

题解网上也有……很复杂就不说了。。



问题 C: 圣诞树

时间限制: 2 Sec  内存限制: 256 MB
提交: 55  解决: 4
[ 提交][ 状态][ 讨论版]

题目描述

圣诞节到了,小可可送给小薰一棵圣诞树。这棵圣诞树很奇怪,它是一棵多叉树,有n个点,n-1条边。它的每个结点都有一个权值。小可可和小薰想用这棵树玩一个游戏。

定义(s,e)为树上从s到e的简单路径,我们可以记下在这条路径上经过的结点,定义这个结点序列为S(s,e)。

我们按照如下方法定义这个序列S(s,e)的权值G(S(s,e)):假设这个序列中结点的权值为Z0,Z1,…,Z(L-1),其中L为序列的长度,我们定义G(S(s,e))=Z0 × k0 + Z1 × k1 + … + Z(L-1) × k(L-1)

如果路径(s,e)满足G(S(s,e)) ≡ x (mod y)   ,那么这条路径属于小可可,否则这条路径属于小薰。小可可和小薰很显然不希望这个游戏变得那么简单。小薰认为如果路径(p1,p2)和(p2,p3)都属于他,那么路径(p1,p3)也属于他,反之如果路径(p1,p2)和(p2,p3)都属于小可可,那么路径(p1,p3)也属于小可可。然而这个性质并不总是正确的。所以小薰想知道到底有多少三元组(p1,p2,p3)满足这个性质。

小薰表示她看一眼就知道这道题怎么做了。你会吗?

输入

第一行包含四个整数n,y,k和x,其中n为圣诞树的结点数,y,k和x的含义如题目所示,题目保证y是一个质数。

第二行包含n个整数,第i个整数vi表示第i个结点的权值。

接下来n-1行,每行包含2个整数,表示树上的一条边。树的结点从1到n编号。

输出

包含一个整数,表示有多少整数组(p1,p2,p3)满足题目描述的性质。

样例输入

1 2 1 01

样例输出

1

提示

【样例2】














tree.in


tree.out


3 5 2 1


4 3 1


1 2


2 3


14


【样例3】














tree.in


tree.out


8 13 8 12


0 12 7 4 12 0 8 12


1 8


8 4


4 6


6 2


2 3


8 5


2 7


341


【数据规模】 


对于20%的数据,n ≤ 200;


对于50%的数据,n ≤ 104


对于100%的数据,1 ≤ n ≤ 105,2 ≤ y ≤ 109,1 ≤ k ≤ y,0 ≤ x < y。



~~:

0分……

气煞我也……

可以看到一开始的问题是比较烦躁的……但是可以预处理出是否合法,

然后要找多少条路径。

一开始如果预处理出一条边合法或否的情况,那么我们可以O(N^2)枚举找解决……

然而50分已经够了。。

但是其实可以看出来用树分治优化。。

每次排序后找和取模为某一值的点对数,,树分治轻松解决了……

时间复杂度N乘上2个log……

可怜了我……上了树分治结果爆了个蛋……

一是时间不够。。二是不够熟练把…………



!!:

总分105,

排名16,

总人数53.

第三题刚了好久没写出来还是很气……

只能说不够强吧。。




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值