洛谷P1970花匠

简约的一道dp小品好题,推着推着发现是一个交错的0,1数列,接着脑子就开始发晕不知道怎么能做的又快又好,看了题解之后发现每次只需要如果有大小变化就交错更新即可否则按照原样

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <bits/stdc++.h>
using namespace std;
int f[100005][3],a[100005];
int main()
{
int n;
scanf("%d",&n);
for(int i=1;i<=n;i++)
scanf("%d",&a[i]);
for(int i=1;i<=n;i++)
f[i][0]=f[i][1]=1;
for(int i=2;i<=n;i++)
{
if(a[i]<a[i-1])
f[i][0]=f[i-1][1]+1;
else
f[i][0]=f[i-1][0];
if(a[i]>a[i-1])
f[i][1]=f[i-1][0]+1;
else
f[i][1]=f[i-1][1];
}
printf("%d",max(f[n][0],f[n][1]));
}
就算是一分钱,也是对作者极大的支持
------ 本文结束 ------

版权声明

Baccano by baccano is licensed under a Creative Commons BY-NC-ND 4.0 International License.
baccano创作并维护的Baccano博客采用创作共用保留署名-非商业-禁止演绎4.0国际许可证
本文首发于baccano 博客( http://baccano.fun ),版权所有,侵权必究。

小游戏

---小游戏:要不要来选择一下自己可能的老婆?---

简易发声器

---简易的七键钢琴插件---

可以使用鼠标点击琴键也可以使用主键盘1-7或者小键盘的1-7来操作

那么现在开始吧

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
0%