
B
大贝贝壳
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
路径计数
来源:zr原创 2018-09-18 20:54:29 · 743 阅读 · 0 评论 -
Trie
首先题目的名字都告诉你了这题是一道关于字典树的题目(我一开始就没用这个。。。所以GG了30分为什么要用trie树呢?Trie 的强大之处就在于它的时间复杂度。它的插入和查询时间复杂度都为 O(k) ,其中 k 为 key 的长度,与 Trie 中保存了多少个元素无关。Hash 表号称是 O(1) 的,但在计算 hash 的时候就肯定会是 O(k) ,而且还有碰撞之类的问题;Trie 的缺点...原创 2019-03-12 22:01:12 · 163 阅读 · 0 评论 -
Domino
设f[i][j][k]为第i行状态为j用了k个骨牌覆盖到的最大权值注意这里可以有负数,而且这道题用贪心是不多对的(就是排个序取k*2个,应为你每次选的不一定是相邻的)#include<bits/stdc++.h>using namespace std;const int maxn=1005;int n,k;int A[maxn][3],dp[maxn][maxn][8];...原创 2019-03-18 20:56:36 · 136 阅读 · 0 评论 -
数
一开始的思路是:枚举每一个序列,并用sort找出最大值和最小值,然后相加正确的思路:使用区间 dp, fi,j 表示坐标被 [i, j] 完全包含 的区间最小值。则可以用暴力时候的思想,最大权值的区间需要单独的,且值为该权值的元素去消除。则枚举该元素的坐标 x, 则子问题变成了 fi,x−1, fx+1,j。因为跨过 x 的区间一定都会被打掉,因为我们使用的是最大权值。剩余的区间被 [i, ...原创 2019-03-29 21:51:21 · 231 阅读 · 0 评论 -
图
做题的时候想到了:我们注意到一定会存在d1=0,dn=k。对于di>k的值,我们不关心它到底是多少,可以直接用k+1表示。对于2~n-1的点,我们也不需要它们具体的最短路是多少。我们只需要知道对于最短路是j的点的个数就可以了。这样我们就可以从小到大枚举所有点的最短路x,再枚举满足最短路是x的点的个数,并计算方案总数,但是没有打出来。只打了一个暴力最后WA了。后来看了题解后知道:因...原创 2019-03-12 21:16:07 · 180 阅读 · 0 评论 -
最远点
对于这道题肯定是要求最短路的应为他涉及到了最长路,我们可以设 d[i][j]表示 i 到 j 的最短距离。假设最远点在边(i,j)上。设最远点到 i 的距离是 x。最远点到所有点的距离和就是∑k=1n\sum_{k=1}^{n}∑k=1nmin(x+d[i][k],w[i][j]-x+d[j][k])就是首先这个最远点到i,i还要到其他点,就要加上d[i][k],但也可能直接从最远点到...原创 2018-11-06 22:12:48 · 281 阅读 · 0 评论 -
立方根
n23n^{\frac{2}{3} }n32我觉得应该没有什么性质吧,可以设x=n23n^{\frac{2}{3} }n32,枚举q,对于q,p的值是[xp]和[xp]+1,就比如说x=5,p=6经常是可以发现q=30或31的时候较小这里要注意必须用long double,double被卡了70分的精度,强制类型转换的时候必须带上括号。#include<bits/stdc++.h&...原创 2018-11-05 22:37:44 · 1342 阅读 · 0 评论 -
鸽鸽
对每个人求出第1次,第2次,第3次…道歉的贡献。对于一个区间,先选贡献最大的那些道歉。然后变成了一个区间前k大和的问题,需要用主席树。席树的主体就是线段树,准确的说,就是很多棵线段树,存的是一段数字区间出现次数(所以要先离散化可能出现的数字)。举个例子,假设我每次都要求整个序列内的第 k 小,那么对整个序列构造一个线段树,然后在线段树上不断找第 k 小在当前数字区间的左半部分还是右半部分...原创 2018-10-25 15:20:36 · 1154 阅读 · 0 评论 -
Huge Counting
一开始想的:我们可以发现点x的颜色只由1到x的方案数的奇偶性决定,奇数为1,偶数为0可以用组合数求方案数,二维的情况是Cxx+y^{x+y}_{x}xx+y,直接统计2因子出现次数,但这个不能满分正确的:若对于任意位都最多只有⼀个xi在这⼀位上为1,那么对于任意维度⼦子集s属于n,有sum(xk)=xk,所以每个因⼦子都是奇数。 有了了这个条件就可以数位DP了了,记录当前位置和每⼀维...原创 2018-12-08 19:39:37 · 377 阅读 · 0 评论 -
Rabbit的工作(2)
这是一个完全背包的模型,把一个任务完成的天数当做物品,把 W 天作为背包的容量(恰好背满),但是不太一样的就是这道题需要保证完成恰好 K 个任务(所背物品数量的限制),我们容易联想到三维 dp,但是显然时间复杂度不允许。那么我们考虑如何把数量这个限制去掉。由于要完成 K 个任务,那我们可以这么转化:先给每个任务分配一天,然后就没有数量的限制了,用剩下的 W-K 天完全背包随意分配,再跟原来的一天去...原创 2019-01-05 21:15:23 · 307 阅读 · 6 评论 -
Rabbit的数列
因为 A,B 是随机的,所以分块维护一下颜色即可,当然用其他方法也可以,验题人表示还可以用一个 set/map 存下所有的相同的段,每次把[l,r]这一段分离出来,然后把这一段里面的相同段修改之后合并成#include<cassert>#include<cctype>#include<cerrno>#include<cfloat>#in...原创 2019-01-05 21:27:27 · 311 阅读 · 0 评论 -
Rabbit的机器人
首先我们明确一点,如果要放障碍物 0 号方格左右最多放一个,因为只要碰到一个就不会继续走过去了,也就是说放置多个障碍物只有最靠近 0 号方格的是有意义的。此外因为要保证最后一次到达没到过的地方,不可能两侧都放,因为这样的话要不就是不满足题意,要不就是其中一个障碍没有意义,所以障碍物的上限是 1 个。然后如果最后一个指令为 L/R,那么障碍物要放一定放在 0 号方格右侧/左侧。且以障碍物放在 0...原创 2019-01-05 21:41:00 · 536 阅读 · 0 评论 -
Rabbit的蛋糕
就比如说最基础的,一刀最多切2个,两刀最多切4个,三刀最多切7个,n刀最多切1+1+······+n个,所以只要叉积维护一下前缀和就好了#include<bits/stdc++.h>#define db doubleusing namespace std;const int maxn=1e5+10;db x[maxn],y[maxn],sum1[maxn],sum2[ma...原创 2019-01-05 22:09:24 · 287 阅读 · 0 评论 -
New Rank
相当于要对⼀个模 2 下的矩阵,求出每个位置取反后矩阵新的秩显然只修改⼀个位置的话秩只有可能+1,-1,不变分类讨论就行了,30分⾸先我们假设 A 是⾏⼤于列的我们把 A ⾼斯消元成最简形式,假设消完后是 BA显然rank(BA)=rank(A)且对 A(i,j) 取反相当于 BA 的第 j 列加上 B 的第 i 列还是分类讨论,100分#include&lt;bits/s...原创 2019-01-15 19:22:34 · 709 阅读 · 0 评论 -
New Set
我的思路:因为题目中说是⾄少⼀个 Ai 能分离 (X,Y),我们容斥枚举⼀个 A 的集合S,然后计算能被 S 中每⼀个分离的 (X,Y) 的个数如何计算 (X,Y) 的对数呢,根据题⽬条件,A 能分离 (X,Y),当且仅当X,Y 中⼀个是 A 的⼦集,另⼀个跟 A 没有交我们在枚举 S 中每个 A 是 X 的超集还是 Y 的超集然后就可以⼤⼒统计了O(3^m*n),吼啊,20分...原创 2019-01-15 19:37:22 · 1407 阅读 · 0 评论 -
那棵树
这道题我一开始没有任何思路,后来看了题解后发现题目可以化解,就变成了求每个颜⾊的虚树⼤⼩虚树一开始听的时候觉得很高深,其实也是一个比较容易的东西。可以称它是个数据结构,也可以称它是个算法,反正比较好用啦~假设颜⾊为 c 的点按 dfs 序排序后为 p1,p2…pk那么这棵虚树的边数=(dis(p1,p2)+dis(p2,p3)+…dis(pk,p1))/2开 n 个 set 维护⼀...原创 2019-01-16 17:38:31 · 210 阅读 · 0 评论 -
Conference
这道题我一开始的思路是枚举这个i和当前是第k年(倒着枚举k),用b数组记录每个荷叶上青蛙分到的食物,如果当前的这个bkb_kbk是和i相等的那么就说明我们找到了满足条件且是最早的一年,如果一直枚举完都没有找到满足题意得则输出-1.时间复杂度为 O(n*aia_iai),超时。我们把所有的floor(a[k]/i)的所有取值区域都拿出来,把所有区域划分为111~10810^8108 ,这样...原创 2019-03-06 22:07:21 · 888 阅读 · 0 评论