问题 A: 单词检索
时间限制: 1 Sec 内存限制: 128 MB提交: 634 解决: 96
[提交][状态][讨论版]
题目描述
小可可是学校图书馆的管理员,现在他接手了一个十分棘手的任务。
由于学校需要一些材料,校长需要在文章中检索一些信息。校长一共给了小可可N篇文章,每篇文章为一个字符串。现在,校长需要他找到这样的单词,它至少在这N篇文章中的M篇文章里出现过,且单词长度为L。可是,工作量十分庞大,但校长又急需小可可完成这项任务。
现在他向你求助,需要你编写程序完成这项艰巨的任务。
输入
第1行3个正整数N,M,L,表示文章的数目,单词至少出现在M篇文章中和每个单词的长度。
接下来N行,每行一个字符串,表示一篇文章。
输出
仅一行,表示满足检索条件的单词数。
样例输入
样例输出
提示
这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*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≤m≤100000, 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)满足题目描述的性质。
样例输入
样例输出
提示
【样例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.
第三题刚了好久没写出来还是很气……
只能说不够强吧。。