模拟赛
文章平均质量分 82
KaDa_Duck
这个作者很懒,什么都没留下…
展开
-
铺设道路(新)
题面还是原题,如果不知道原题的话,题目。现在我们要在这个最少天数下求出代价的最大值和最小值。定义代价 为每次修理的区间长度的平方。分析换汤不换药,我们先求出最小时间Tim=∑i=1n+1max(0,f[i])Tim=\sum_{i=1}^{n+1}max(0,f[i])Tim=∑i=1n+1max(0,f[i]) ,其中f[i]f[i]f[i]为差分数组其实到n就行了,因为第n+1项一定是负数那么我们考虑一下最大值的问题吧首先我们一定是要正负一起处理的,这个是显然的吧,你要是先处理出大于原创 2020-11-25 21:36:37 · 163 阅读 · 0 评论 -
白觉的分身
题目给定一个字符串,可以最多选出多少个字符串,让选定的字符串集合中没有一个字符串是另一个字符串的后缀。例如 “ac”,“iac” 不合法 ; “ac”,“ak” 合法数据范围|S| ≤\leq≤ 10610^6106分析后缀明显比较生僻,考虑能不能往前缀上面想。List item我们先考虑后缀明显比较生僻,考虑能不能往前缀上面想。我们先考虑...原创 2020-11-24 18:47:29 · 84 阅读 · 0 评论 -
神罗天征
题目分析上来一看,这不是国王游戏嘛。来,先比比大小,比半天发现,这把当前这个数放到前面,放到后面,自成一个这三种情况还要考虑后面的分组,那我中间还没分明白呢,后面还对我有影响,这咋办嘛。所以此题不可做,下一题贪心不行,我DP还不行嘛,就不会写DP,还叫写DP我们就想知道一下这个点咋划分,所以知道最后一个块的情况就好了。就设dp[i][j]表示最后一个块以i为结尾,j为起始,前面的块产生的答案和dp[i][j]表示最后一个块以i为结尾,j为起始,前面的块产生的答案和dp[i][j]表示最后原创 2020-11-23 21:15:18 · 140 阅读 · 0 评论 -
干柿鬼鲛
题目分析我们很容易就想到从头开始搜,如果向右扩展一个点可以的话,那么就用新点继续往后更新。然后我们发现从两端开始,往中间更新也是可以的,感觉这俩是同理的。说不定还能双端搜索呢~我不太清楚这个时间复杂度,反正觉得是正解了,然后就保龄了按照这个思路,我们区间DP,用左右端点更新即可。就拿到了50pts的好成绩了。我们可以想到这其实是一个前缀和的问题,那么我们把1-k这部分反过来当一个前缀和,把k+1 - n这部分当另一个前缀和。我们把图形画出来会发现他像正弦曲线(山峰)一样。那么对于一个原创 2020-11-23 20:04:11 · 122 阅读 · 0 评论 -
[2020普转提七连测day1] 符文师
题目分析显然操作一没什么用,只是说明这是个环那么考虑一下,选择的方案可不可能是∑inLi>n\sum _i ^nL_i> n∑inLi>n呢,显然不可以。那么我们就一定把选择的范围缩到了∑inLi≤n\sum _i ^nL_i\le n∑inLi≤n那么剩下不就是个01 背包了嘛,选择价值最大的引用代码#include<bits/stdc++.h>using namespace std;int n;int dp[1010];int s[原创 2020-09-07 18:47:42 · 198 阅读 · 0 评论 -
并行计算
题目分析首先要观察一下这个树,只有叶节点是变量,其他是表达式。那么思考一个问题,x+(y+z)=x+y+zx+(y+z)=x+y+zx+(y+z)=x+y+z ,也就是说如果一个节点的子节点的符号和自己的符号一样,那么我们可以把它们放在同一层 。然后考虑一下max(t1,t2)+t0max(t_1,t_2)+t_0max(t1,t2)+t0 这个式子的性质,加上我们上一个发现的性质,我们现在面对的问题就是,如何在n个元素中,两两配对取最大值后累加的最小值,显然我们按顺序两两配对即可,原创 2020-09-06 21:59:32 · 898 阅读 · 0 评论