zoukankan      html  css  js  c++  java
  • 18.06.30 POJ 百练4118:开餐馆

    描述

    北大信息学院的同学小明毕业之后打算创业开餐馆.现在共有n 个地点可供选择。小明打算从中选择合适的位置开设一些餐馆。这 n 个地点排列在同一条直线上。我们用一个整数序列m1, m2, ... mn 来表示他们的相对位置。由于地段关系,开餐馆的利润会有所不同。我们用pi 表示在mi 处开餐馆的利润。为了避免自己的餐馆的内部竞争,餐馆之间的距离必须大于k。请你帮助小明选择一个总利润最大的方案。

    输入

    标准的输入包含若干组测试数据。输入第一行是整数T (1 <= T <= 1000) ,表明有T组测试数据。紧接着有T组连续的测试。每组测试数据有3行,
    第1行:地点总数 n (n < 100), 距离限制 k (k > 0 && k < 1000).
    第2行:n 个地点的位置m1 , m2, ... mn ( 1000000 > mi > 0 且为整数,升序排列)
    第3行:n 个地点的餐馆利润p1 , p2, ... pn ( 1000 > pi > 0 且为整数)

    输出

    对于每组测试数据可能的最大利润

    样例输入

    2
    3 11
    1 2 15
    10 2 30
    3 16
    1 2 15
    10 2 30

    样例输出

    40
    30
     1 #include <cstdio>
     2 #include <string>
     3 #include <memory.h>
     4 #include <algorithm>
     5 #include <stdlib.h>
     6 #include <math.h>
     7 #include <iostream>
     8 #include<queue>
     9 #include <vector>
    10 #include <bitset>
    11 using namespace std;
    12 
    13 int dp[105];
    14 int n, k, loca[105], rev[105];
    15 int ans;
    16 
    17 void solve() {
    18     for (int i = 1; i <= n; i++) {
    19         for (int j = 1; j < i; j++)
    20             if (loca[i] - loca[j] > k)
    21                 dp[i] = max(dp[i], dp[j] + rev[i]);
    22         ans = max(ans, dp[i]);
    23     }
    24     printf("%d
    ", ans);
    25 }
    26 
    27 int main()
    28 {
    29     int t;
    30     scanf("%d", &t);
    31     while (t--) {
    32         memset(dp, 0, sizeof(int) * 105);
    33         ans = 0;
    34         scanf("%d%d", &n, &k);
    35         for (int i = 1; i <= n; i++) 
    36             scanf("%d", &loca[i]);
    37         for (int i = 1; i <= n; i++)
    38         {
    39             scanf("%d", &rev[i]);
    40             dp[i] = rev[i];
    41         }
    42         solve();
    43     }
    44     return 0;
    45 }
    View Code
    注定失败的战争,也要拼尽全力去打赢它; 就算输,也要输得足够漂亮。
  • 相关阅读:
    JavaSE 基础 第51节 定义自己的异常
    JavaSE 基础 第50节 Java中的异常链
    JavaSE 基础 第49节 手动抛出异常
    JavaSE 基础 第48节 Java中的异常声明
    JavaSE 基础 第47节 获取异常信息
    JavaSE 基础 第46节 异常的分类
    JavaSE 基础 第45节Java异常快速入门
    JavaSE 基础 第44节 引用外部类的对象
    JavaSE 基础 第43节 静态内部类
    通用爬虫
  • 原文地址:https://www.cnblogs.com/yalphait/p/9247158.html
Copyright © 2011-2022 走看看