分治
Qer_
这个作者很懒,什么都没留下…
展开
-
HDU6044 Limited Permutation[快速输入][分治]
题意:给定ii从1到n个区间左右端点,描述的第i个区间的最小值必须是第i个数字,问从1~n有多少种符合题意的排列。 题目提示输入使用快速的fread() 对于一个确定的区间li,ril_i, r_i,其中pip_i是其最小值为定数,其余的可能情况就可以按照组合数去组合放到两边,所以从1~n大区间开始分治,对于每个区间,使用stl::map记录区间的编号ii。 对于用到的组合数结果,使用卢卡斯预原创 2017-08-17 19:18:16 · 340 阅读 · 0 评论 -
Painting Fence[分治]
**题意:**n个宽度为1,高度为ai的板子,横竖一笔刷漆,问最小需要多少笔刷完。 思路:贪心加分治,首先对于一些[l, r]序号区间内的板子,竖着刷为(r-l+1)花费,横着刷的话肯定要先刷到最小的长度的那个,然后分成左右两半,然后分治重复递归。#include<iostream>#include<string>#include<cstdio>#include<cstring>#incl原创 2017-08-26 14:14:26 · 508 阅读 · 0 评论 -
Quoit Design [散点中距离最近的两点距离][分治]
题意:散点中距离最近的两点距离除以2,给定n个点的坐标。 思路:暴力复杂度O(n2)不可行,分治处理,每次从中间分,然后求左边点的最小距离,右边点的最小距离,然后算出来一个点在左侧一个点在右侧情况的最小距离,求最小。 处理过程中,判断两侧的最小距离d = min(左, 右),然后判断中间点的过程时,剪掉那些水平距离到mid大于d的点,然后讲这些候选点按照y排序,剪掉点对之间y距大于d的点,再去求原创 2017-08-26 15:32:50 · 1366 阅读 · 0 评论