2019/10/3 综合测试小结

T1:

  题意:一个序列,每个数有p值和h值,求有多少对p值相同的数之间有一个数的h值小于m

  思路:简单题,先求前缀和,在扫一遍得出答案(但调试花了一些时间);

  题解:同上;

T2:

  题意:给出n,m,d,表示一开始有n个为m的数,每次操作将一个非(非0最小值)的数变成[最小值-d,最小值],问将n个数变为0有几种变法;

  思路:看题想到dp,考虑用dp[i][j][e]表示最小值为i,有j个为i的数,有e个大于i的数时的操作方案,每次O(d)转移。考虑优化,用前缀和使转移变为O(1)。又考虑n==1的特殊情况,是一个类斐波拉契数列的递推;

  题解:dp[i]表示没有数为0,最小值为i的情况下的方案数,前缀和优化O(1)转移,最后统计1~d的dp值即为答案;

T3:

  题意:给一课树,每个节点有一个字符串,边有权,点有权,问随机选两个点它们的点权之积*路径上最小边权*字符串最长公共后缀长度的期望值;

  思路:没时间了,n^3暴力求和;

  题解:最长公共后缀——反过来建Trie树。最小边——将边从大到小排序,一个一个加进来,再用并查集维护。优化——利用a=sigma(i=1~正无穷)[i<=a],得出结论,答案和Trie树上的深度有关,可以在合并Trie的过程中计算;

猜你喜欢

转载自www.cnblogs.com/Cduiz/p/11621113.html