AT4524 Vacation

博客围绕一道算法题展开,题目是太郎暑假每天可选择游泳、捉虫、写作业三种活动之一获幸福值,但不能连续两天做同一种活动,需计算最多能获多少幸福值。该题采用动态规划方法求解,还给出了题目传送门和AC代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

题目传送门

题目翻译

Solution:

转移方程:

AC Code:


题目传送门

题目传送门 luoguicon-default.png?t=N7T8https://www.luogu.com.cn/problem/AT_dp_c

题目传送门 AtCodericon-default.png?t=N7T8https://atcoder.jp/contests/dp/tasks/dp_c



题目翻译

太郎的暑假有n天,第i天他可以选择做以下三种事情:

- 游泳,获得a_i点幸福值。
- 捉虫,获得b_i点幸福值。
- 写作业,获得c_i点幸福值。


但他不能连续两天进行同一种活动,请求出最多可以获得多少幸福值。


Solution:

这道题是一道dp的题。

数组及含义:

int dp[100010][3];//dp数组,表示在第i天执行了对应的操作后最大的幸福值
int a[100010],b[100010],c[100010];//题目中的a[i],b[i],c[i]

dp[][0]:第一种操作
dp[][1]:第二种操作
dp[][2]:第三种操作

转移方程:

注意:不能连续两天进行同一种活动,则转移方程为:

dp[i][0]=\max(dp[i-1][1],dp[i-1][2])+a[i]

dp[i][1]=\max(dp[i-1][0],dp[i-1][2])+b[i]

dp[i][2]=\max(dp[i-1][0],dp[i-1][1])+c[i]



AC Code:
 

#include <bits/stdc++.h>
using namespace std;
int dp[100010][3];
int a[100010],b[100010],c[100010];
int main()
{
    int n;
    cin>>n;
    for(int i=1;i<=n;i++) cin>>a[i]>>b[i]>>c[i];
    for(int i=1;i<=n;i++)
    {
        dp[i][0]=max(dp[i-1][1],dp[i-1][2])+a[i];
        dp[i][1]=max(dp[i-1][0],dp[i-1][2])+b[i];
        dp[i][2]=max(dp[i-1][0],dp[i-1][1])+c[i];
    }
    cout<<max(dp[n][0],max(dp[n][1],dp[n][2]));
    return 0;
}
### 回答1: "At" 是一个英文介词,通常用来表示位置、时间或方向等概念。在位置方面,在英文中 "at" 通常用来表示某个特定位置或场所,例如 "我在家里",可以翻译为 "I am at home"。在时间方面,"at" 通常用来表示具体的时刻或时间点,例如 "我会在下午3点到达",可以翻译为 "I will arrive at 3 PM"。而在方向方面,"at" 则通常用来表示某个方向的位置,例如 "他站在门口",可以翻译为 "He is standing at the door"。 "At" 这个单词很常用,我们可以通过学习它在语境中的不同用法来更好地理解它的含义。在使用 "at" 时需要注意单词后面应该跟上什么类型的名词,以便正确表达我们所想要的意思。最后,我们也应该注意英语中介词的灵活性,不同语言中介词的用法也有很大的差异,因此我们需要多加练习和理解。 ### 回答2: "At" 可以有多种含义和用法,这个词最常见的意思是介词。作为介词时,它表示位置、方向、时间等概念。 首先,它可以表达位置,例如:“The cat is sitting at the table.” 这句话中,“at the table” 表示小猫在桌子上。另外,它还可以表示某个建筑物、街道、城市等地方,例如:“I live at 123 Main Street.” 这句话中,“at 123 Main Street” 表示某人住在这个地址。 其次, "at" 还可以用来表示方向,例如:“Turn left at the traffic light.” 这句话中,“at the traffic light” 表示在交通灯处向左转。此外,它还可以表示在某个特定的位置上,例如:“We waited at the airport gate for two hours.” 这句话中,“at the airport gate” 表示在机场的航站楼候机口里等待。 最后, "at" 还可以表示时间,例如:“We will meet at 7pm tonight.” 这句话中,“at 7pm” 表示在晚上7点这个时间点上会见。除此之外,它还可以表示某个特定时间段,例如:“I am going on vacation at the end of the month.” 这句话中,"at the end of the month" 表示本月底会去度假。 总之, "at" 是一个常用的介词,可以表示位置、方向、时间等。它是学习英语语法的基础之一。 ### 回答3: 在英语中,“at”是一个常见的介词,可用于表示时间、地点或位置。例如,“at 9 o'clock”表示在九点钟,“at the park”表示在公园,“at the top of the mountain”表示在山顶。在电子邮件和聊天中,“at”也常用于引用某人的用户名,例如“@JohnDoe”表示提到了名为JohnDoe的用户。此外,“at”还可用作缩写词,例如“ATM”表示自动取款机(Automated Teller Machine),“ATP”表示三磷酸腺苷(Adenosine triphosphate)。总之,“at”是一个在英语中非常常用和多功能的介词,可以表示时间、地点、位置等,并在某些情况下用作缩写词的一部分。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值