POJ 3709 K-Anonymous Sequence】的更多相关文章

poj 3111 K Best 最大化平均值 二分思想 题目链接: http://poj.org/problem?id=3111 思路: 挑战程序竞赛书上讲的很好,下面的解释也基本来源于此书 设定条件C(x):=可以选择使得单位重量的价值不小于x 如何判定C(x)是否可行 假设选了某个物品的集合是S,那么单位重量的价值是:\[ \sum\limits_{i \in S} {v_i } /\sum\limits_{i \in S} {w_i } \] 因此就变成了判断是否存在S满足下面的条件:\[…
http://poj.org/problem?id=3709 给定一个长度为n的非严格单调递增数列a1,...,an.每一次操作可以使数列中的任何一项的值减小1.现在要使数列中的每一项都满足其他项中至少有k-1项和它相等.求最少要对这个数列操作的次数. 输入:第一行为测试数据的组数T(1 ≤ T ≤ 20) 每组测试数据包含两行: 第一行为两个正整数n,k.n为数列中元素的个数 (2 ≤ n ≤ 500000): 第二行为非严格单调递增数列的n个整数,正整数的取值范围为[0, 500000].…
[题目链接] http://poj.org/problem?id=3709 [题目大意] 给出一个长度为n个非严格单调递增数列,每次操作可以使得其中任意一项减一, 问现在使得数列中每项数相同的数的数量都大于等于k-1,问最少进行几次操作 [题解] 我们设dp[i]为前i项答案,得到方程dp[i]=min(dp[j]+S[i]-S[j]-aj*(i-j)), dp[i]=S[i]+min(dp[j]-S[j]+aj*j-aj*i),为关于i的线性函数, 所以我们对f(y)=-ax*y+dp[x]-…
题目大意:将一个升序的,有N个元素的序列,分组.要求每组的元素不少于K个,计算出组内各元素与最小元素的之差的和,将每组的这个值加起来,其和要最小. N<500000,K<N 分析: dp[i]=MIN(dp[j]+sum[i]-sum[j]-(i-j)*arr[j+1]); 令y=dp[j]+sum[i]-sum[j]+j*arr[j+1],x=arr[j+1],b=i,g=dp[i], 于是有y-bx=g 因为b值是递增的,所以有效决策点构成了下凸包. 可以用单调队列解决,又因为每组个数不能…
题意:给定一个不下降数列,一个K,将数列分成若干段,每段的数字个数不小于K,每段的代价是这段内每个数字减去这段中最小数字之和.求一种分法使得总代价最小? 思路:F[i]表示到i的最小代价.f[i]=min(f[j]+sum[i]-sum[j]-(i-j)*a[j+1]);(i-j>=K) 对于j1,j2,j1<j2且j2更优得 f[j1]+sum[i]-sum[j1]-(i-j1)*a[j1+1]>f[j2]+sum[i]-sum[j2]-(i-j2)*a[j2+1] 得到: f[j1]…
描述 给定一个数列 $a$, 分成若干段,每段至少有$k$个数, 将每段中的数减少至所有数都相同, 求最小的变化量 题解 易得到状态转移方程 $F_i = \min(F_j  + sum_i - sum_j - (i - j ) \times a_(j+1) ) $ $ 0 <= j <= i - k$. 把只含$j$ 放在一边, 其他的放在另一边得到:$F_j + j \times a_(j+1)  - sum_j =  i \times a_(j+1)  F_i - sum_i$ 然后就可…
Number Sequence Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 36013   Accepted: 10409 Description A single positive integer i is given. Write a program to find the digit located in the position i in the sequence of number groups S1S2..…
Brackets Sequence Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 27793   Accepted: 7885   Special Judge Description Let us define a regular brackets sequence in the following way: 1. Empty sequence is a regular sequence. 2. If S is a re…
                                                                                                      Recaman's Sequence Time Limit: 3000MS   Memory Limit: 60000K Total Submissions: 22363   Accepted: 9605 Description The Recaman's sequence is defined…
[题目链接] http://poj.org/problem?id=3111 [题目大意] 选取k个物品,最大化sum(ai)/sum(bi) [题解] 如果答案是x,那么有sigma(a)>=sigma(b*x) 至于选取,就可以根据a-b*x排序,贪心选取即可. 对于输出物品的id,因为在不断逼近结果的过程中,排序的结果也不断在调整 所以我们最后的得到的排序结果的前k个就是答案. [代码] #include <cstdio> #include <algorithm> usi…