
分治
Lynstery
一只蒟蒻
展开
-
[分治+floyed] 2016 计蒜之道 复赛 A 百度地图的实时路况
题意戳这里题解容易想到 floyedfloyed 干的就是类似的事情。 但是我们算点 ii 的答案时,其他点都要插入。 我们分治搞就行了,分治到单一节点时进行答案查询。 #include<cstdio>#include<algorithm>using namespace std;typedef long long LL;const int N=305;int n,a[N][N];L原创 2017-08-01 15:47:54 · 480 阅读 · 0 评论 -
[分治] Codeforces#415 (Div. 1) 809A. Do you want a date?
题意给出一个n个元素的数集。 求这个集合的所有非空子集的权值和。一个集合 AA 的权值定义为:maxi,j∈A |i−j|\max_{i,j \in A}\ |i-j| 题解集合的权值只由最大和最小的两个数决定,所以可以想到给 nn 个数排序,题目转换为: 定义一个区间 [L,R][L,R] 的权值为 (a[R]−a[L])∗2R−L−1(a[R]-a[L])*2^{R-L-1} 。求所有子区间原创 2017-08-11 23:25:20 · 363 阅读 · 0 评论 -
[分治] 51Nod1472 Codeforces #549F. Yura and Developers
分治学傻的我只会无脑分治…… 题意就是求满足 sum≡maxsum \equiv max 的区间。反正就是按套路搞。 注意计数的数组不能每次 clearclear ,要开时间戳。#include<cstdio>#include<algorithm>using namespace std;typedef long long LL;const int maxn=300005,maxk=100原创 2017-10-19 11:24:46 · 516 阅读 · 0 评论 -
[分治] 51Nod1555 布丁怪
注意到这种问题可以转化到序列上,等价于:求满足出现的数字连续的区间数。和 51nod1810 连续区间 一模一样。 水 blogblog~这里写代码片原创 2017-10-19 15:50:01 · 371 阅读 · 0 评论 -
[构造 分治] UOJ#143. 【UER #5】万圣节的数列
构造题。好像找到了manchery搬的题的原题 首先,长度为1,2的等差序列是不可避免的。我们需要尽量减少长的等差序列。 最好就是长度大于等于3的一个都没有。怎么做到呢? 考虑3个数 i<j<k, aj−ai<ak−aji<j<k,\ a_j-a_i<a_k-a_j ,ii 和 jj 的奇偶性相同。 所以我们把奇偶分成两边,这样就不存在跨过中线的等差子序列。 这样就有了一个解法:我们递归求原创 2017-10-16 14:12:37 · 356 阅读 · 0 评论 -
[分治] BZOJ3745: [Coci2015]Norma
显然是分治套路题。分段求,搞一堆的前缀和就行了。#include<cstdio>#include<algorithm>using namespace std;typedef long long LL;const int maxn=500005,MOD=1e+9;int n,a[maxn];LL _min[maxn],_max[maxn],s1[maxn],s2[maxn],s12[max原创 2017-11-03 15:18:58 · 394 阅读 · 0 评论