Wonderland是小王居住地一家受欢迎的游乐场

package od;

import java.util.Arrays;
import java.util.Scanner;

public class Wonderland是小王居住地一家受欢迎的游乐场 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// 初始化售票价格数组和游玩日期数组
int[] costs = new int[4];
int[] days;
// 输入售票价格数组
String[] costsInput = scanner.nextLine().split(" ");
for (int i = 0; i < 4; i++) {
costs[i] = Integer.parseInt(costsInput[i]);
}

        // 输入游玩日期数组
        String daysInput = scanner.nextLine();
        String[] daysStrArr = daysInput.split(" ");
        days = Arrays.stream(daysStrArr).mapToInt(Integer::parseInt).toArray();

        // 计算完成游玩计划的最低消费
        int minCost = minCostTickets(costs, days);
        System.out.println(minCost);

        scanner.close();
    }

    // 计算完成游玩计划的最低消费方法
    public static int minCostTickets(int[] costs, int[] days) {
        int n = days.length;
        int[] dp = new int[366]; // 动态规划数组
        boolean[] travel = new boolean[366]; // 标记游玩日期

        // 标记游玩日期
        for (int day : days) {
            travel[day] = true;
        }

        // 动态规划计算最低消费
        for (int i = 1; i <= 365; i++) {
            if (!travel[i]) {
                dp[i] = dp[i - 1];
                continue;
            }

            dp[i] = dp[i - 1] + costs[0]; // 单日票消费
            dp[i] = Math.min(dp[i], dp[Math.max(0, i - 1)] + costs[0]); // 比较一日票
            dp[i] = Math.min(dp[i], dp[Math.max(0, i - 3)] + costs[1]); // 比较三日票
            dp[i] = Math.min(dp[i], dp[Math.max(0, i - 7)] + costs[2]); // 比较周票
            dp[i] = Math.min(dp[i], dp[Math.max(0, i - 30)] + costs[3]); // 比较月票
        }

        return dp[365]; // 返回完成游玩计划的最低消费
    }
}
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
下面是一个示例代码,可以将多个逗号分隔的字符串分别赋值到指定索引几行单元格,并自动增加行。每行代码都带有注释: ```vb.net ' 创建一个列表,用于存储逗号分隔的字符串 Dim data As List(Of String) = New List(Of String)() ' 添加逗号分隔的字符串 data.Add("John,Doe,25,Programmer") data.Add("Alice,Wonderland,30,Designer") data.Add("Bob,Smith,40,Engineer") ' 获取 DataGridView 控件 Dim dataGridView As DataGridView = Me.DataGridView1 ' 获取当前行数 Dim rowCount As Integer = dataGridView.Rows.Count ' 自动增加行 dataGridView.Rows.Add(data.Count) ' 遍历逗号分隔的字符串列表 For i As Integer = 0 To data.Count - 1 ' 将逗号分隔的字符串分隔成一个字符串数组 Dim values As String() = data(i).Split(","c) ' 遍历字符串数组,将每个字符串赋值到指定的单元格中 For j As Integer = 0 To values.Length - 1 ' 获取要赋值的单元格 Dim cell As DataGridViewCell = dataGridView.Rows(rowCount + i).Cells(j) ' 将字符串赋值到单元格 cell.Value = values(j) Next Next ``` 这段代码中,我们首先创建一个列表,用于存储逗号分隔的字符串。然后,我们获取 `DataGridView` 控件,并自动增加行数。接着,我们遍历逗号分隔的字符串列表,将每个字符串分隔成一个字符串数组,并遍历字符串数组,将每个字符串赋值到指定的单元格中。最后,我们将每个逗号分隔的字符串赋值到指定的行中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值