思路:

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 ;
}

最新文章

  1. Spartan Exploit Kit分析
  2. 【Discuz】关闭QQ互联插件提示信息:系统繁忙,请稍后再试
  3. 自己制作QQ空间音乐的具体方法
  4. sql 分组查询及格不及格人数
  5. zoj 3232 It&#39;s not Floyd Algorithm(强联通分量,缩点)
  6. LeetCode题目答案索引
  7. Cordova自定义插件
  8. CSS:重量和级联规则,确定其优先级
  9. select与ajax结合
  10. 安卓 ArrayList,LinkedList,HashSet,Vector,TreeSet的区别和使用
  11. Java进阶(四十三)线程与进程的区别
  12. JS闭包解析
  13. LeetCode专题-Python实现之第1题:Two Sum
  14. MT【274】一道漂亮的不等式题
  15. ionic2一个需求模块的文件该是这样子的
  16. axure rp安装
  17. 51nod 1102 面积最大的矩形 (单调栈)
  18. Ansible6:Playbook简单使用
  19. hdu 5303 DP(离散化,环形)+贪心
  20. springboot将项目打成war包

热门文章

  1. 从exgcd到exCRT
  2. 关于cuda 环境遇到的问题
  3. tinymix
  4. calicoctl命令简介
  5. 编写 DockerFile
  6. OutputDebugString()输出调试的使用
  7. Locked Treasure
  8. nohup、&amp;、tail 在服务启动中的用法
  9. [CVE-2017-8464]Microsoft Windows远程命令执行漏洞复现
  10. 洛谷P2485 [SDOI2011]计算器(exgcd+BSGS)