自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 收藏
  • 关注

原创 [CF 297 C] Splitting the Uniqueness

题目描述:给出 一个 序列 A 求出 另外两个序列 B C 使得 A[i]=B[i]+C[i] 且 B 和 C 两个序列 每个去除相同元素后最起码剩下 (2/3)*n 个元素题目分析:构造题目第一次做. 首先把序列 3分 将 A 排序 对于前 1/3 B[i]=i-1 C[i]=A[i]-B[i] 对于1/3–2/3 C[i]=i-1 B[i]=A[i]-C[i] 对于...

2018-02-28 19:08:51 384

原创 [Luogu 省选 1] LIS

题目描述:题目解析:首先 前30分我们可以直接用 冒泡排序暴力求导即可. 分析 第三类 子任务 我们可以由于数字值域很小,用01归并排序即可. 满分做法利用子任务3的思想,进行两次分治即可.30冒泡:#include <cstdio>#include <iostream>const int maxm=1000*1000+10;int ...

2018-02-28 15:47:11 566

原创 [CodeForces 161D] Distance in Tree

题目描述:给一个N个点的树,两点距离为1,求有多少个点对 的距离为 K(不重复统计)题目分析:点分治的题目每个都要变形!!! 本来套用了上上一题的做法,人家 N<=50000 ,又T成了SB 看了看题解,人家说是树形DP,mmp 说好的点分治呢!!! 其实仔细想想,我们开两个数组进行动态统计就行了 QwQ题目链接:Luogu 的 CF 题库AC code:...

2018-02-27 19:43:31 310

原创 [Luogu P2634 国家集训队] 聪聪可可

题目描述:给出含N个点的树,求任意两个点距离为3的倍数的概率.题目分析:emmmm. 本以为这道题目直接套用上题的做法就可以A了. 然而数据范围大了一倍.直接枚举的下场就是T成了SB 其实完全不用去对处理出来的数 N^2,枚举. 考虑 长度为 3 倍数的路径有 X条 %3为1的路径个数为 Y 条 %3余2 的路径个数为 Z 条 那么答案就是 X^2 + Y*Z*2 不要忘了...

2018-02-27 16:10:25 234

原创 [Luogu P3806] 点分治 模板

题目描述:给出一颗含N个点的数。 Q个询问,每个询问一个K,问树中是否存在一对点的距离==K题目分析:这道题目可以看为POJ那道的简化版? 然而用那种方法,对于每个K都查一次,不T才怪嘞. 注意到 K<=10000000. 那我们可以用点分治的办法跑一边树,求出所有点对的路径长度,扔进一个桶里即可做到O(1)查询.题目链接:Luogu 3806AC 代码:...

2018-02-27 15:19:35 365

原创 [POJ 1741] Tree

题目描述:给你一颗带权树,给出参数K,求有多少个点对 (X,Y)之间的距离 <=k题目分析:裸的点分治算法 我们要求的是一些合法的路径,这些路径我们可以分为两种:过某个点和不过某个点。这样我们就可以分别来求这两种情况。 如果我们已经知道了此时所有点到根的距离d[i],d[x] + d[y] <= k的(x,y)对数就是结果,这个可以通过排序之后O(n)的复杂度求出。然后...

2018-02-27 11:33:31 197

原创 [BZOJ 3437] 小P的牧场

题目描述:雾。题目分析:只写DP方程吧. dp[j]+h[j+1]-(sum[i-1]-sum[j]) * (n-i) >dp[k]+h[k+1]-(sum[i-1]-sum[k])*(n-i) h[i]为 p[i]*(n-i)的后缀和 斜率优化. dp[j]+h[j+1]-(sum[i-1]-sum[j]) * (n-i)>dp[k]+h[k+1]-(sum[i-...

2018-02-26 16:55:35 153

原创 [Luogu P3515] [POI2011] Lightning Conductor

题目描述:已知一个长度为n的序列a1,a2,…,an。对于每个1<=i<=n,找到最小的非负整数p满足 对于任意的j, aj < = ai + p - sqrt(abs(i-j))题目分析:解法:决策单调性 + 分治 首先我们可以向两边枚举,分别取 Max 令 f[i]=max(1<= j < i)(a[j]+sqrt(i-j)) 因为根...

2018-02-26 15:47:16 178

原创 [HDU 3507] Print Article

题目描述:给出N个数的权值,以及一个参数K. 每次取出一段数的花费为 sum[l-r]^2+k 求取出这些数的最小花费题目分析:O(N2)DPO(N^2) DP dp[i]=min(dp[j]+(sum[i]−sum[j])2)dp[i]=min(dp[j]+(sum[i]-sum[j])^2) O(N)斜率优化O(N) 斜率优化dp[j]+sum[i]^2-2*sum[i]*sum[j]

2018-02-26 14:45:46 294

原创 [HDU 1542] 矩形面积并

题目描述:给出N个矩形,求总共覆盖的面积题目分析:扫描线+离散化+线段树 我们把矩形拆开来看. 可以分为上线段和下线段. 矩形的面积即为线段长度*高度差值 我们首先对线段按照Y排序. 用线段树维护X覆盖的总长度. 遇到下线段加入,遇到上线段删除. 每次计算两个线的高度差值*X覆盖总长度,累加即为面积. PS:由于我们要维护的是线段,并非一个个独立的断点,所以 l,r...

2018-02-26 10:44:33 201

原创 [BZOJ 3156] 防御准备

题目描述:一条线上N个(检查)点,编号1~N,一个点j上可以建一个守卫塔花费为a[j],也可以选择放个木偶(为什么会是木偶= =),花费是这个点右边建的第一个守卫塔i到这个点的距离,即i-j。问最小花费。题目分析:先写出朴素DP: 倒着DP。 首先DP[i][0]为安排好 i+1-n 且在 i 放置 木偶的 最小花费. DP[i][1]为安排好 i+1-n 且在 i 放置 防御塔...

2018-02-26 09:16:36 171

原创 [APIO 2010] 特别行动队

题目描述:雾。题目分析:f[i]=f[j]+a*(sum[i]-sum[j-1])^2+b*(sum[i]-sum[j-1])+c2*a*sum[i]*sum[j-1]+f[i]=f[j]+a*sum[j-1]^2-b*sum[j-1]+(a*sum[i]^2+b*sum[i]+c)题目链接:COGS 2129 BZOJ 1911 Luogu 3628Ac ...

2018-02-26 08:00:16 224

原创 [APIO 2014] 序列分割

题目描述:给你一个序列,让你分割K次,每次分割可以获得分割点前后两个块和乘积的价值 求最大价值题目分析:首先分割次序对总价值没有影响。 f[k][i]表示前第k次分割点为i的所获得的最大分割价值. f[i][k]=f[j][k−1]+(sum[i]−sum[j])∗sum[j]f[i][k]=f[j][k−1]+(sum[i]−sum[j])∗sum[j]f[i][k]=f[j]...

2018-02-25 21:04:44 251

原创 [ZJOI 2007] 仓库建设

题目描述:雾。题目分析:先来搞朴素DP. DP[i] 表示 已经安排好了从1-i的仓库物品,并且在此地建一个仓库最小的花费 DP[i]=min(DP[j]+cal(i,j)+cost[i])DP[i]=min(DP[j]+cal(i,j)+cost[i])DP[i]=min(DP[j]+cal(i,j)+cost[i]) cal(i,j)表示从把[j,i-1]的物品运到 i 所需...

2018-02-25 19:41:33 247

原创 [HNOI2008]玩具装箱TOY

参考MashiroSky大佬的Blog题目描述:给定N个物品,可以连续的划分为若干个组,每个组的代价是(物品数-1+每个物品单独的代价-L)^2,求最小代价.题目分析:先写出DP方程:DP[i]=min(DP[j]+(sum[i]−sum[j]+i−j−1+L)2)(j<i)DP[i]=min(DP[j]+(sum[i]−sum[j]+i−j−1+L)2)(j&l...

2018-02-25 15:42:03 188

原创 [HAOI 2009] 逆序对数列

题目描述:求1-n所形成的的排列中能形成K个逆序对个数的方案. 答案对10000取模题目分析:DP题… DP[i][j]为到i为止有j个逆序对方案数. DP[1][0]=1 因为i这个数比前面任何一个数都要大,那么如果插在第1个数字前面,就会形成i-1的逆序对 ….以次类推… 插在最后,形成不了逆序对. DP[i][j]=∑jk=max(i−j+1,0)dp[i−1]...

2018-02-25 11:20:43 274

原创 [Vijos 1512] SuperBrother打鼹鼠

题目描述:有两个操作 1.在X,Y这个点上加上K的值 2.查询矩形 X1,Y1,X2,Y2的和题目分析:这题目真鬼畜。 二维线段树裸题… 但我搞的是BIT套线段树. 所以需要矩形割补一下题目出现的错误:1.少打了的%d,导致加入的权值成了随机数,Debug20min发现… 2.矩阵割补打错了…题目链接:Vijos 1512AC 代码:#i...

2018-02-25 09:54:30 283

原创 [HEOI2016/TJOI2016] 序列

题目描述:雾。题目分析:先来分析一下50分的DP. DP[i]表示以i结尾可选出的最长原序列. DP[i]=max(DP[j])+1(maxv[j]<=val[i]&&val[j]<=minv[i],j < i) 其中 maxv为能够变化到的最大值,minv为能够变化到的最小值,val为原值 上面的DP方程显然。 这样转移为 N2N2N^2 ...

2018-02-24 11:21:33 368

原创 [SDOI 2014] 旅行

题目描述:无。题目分析:首先,如果没有宗教信仰的限制,即每个旅行者可以在沿途的任何一个城市睡觉。 那么这个问题就是一个树上路径求max&&sum的问题,树剖+线段树 但是现在加入了宗教限制。 观察一下宗教个数,为10510510^5. 假如我们开10510510^5棵线段树,分别对应每种宗教。 我们在查询的时候就可以在相对应的线段树中进行查询. 然而如果...

2018-02-24 07:07:22 361 1

原创 [Luogu 3415] 祭坛 (扫描线+BIT)

题目描述:题目描述太长辣,而且难懂。 其实一个祭坛点只需要找它左边上边下边右边各一个点就可以形成一个需要的保护网。 那么一个祭坛点最多的保护层数即为MIN(上面水晶柱个数,下面水晶柱个数,左边水晶柱个数,右边水晶柱个数).题目分析:首先我们可以开一个Vector 记录每个行上有多少的水晶柱. 二分一个答案 用扫描线从上到下扫描。 维护两个数组 UP&DOWN ...

2018-02-23 17:06:25 280

原创 [HDU 4825] Xor Sum(01字典树+贪心)

题目描述:给定一个集合A,然后给出M个数 对于每个数需要在集合A里找出一个值使之异或值最大.题目分析:暴力可做??? 不可做啊qwq 考虑异或的性质,在不同位上取反最好。 对于集合里的数转化为2进制,从高位到低位建立一颗01Trie树. 对于查询,也分解二进制,每次优先向当前位的数取反的方向走,没有向相同的方向走. 其实就是一个贪心 这样就可以找到最大值 复杂度插入Nl...

2018-02-22 21:20:53 283

原创 [Luogu 省选培训] 过年

题目描述: 扫描线+线段树。 用差分维护每个位置的加入情况,扔进线段树查询。 测试数据只有一组并且不用离散化TATAc代码:#include <cstdio>#include <iostream>#include <vector>#include <cmath>#include <algorithm>#defi...

2018-02-22 20:14:00 189

原创 [Luogu 省选培训] 子序列

题目描述:给你一串由01组成的串 操作1:将[l,r]中的数取反,即0变为1,1变为0. 操作2:查询从[l,r]这个区间中本质不同的子串个数.题目分析:首先通过DP得到答案 DP[i][0]表示i位置结尾为0的本质不同的子串个数 DP[i][1]表示i位置结尾为1的本质不同的子串个数 当val[i]==0时 DP[i][0]=DP[i-1][0]+DP[i-1][1]...

2018-02-22 17:27:47 302

原创 [POJ 3621] Sightseeing Cows

鸽了好久的01分数规划…思路分析:环中点数==边数,所以我们可以直接转化成边权搞。 思路跟之前的都一样,二分答案,用SPFA判断图中是否有正权环即可。题目链接:题目传送门玄学问题:我用FIFO队列,第一个元素不入队为啥啊,跪求路过大牛教导。AC代码:#include <cstdio>#include <iostream>#i...

2018-02-19 17:34:00 245

原创 [POJ 2728] Desert King

题目描述:在这么一个图中求一棵生成树,这棵树的单位长度的花费最小是多少?题目分析:最小生成树的表达式可以这样写 ∑x[i]*dis[i]-minsum>=0;(x[i]为0或者1,要求为一棵生成树)这个题目ansx[i])/(∑dis[i]*x[i]).变形可得∑x[i](cost[i]-dis[i]*ans)-0>=0;cost[i]-dis[i]*ans就相当于最小生成树

2018-02-02 08:44:28 305

原创 [POJ 2976] Dropping tests

题目描述:给出n个a和b,在这n个数中挑出K个,求最大∑a[i]/b[i]" role="presentation">∑a[i]/b[i]∑a[i]/b[i]\sum a[i]/b[i]题目分析:基本的01分数规划,求出D数组以后排序,取最大的K个。题目链接:POJ 2976代码实现:#include #include #include cons

2018-02-01 15:54:19 311

原创 01分数规划专题

前言:今天才知道有01分数规划这个东西TAT 原来我都叫实数二分的01分数规划的基本模型:(1)基础01分数规划 (2)最优比率生成树 (3)最优比率生成环01分数规划问题形式:01分数规划是这样一类问题 给你n个二元组,这个两个元素设为a[i] ,b[i], a[i]是得到这个物品所能得到的价值,b[i]是得到这个物品所付出的价值,让你求这样一个极值。 即 ...

2018-02-01 15:16:41 541

原创 [Luogu 3410]拍照

题目类型:最大权值闭合子图题目分析:注意可以不带人。实现代码:#include #include #include #include #define il inlineusing namespace std;const int inf=0x7fffffff;const int maxm=210000;int head[maxm],to[maxm*2],

2018-02-01 11:11:26 158

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除