【经典线性 DP】数组最小间隔为k的和值最大 | 河北省赛 7-8 H-信号传输

简介: 笔记

题目描述


10.png

输入格式

11.png

输出格式

输出一行仅一个整数,表示建造的信号传输通道最大的优质指数。如果无解,输出-1。


输入样例:


11 12
1 2 1 2 6 2 1 2 1 2 1


输出样例:


2


题意


在不低于 W WW 的满意度下,使得两信号站之间距离最大。


即:给你一个数组,选 x xx 个位置之和 ≥ W \geq W≥W,求相邻两位置的间隔的最大值。


思路



12.png

代码:


int n, w;
int a[N], f[N];
bool check(int x) {
  memset(f, 0, sizeof f);
  for (int i = 1; i <= n ;i++) {
    f[i] = f[i - 1];
    if (i >= x && i <= n - x + 1)
      f[i] = max(f[i], f[i - x] + a[i]);
  }
  return f[n] >= w;
}
void solve() {
  cin >> n >> w;
  int sum = 0;
  for (int i = 1; i <= n; i++) cin >> a[i], sum += a[i];
  if (sum < w) { cout << -1 << endl; return ; } // 特判 -1
  if (w == 0) { cout << n + 1 << endl; return ; } // 特殊的 w==0
  int l = 1, r = n;
  while (l < r) {
    int mid = l + r + 1 >> 1;
    if (check(mid)) l = mid;
    else r = mid - 1;
  }
  cout << l << endl; 
}
相关文章
|
7月前
|
算法 测试技术
枚举(蓝桥练习)(反倍数、特别数的和、找到最多的数、小蓝的漆房、小蓝和小桥的挑战)
枚举(蓝桥练习)(反倍数、特别数的和、找到最多的数、小蓝的漆房、小蓝和小桥的挑战)
|
7月前
【每日一题Day357】LC1155掷骰子等于目标和的方法数 | dp
【每日一题Day357】LC1155掷骰子等于目标和的方法数 | dp
63 0
|
7月前
|
算法 测试技术
day2·算法-快乐数-有效三角形个数
day2·算法-快乐数-有效三角形个数
41 0
|
7月前
每日一题(最大连续1的个数,完全数计算)
每日一题(最大连续1的个数,完全数计算)
37 0
|
7月前
|
人工智能 算法 Java
数据结构与算法面试题:给定 n 个非负整数 a1,a2,a3,...,an,每个数代表坐标中的一个点(i, ai),请找出两个点之间的最大距离。(提示:动态规划)
数据结构与算法面试题:给定 n 个非负整数 a1,a2,a3,...,an,每个数代表坐标中的一个点(i, ai),请找出两个点之间的最大距离。(提示:动态规划)
95 1
|
7月前
|
人工智能
力扣每日一题 -- 2919. 使数组变美的最小增量运算数
力扣每日一题 -- 2919. 使数组变美的最小增量运算数
|
Python
【基础入门题013】求连续根号的值
【基础入门题013】求连续根号的值
94 0
每日一题---输出100个1~6的随机整数,并求出每个数出现的概率
每日一题---输出100个1~6的随机整数,并求出每个数出现的概率
每日一题---输出100个1~6的随机整数,并求出每个数出现的概率
|
索引
每日一题—— 最小差值 I
每日一题—— 最小差值 I
169 0
每日一题—— 最小差值 I
|
C++
【力扣·每日一题】507. 完美数 (C++ 模拟 数的因子)
【力扣·每日一题】507. 完美数 (C++ 模拟 数的因子)
79 0
【力扣·每日一题】507. 完美数 (C++ 模拟 数的因子)

热门文章

最新文章