摘要:
题目描述京京接受了一个用染色法测定平面内分子团数量的工作。已知没有分子的位置用0表示。被染色的部分根据其染色深度用1~9表示。由于这些分子具有特殊性,它的延展方向在平面内只有前、后、左、右4个方向。在延伸方向上相互接触的分子构成一个分子团。在一个M×N的矩形区域内,请你帮他统计出分子团的数量(X)。输入格式第一行 M N (2<=[M,N]<=100)第二行 N个0~9之间的数字……第M+1行 N个0~9之间的数字输出格式X分析:———————————————————————————————————————————————————做的题目太少了,这种题是第一次做,竟花了我 阅读全文
摘要:
题目描述已知一个数列a1,a2,a3,a4...an.求有多少个逆序三元组。逆序三元组:d1,d2,d3,1.d1>d2>d32.在数组中的下标p1,p2,p3;p1>p2>p3;(n<=2500 ai<=2^31)输入格式第一行是n第二行是n个数输出格式多少个逆序三元组。(结果小于2^61)分析:———————————————————————————————————————————————————题意虽较紊乱,但还是可以看懂的,主要是叫我们求一列数中有多少个单调递减的三元组。我已开始用的时DFS,但可以确定的是一定会超时,事实是只过了5的点,经tld大牛的 阅读全文
摘要:
题目描述为了增加顾客,Sally的店铺决定提供免费午餐,顿时门庭若市,但是不久Sally的原材料不足了….因此Sally决定公布一项决定:凡是来本店吃免费午餐的,一天吃能吃一次,吃的数量必须比上一次吃的少, 点的必须在上一次后面,且免费午餐将只有N个种类任君选择,为了能吃到最多的免费午餐,你将如何安排每日吃的数量呢?输入格式第一行一个数N,表示免费午餐的种类(0<=N<=100000)第二行N个数,表示每个免费午餐的数量(0<=数量<=100000)输出格式一个数,表示最多能吃多少天.分析:典型的DP,但朴素的DP已不能满足该题的数据,因此就用到了刚才写的求最大不降序列 阅读全文
摘要:
刚学习的新方法,求最长不下降子序列是DP等经典问题,本来O(n*n)的算法已经是够强了,但还存在O(n*logn)的算法。~\(≧▽≦)/~。分析如下:O(nlogn)的算法关键是它建立了一个数组c[],c[i]表示长度为i的不下降序列中结尾元素的最小值,用K表示数组目前的长度,算法完成后K的值即为最长不下降子序列的长度。 具体点来讲: 设当前的以求出的长度为K,则判断a[i]和c[k]: 1.如果a[i]>=c[k],即a[i]大于长度为K的序列中的最后一个元素,这样就可以使序列的长度增加1,即K=K+1,然后现在的c[k]=a[i]; 2.如果a[i]<c[k],那么就在c[1 阅读全文