上一页 1 ··· 10 11 12 13 14 15 16 17 18 ··· 20 下一页
摘要: 传送门 分析 此题关键在于想出dp[i][j][k]代表考虑到第i行,还能放1的的共有j列,还能放2的共有k行。之后就枚举每一行是没有还是1个1还是2个1还是1个2,然后转移即可。 代码 阅读全文
posted @ 2018-09-23 18:29 水题收割者 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 传送门 分析 一眼看去我们自然会想到dp[i][j][k]表示区间[i,j]中选k个子段的最大值。然后我们考虑降去一维。我们设dp[i][j]表示考虑了前i个数,在选了a[i]的情况下共有j个子段的最大值,于是可以列出转移方程式dp[i][j]=Max{dp[i-1][j],Max{dp[k][j- 阅读全文
posted @ 2018-09-23 15:21 水题收割者 阅读(267) 评论(0) 推荐(0) 编辑
摘要: 传送门 分析 我们假设如果一个点是0则它的值为-1,如果一个点是1则值为1,则一个区间的答案便是max(pre[i]+sur[i]),这里的pre[i]表示此区间i点和它之前的的前缀的最大值,sur[i]表示i点之后的后缀最大值。所以为了维护每个区间的答案我们可以用线段树进行维护。而对于一个由两个区 阅读全文
posted @ 2018-09-21 21:36 水题收割者 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 传送门 分析 我们二分球的直径,然后就像奶酪那道题一样,将所有距离相遇直径的点用并查集连在一起,然后枚举所有与上边的顶距离小于直径的点和所有与下边的距离小于直径的点,如果它们被并查集连在一起则代表这个球无法通过。于是可以得到答案。 代码 阅读全文
posted @ 2018-09-21 21:14 水题收割者 阅读(190) 评论(0) 推荐(0) 编辑
摘要: 传送门 分析 一道贪心题,我们用两个优先队列分别维护卖出的物品的价格和买入但没有卖出的物品的价格,然后逐一考虑每一个物品。对于每一个物品如果他比卖出的物品中的最低个价格,则改将现在考虑的物品卖出,将之前价格最低的物品拿出重新考虑,否则继续考虑现在的物品。然后我们进行第二步考虑,考虑现在买入但没卖出的 阅读全文
posted @ 2018-09-21 21:02 水题收割者 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 传送门 分析 考场上暴力水过好评... 然后我的st表查询似乎是log的,然后log三方跑的比log方快,qwq。 我们发现如果一个区间的最小值就是这个区间的gcd,则这个区间合法。所以我们二分区间长度然后枚举起点检验是否合法即可。 代码 阅读全文
posted @ 2018-09-21 20:44 水题收割者 阅读(116) 评论(0) 推荐(0) 编辑
摘要: 传送门 分析 我们发现2R+C实际就相当于R行C列的子集的个数。因此我们可以将所有集合的子集个数转换为每个集合属于的集合的个数。所以我们可以求出: 这个式子的意义为对于选i行j列的情况的所有方案乘上i行j列的情况出现的概率(这个就是算了它被几个集合包含,因为剩下k-x个数也可能构成一些整行整列)。 阅读全文
posted @ 2018-09-21 20:34 水题收割者 阅读(265) 评论(0) 推荐(0) 编辑
摘要: 传送门 分析 我们通过仔细研究不难发现对于一次交换(i,i+1)的操作之后,在i之前的点就不可能跑到i之后,i+1之后的的点也不可能跑到i+1之前,所以这个序列在一次交换之后就相当于被分成了两个部分。于是我们设dp[n][low]表示对于一个长度为n的最小值为low的序列的构成方案数。于是我们可以求 阅读全文
posted @ 2018-09-21 19:23 水题收割者 阅读(230) 评论(0) 推荐(0) 编辑
摘要: 传送门 分析 考试的时候sb了......我们发现可以按照先序遍历将一棵树变成一个序列,而不需要删的数的数量便是最长上升子序列的长度,但是还有一个问题就是如果在5和7之间有3个空的位置就无法填入合法的数,但是按照此方法会将5和7划归为合法的。所以我们考虑将第i个数的权值变为原来的权值减去i,然后求一 阅读全文
posted @ 2018-09-16 22:41 水题收割者 阅读(229) 评论(0) 推荐(0) 编辑
摘要: 传送门 分析 我们对于每一个可以匹配的字符都将其从栈中弹出,然后他的哈希值就是现在栈中的字符哈希一下。然后我们便可以求出对于哪些位置它们的哈希值是一样的,即它们的状态是一致的。而这些点可以求出它们的贡献(这个式子见代码)。而这个式子的意义是对于左括号自然表示哪几个括号组成一个合法序列,而对于右括号则 阅读全文
posted @ 2018-09-15 09:54 水题收割者 阅读(115) 评论(0) 推荐(0) 编辑
摘要: 传送门 分析 我们设A[i]表示点i有几个矿,B[i]表示这之中有几个矿是第一次出现,所以点i的贡献即为 (2^B[i]-1)*(2^(A[i]-B[i])) 注意减一的原因是第一次出现的矿应至少有一个。然后我们用set维护一下就可以了。 代码 阅读全文
posted @ 2018-09-15 09:18 水题收割者 阅读(115) 评论(0) 推荐(0) 编辑
摘要: 传送门 分析 我们可以用贪心的思想。对于所有并没有指明关系的数一定是将小的放在前面。于是我们按顺序在每一个已经指明大小顺序的数前面插入所有比它小且没有指明关系的数。详见代码。 代码 阅读全文
posted @ 2018-09-15 09:10 水题收割者 阅读(117) 评论(0) 推荐(0) 编辑
摘要: 传送门 分析 考场上写了前20分和|a[i]|<=1的情况,但是因为没开long long爆零了。实际考场上差不多想到正解了,至少当时不会凸壳... 我们发现对于ax2+bx的大小关系我们可以将其转换成ax+b,所以我们可以将这些直线求一个上凸壳和一个下凸壳,然后离线处理所有x,对于小于0的x找到下 阅读全文
posted @ 2018-09-05 22:42 水题收割者 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 传送门 分析 考场上想到了先枚举p的长度,在枚举这个长度的所有子串,期望得分40~50pts,但是最终只得了20pts,这是因为我写的代码在验证中总是不断删除s'中的第一个p,而这种方式不能解决形如ababaa的字符串。于是我们考虑满分做法。设dp[i][j]表示在当前的p的情况下s的[i,j]位置 阅读全文
posted @ 2018-09-01 13:31 水题收割者 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 传送门 分析 考场上看错了第一个条件,于是觉得是个简单贪心,随便取了每一个点的最大收益然后算了一下,就得了40pts...看来读对题很重要呀qwq。实际的正解是这样的:我们将每一个i与f[i]连一条边,这样就构造出了一个基环内向树。我们记录到达每一个点的最大收益与次大收益,而对于每一个点我们均可以先 阅读全文
posted @ 2018-08-29 23:21 水题收割者 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 传送门 分析 在考场上我通过画图发现了对于n个点肯定用一个六边形围起来最优(假装四边形是特殊的六边形),我们发现可以将这个六边形分成两个梯形(梯形的高可以为0),然后我们便枚举两个梯形共同的底边和它们分别的高。代码如下: 通过这个代码我们可以打出一张表,大致如下: 68 9 10 11 12 121 阅读全文
posted @ 2018-08-28 23:51 水题收割者 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 传送门 分析 我们发现如果在某个人取完之后还剩k+1个石子,则这个人必胜。所以我们可以将n个石子转化为n-k-1个,然后不断递归的转化下去。最后我们可以得到对于n个石子的胜负只与谁先取到n%(k+1)个石子有关。所以如果这个值为0则2胜,否则1胜。 代码 阅读全文
posted @ 2018-08-25 17:13 水题收割者 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 传送门 分析 因为所有数均小于1e9,所以只需要开根几次就会变成1。因此我们只需要维护区间和以及这个区间是否全部小于等于1即可,每一次暴力修改区间内的还不是1或0的数即可。 代码 阅读全文
posted @ 2018-08-25 15:55 水题收割者 阅读(118) 评论(0) 推荐(0) 编辑
摘要: 传送门 分析 我们知道对于一个割点,我们如果去掉它就会使原来的图被分为若干块,则这是我们将所有块包含的点的个数两两相乘即可,而如果不是割点则对于图的连通性没有影响。注意在最后要加上2*(n-1)表示去掉的那个点对答案产生的贡献。 代码 阅读全文
posted @ 2018-08-24 19:20 水题收割者 阅读(264) 评论(0) 推荐(0) 编辑
摘要: 传送门 分析 首先我们知道如果在一棵树上加一条边一定会构成一个环,而删掉环上任意一条边都不改变连通性。我们把这一性质扩展到这个题上不难发现如果一条树边不在任意一个新边构成的环里则删掉这条边之后可以删掉任意一条新边,对方案数的贡献是m。而如果它只在一个新边构成的环中则要删除这条边和对应的新边,对方案数 阅读全文
posted @ 2018-08-24 14:05 水题收割者 阅读(480) 评论(0) 推荐(0) 编辑
摘要: 传送门 分析 一道喜闻乐见的求桥的板子题。 代码 阅读全文
posted @ 2018-08-24 08:17 水题收割者 阅读(234) 评论(0) 推荐(0) 编辑
摘要: 这个题目描述好难理解呀qwq... 传送门 分析 在读懂题之后我们不难发现这道题实际就是在求一张图中有多少个割点。只需要注意读入方式即可。 代码 阅读全文
posted @ 2018-08-23 21:04 水题收割者 阅读(194) 评论(0) 推荐(0) 编辑
摘要: 一、边双连通分量 定义 若一个无向图中的去掉任意一条边都不会改变此图的连通性,即不存在桥,则称作边双连通图。一个无向图中的每一个极大边双连通子图称作此无向图的边双连通分量。 实际求法和强连通分量差不多,只是要注意由于一条无向边被分为两条有向边存储,所以在经过其中一条从u到达v之后不能再通过另一条边由 阅读全文
posted @ 2018-08-23 20:01 水题收割者 阅读(159) 评论(0) 推荐(0) 编辑
摘要: 传送门 分析 第一问我们不难想出是缩点之后的新图中入度为0的点的个数,对于第二问,我们画一画可以发现最优策略就是对于每一个入度为0的点都有一个出度为0的点连向它,而对于每一个出度为0的点也一定连向一个入度为0的点。所以最终答案即为出度为0的点和入度为0的点的最大值。注意特判缩点后只有一个点的情况。 阅读全文
posted @ 2018-08-23 19:30 水题收割者 阅读(285) 评论(0) 推荐(0) 编辑
摘要: 传送门 分析 我们发现可以将这张图转换为一个联通块来处理。我们求出所有的割点。在求完之后我们我们对于每一个点双连通分量如果它没有割点相连则需要布置两个出口,因为可能有一个出口正好被割掉。而如果有一个割点我们只需要布置一个出口就行了,因为如果割掉割点可以从出口出去而如果割掉出口便可以通过割点到别的联通 阅读全文
posted @ 2018-08-23 17:23 水题收割者 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 传送门 分析 此题要先用tarjan求点双联通分量,注意在求解是要注意一条无向边只能走一次。求完之后我们发现原来的图会变成一棵树,对于 这棵树我们发现答案是(叶子节点数量+1)/2,实际便是每两个节点之间连一条边。 代码 阅读全文
posted @ 2018-08-23 09:57 水题收割者 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 传送门 分析 一道简单的树型dp,我们用dp[i][j]记录考虑到第i个点,保留了j个树枝的最多苹果数,然后dfs求解即可。 代码 阅读全文
posted @ 2018-08-22 20:42 水题收割者 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 传送门 分析 我们设pre[i]为到第i个时段的雇佣员工的总数量,sum[i]表示时段i的可雇佣员工的总数量,r[i]表示时段i所需工人的数量。由此我们不难求出: 0<=pre[i]-pre[i-1]<=sum[i] pre[i]-pre[i-8]>=r[i],i∈[8,24] pre[i-8+24 阅读全文
posted @ 2018-08-22 19:01 水题收割者 阅读(300) 评论(1) 推荐(0) 编辑
摘要: 传送门 分析 我们知道对于一个不等式a<b可以将其转化为a+1<=b的形式,在知道这个之后我们便可以将5个关系进行差分约束了,具体的建边方式见代码。注意由于每个人都必须有糖,我们把每个人的初值都赋为1并全部入队。 代码 阅读全文
posted @ 2018-08-22 10:36 水题收割者 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 传送门 分析 我们发现这两类关系可以写成b-a<=L和b-a>=D两种形式,所以我们可以得到这两种的连边策略分别是a向b连一条权值为L的边和b向a连一条权值为-D的边。然后我们跑最短路即可。注意要单独判一下负环。 代码 阅读全文
posted @ 2018-08-21 22:02 水题收割者 阅读(171) 评论(0) 推荐(0) 编辑
上一页 1 ··· 10 11 12 13 14 15 16 17 18 ··· 20 下一页