刷题
beloved_rancy
这个作者很懒,什么都没留下…
展开
-
CF1514D
复习了莫队维护区间众数的方法对于每个数,开cnt数组记录出现的次数对于每个出现次数,开t数组记录cnt的出现次数每次加入数的时候直接加即可,然后判断最大值是否更新删除的时候考虑答案是否会变化如果删除cnt[x]后t[cnt[x]] == 0 && cnt[x] 是我当前存储的最大值, 那么我的最大值就应该减小一个其他时候最大值不变对于每个区间的答案,如果不大于一半就是1,大于一半就拿剩下的先去凑,其他不能凑的划分成单个,这样的答案是2 * mx - len莫队原创 2021-04-28 23:35:53 · 168 阅读 · 0 评论 -
刷题
CF1516BAGAGA XOOORRR题目大意:每次操作可以将相邻两个数异或起来变成一个数,问能否存在一种方案,将数列进行操作后所有剩下的数相等(至少剩下两项)。每次只能操作相邻两项,最终剩下的数一定是原数列中的连续一段。考虑第一个数和后面哪些数一起,即可枚举出答案,每次找到能满足答案的分配的最远的即可。最远是为了解决3 3 0这种情况, 0不能被很好的考虑进去复杂度n ^ 2#include<bits/stdc++.h>#define ll long long#d.原创 2021-04-25 16:26:04 · 290 阅读 · 0 评论 -
UVA 1614
题目大意给你一个长度为n的序列,1 <= ai <= i, 问是否存在一个子序列使得子序列的和为原来总和的一半结论:假设有长度为k的序列,所有子序列可以凑出1 -ak的所有和证明:归纳法 当k = 1时,a1 = 1, 成立当k > 1时: k - 1时成立, 则1 -ak-1都可以被凑出那么ak加入之后只需要和前面的组合再组合,就可以凑出所有的1 -ak ----> k成立那么由归纳法知道对于所有的n都成立那么将所有的ai排序,从大到小,能加入...原创 2021-02-15 11:05:49 · 152 阅读 · 0 评论 -
UVA 12265
题目大意:给一个矩阵,有些. 有些#,对于每个.,求出以他为右下角的空矩阵的最大周长,统计每种周长出现了多少次预处理出每个点向上能延申的距离,记为h[i][j],为了求出周长,还需要求出最左端能延申到的距离,记录为c对于一个矩阵,当前右下端点为(i, j), 左上端点为(c, h),那么周长为2 * (h - c + j+ 1)对于一行来说,影响答案的只有h - c, 所以考虑维护一个最大的h - c对于单增的c而言,h是单增的,考虑用一个栈来存储对于一个点的h,栈中所有h大于这个h的.原创 2021-02-10 15:49:33 · 159 阅读 · 0 评论 -
考试题(欧拉回路)
悠木皆守学会了一种古老的文字。该文字共有M 种不同的字符1; 2; : : : ; M。一个简单词由两个字符组成(这两个字符可以相同)。一个复杂词由若干个简单词组合而成;具体地,对于一个词(可以是简单词或复杂词)a1a2 · · · al 和另一个简单词b1b2,如果al = b1,那么它们可以组合成一个复杂词a1a2 · · · alb2(因为al = b1 所以b1被去掉了)。例如,...原创 2018-10-24 18:58:25 · 300 阅读 · 0 评论 -
ZJOI 2007 仓库建设
注意到我们所有的东西都只能转移到后面,那么可以考虑dp用dp[i]表示以i结尾建立仓库的最小花费那么dp[i] = min(dp[i], dp[j] + w[i] + sigma(dis[i] - dis[k]) * num[k])这个dp直接转移是n ^ 2考虑优化这个dp然后他是由前面所有的转移过来,而且还有其他的数组来计算答案,一般的数据结构解决不了这个问题,那么就xjb...原创 2018-10-26 22:06:11 · 207 阅读 · 0 评论 -
Noip 2017 逛公园
策策同学特别喜欢逛公园。公园可以看成一张NN个点MM条边构成的有向图,且没有 自环和重边。其中1号点是公园的入口,NN号点是公园的出口,每条边有一个非负权值, 代表策策经过这条边所要花的时间。策策每天都会去逛公园,他总是从1号点进去,从NN号点出来。策策喜欢新鲜的事物,它不希望有两天逛公园的路线完全一样,同时策策还是一个 特别热爱学习的好孩子,它不希望每天在逛公园这件事上花费太多的时间。如...原创 2018-10-28 21:49:24 · 166 阅读 · 0 评论 -
bzoj 1968 整除分块
题目很裸,求∑i=1~n⌊n/i⌋这个东西可以直接暴力O(n),但对于这个复杂度来说显然不优秀直接枚举的话会发现很多项的值都是相同的,而且呈块状分布,那么就可以用道整除分块来解决有一篇博客讲了证明写的还行https://www.cnblogs.com/0xfffe/p/9648943.html好了现在我们就可以在sqrt(n)的时间内求出这个值了然鹅整除分块经常套这莫反,有时需...原创 2018-10-28 14:01:26 · 182 阅读 · 0 评论 -
zoj3470 Water Level
#include<cstdio>#include<iostream>#include<cstring>#include<algorithm>using namespace std;const int maxn=3005;int a[maxn],sum[maxn];int dp[maxn*3],tt[maxn*3],vmax[m...原创 2018-10-22 20:40:30 · 126 阅读 · 0 评论 -
刷题List+一句话题解
P2468染色:熟练泼粪+线段树维护一下左右边界颜色以及颜色段数,查询的时候看看top[u]和fa[top[u]]的颜色是否相同,相同-1即可P2483K短路:A*模版题,倒着跑dis,然后到一个节点的时候将当前已走的dis作为h,将到终点的最短路作为g来求估价函数,每次取最小的,取k次即可P1627中位数:对于中位数只需要考虑有多少个数比他大和多少个数比他小,然后大的+1小的-1相同不变...原创 2018-10-09 21:57:06 · 170 阅读 · 0 评论