标签:前缀 数位dp 一点 输出 思路 题解 最大 for ...
前言
奋斗组的第一次练习,总体做的非常不好...开场切A题,然而B题被题意杀了,然后被续了一个多小时...中间想C题又差一点想出来......感觉最后的题解跟我思路前面一模一样,最后却没有想到...可以说是失误了吧.
总体概括一下:A,B是水模拟,C是普通DP,D是树形DP,E是数位DP.
一句话的题意
A:略
B:有n桶水,第i桶水里初始时有v[i]升水,你需要从这n桶水中取出s升水,问是否能取出s升水,如果可以的话输出n桶水中剩下水最少的那桶水尽量的多的答案.
C:给定一个字符串,求满足开头和结尾是‘a‘,中间至少又一个‘b‘的子串总数(%1e9+7).
D:给你一棵树,数上的每个点都有一个正权值,每条边都有一个负权值,让你在树中找一条简单路径,使得权值和最大.
E:给定一个[s,t]的区间,s和t都是由‘a‘和‘b‘组成的字符串,现要在其中选出k个长度为n的字符串,求最多的不同的前缀的数量.
不止一句话的题解
A:略
B:排序,从大到小暴力模拟,到所有水桶都想同时继续暴力就好了...
C:仅考虑字符串中的‘a‘和‘b‘,记录当前位置以前上一个b位置时f[]的和为sum,扫到‘a‘时用这个sum去更新dp值;扫到‘b‘时,当前f[i]=sum=f[i-1].
D:似乎是稳的树型DP,算出每个点儿子最大的答案值即可更新这个点的答案(即f[i]=max(f[j]),j是i的直系儿子)
E:
那么,后面的比赛都考好点吧..特别是明天的中医药大学校赛
标签:前缀 数位dp 一点 输出 思路 题解 最大 for ...
原文地址:https://www.cnblogs.com/localsuxing/p/10159020.html