二分
文章平均质量分 71
丶阿明
Hello World!
展开
-
HDU 5256 序列变换
分析:因为要改变最少的数,使得数组a,成为严格递增,也就是使得a[i+1]>=a[i]+1,即a[i+1]-(i+1)>=a[i]-i。所以令a[i]=a[i]-1,原题就变成了改变最少的数,使得新数组a[i]-=i,不递减,即a[i+1]>=a[i],那么我们只需找出最多已满足条件的元素(即最长不递减子序列),再用总的个数减一下就能得出答案。如何求最长不递减子序列呢?我们用数组b[i]来表示:不原创 2015-09-25 21:00:15 · 557 阅读 · 0 评论 -
HDU 2446 Shell Pyramid
分析:题意就是给你一个正4面体的金字塔,从顶往底数,第1层有c[1]=1个球,第2层有c[2]=3个球.....第i层有c[i]=c[i-1]+i个球,第i层有i行,第j行有j个球,现按层从顶往底,按行从上往下,按列从左往右,依次对每个球进行编号1,2,3,4....... 问你序号为n的球在第几层,第几行,第几列。用数组c[i]来表示第i层有c[i]个球,s[i]表示第i层最大的球的序号,那么s原创 2015-10-24 00:04:54 · 444 阅读 · 0 评论 -
HDU 5248 序列变换
分析:题意可以理解为,给你含有n个正整数的数组a,让你找一个严格单调递增的数组b,使得cost(a,b)=max(|a[i]-b[i]|) (1d.找数组b的时候,b[i]肯定要>=a[i]-d,且b[i]>=b[i-1]+1,所以我们取这两个中较大的,如果b[i]>a[i]+d的话,那么cost就>d了,不满足条件,返回false。 # include int n,a[100005],原创 2015-09-24 20:09:48 · 871 阅读 · 0 评论 -
HDU 5652 India and China Origins
题意:给你n*m的矩阵,0代表平原,1代表高山,接下来q年,每年在(x,y)的位置长出一座高山,问你第几年中国和印度不连通。 分析:第一种做法是BFS判断能不能从中国走到印度,如果一年一年找的话就会超时,所以查找第几年的时候,可以用二分查找,这样会快很多。 第二种做法是并查集,第0列的所有山都并起来,第m-1列的所有山都并起来,对于每座高山,把它周围8个方向的高山并起来,最后判断第0列和第m-原创 2016-03-31 20:29:25 · 460 阅读 · 0 评论