CF1079C Playing Piano
2024-08-31 22:48:46
思路:
dp。
实现:
#include <bits/stdc++.h>
using namespace std;
int a[], dp[][];
int main()
{
int n;
while (cin >> n)
{
for (int i = ; i <= n; i++) cin >> a[i];
memset(dp, , sizeof dp);
for (int i = ; i <= ; i++) dp[][i] = ;
for (int i = ; i <= n; i++)
{
for (int j = ; j <= ; j++)
{
if (a[i] > a[i - ])
{
for (int k = ; k < j; k++)
{
if (dp[i - ][k]) dp[i][j] = k;
}
}
else if (a[i] < a[i - ])
{
for (int k = j + ; k <= ; k++)
{
if (dp[i - ][k]) dp[i][j] = k;
}
}
else
{
for (int k = ; k <= ; k++)
{
if (k != j && dp[i - ][k]) dp[i][j] = k;
}
}
}
}
bool flg = false;
int i = ;
for ( ; i <= ; i++)
{
if (dp[n][i]) { flg = true; break; }
}
if (!flg) cout << "-1" << endl;
else
{
vector<int> v;
v.push_back(i);
int now = n;
while (now >= )
{
v.push_back(dp[now][i]);
i = dp[now][i];
now--;
}
for (int i = v.size() - ; i >= ; i--) cout << v[i] << " ";
cout << endl;
}
}
return ;
}
最新文章
- Spartan Exploit Kit分析
- 【Discuz】关闭QQ互联插件提示信息:系统繁忙,请稍后再试
- 自己制作QQ空间音乐的具体方法
- sql 分组查询及格不及格人数
- zoj 3232 It&#39;s not Floyd Algorithm(强联通分量,缩点)
- LeetCode题目答案索引
- Cordova自定义插件
- CSS:重量和级联规则,确定其优先级
- select与ajax结合
- 安卓 ArrayList,LinkedList,HashSet,Vector,TreeSet的区别和使用
- Java进阶(四十三)线程与进程的区别
- JS闭包解析
- LeetCode专题-Python实现之第1题:Two Sum
- MT【274】一道漂亮的不等式题
- ionic2一个需求模块的文件该是这样子的
- axure rp安装
- 51nod 1102 面积最大的矩形 (单调栈)
- Ansible6:Playbook简单使用
- hdu 5303 DP(离散化,环形)+贪心
- springboot将项目打成war包