dp入门的一些简单练习(然而我还是看了题解才能写出了 T _T)

题目看了好多遍才明白题意

/*
P1686 爱国者周期
题意:求最长的满足要求的序列长度
要求:以T为周期,在前半周期严格递减,在后半周期严格递增,且前半周期最后一个元素比后半周期第一个元素要大,且前半周期第一个元素比后半周期最后一个元素要大。
dp[i]:以a[i]为结尾的最长满足要求的序列长度。
*/
#include<iostream>
using namespace std;
const int MAXN=2005;
int main()
{int n,t,temp;int a[MAXN];int dp[MAXN]={0};cin>>n>>t;for(int i=1;i<=n;i++){cin>>a[i];dp[i]=1;//初始化全部为1,因为每个元素都能放在前半周的第一个}for(int i=1;i<=n;i++){for(int j=1;j<i;j++){if(dp[j]+1>dp[i])//若接上去能比原序列更长的话{temp=(dp[j]-1)%(2*t);//计算当前dp[j]所在的周期if((temp<t&&a[i]<a[j])||(temp>=t&&a[i]>a[j]))//分2种(在前半周期,在后半周期的处理){dp[i]=dp[j]+1;//若满足即a[i]可接在a[j]后面,形成更长的序列}}}}int ans=0;for(int i=1;i<=n;i++)//寻找最长的序列长度{if(dp[i]>ans){ans=dp[i];}}cout<<ans<<endl;return 0;
}

感觉dp还是太难了。

vijos p1686 爱国者的周期相关推荐

  1. 【vijos】1164 曹冲养猪(中国剩余定理)

    https://vijos.org/p/1164 好赞orz. 对于求一组线性同余方程 x=a[i](mod m[i]) 这里任意两个m[i]和m[j]都互质 那么可以用中国剩余定理来做. 对中国剩余 ...

  2. LTV 即用户生命周期价值

    20220321 https://mp.weixin.qq.com/s/kPoojfRCbvCCV4zpnCimmQ 指标计算详细介绍 数据分析|如何做好用户生命周期价值分析 LTV https:// ...

  3. 单周期十条指令CPU设计与verilog实现(Modelsim)

    目录 一.实验目的 二.实验内容 三.实验原理 1. 规定 2. 原理图 四.实验步骤 1. CPU各部件实现 pc insMem acc alu cu dataMem 2. CPU例化实现 3. 编 ...

  4. Harmony生命周期

    Harmony生命周期 系统管理或用户操作等行为,均会引起Page实例在其生命周期的不同状态之间进行转换.Ability类提供的回调机制能够让Page及时感知外界变化,从而正确地应对状态变化(比如释放 ...

  5. Activity在有Dialog时按Home键的生命周期

    当一个Activity弹出Dialog对话框时,程序的生命周期依然是onCreate() - onStart() - onResume(),在弹出Dialog的时候并没有onPause()和onSto ...

  6. 横竖屏切换时Activity的生命周期

    1.不设置Activity的android:configChanges时,切屏会重新调用各个生命周期,切横屏执行一次,切竖屏执行两次. 2.设置Activity的android:configChang ...

  7. Android中Service生命周期、启动、绑定、混合使用

    一.Activity和Service如何绑定: 1.Service和Activity之间的连接可以用ServiceConnection来实现.实现一个ServiceConnection对象实例,重写o ...

  8. Cocos生命周期回调

    Cocos Creator 为组件脚本提供了生命周期的回调函数.用户只要定义特定的回调函数,Creator 就会在特定的时期自动执行相关脚本,用户不需要手工调用它们. 目前提供给用户的生命周期回调函数 ...

  9. Fragment 使用 replace 的方式实现切换 以及切换的时候Fragment 生命周期

    这个主要代码在activity里面 如下 public class ReplaceActivity extends AppCompatActivity implements View.OnClickL ...

最新文章

  1. Java排序算法之——希尔排序
  2. AndroidStudio修改默认C盘配置文件夹(.android.gradle.AndroidStudio)以及修改后避免踩的坑
  3. Android Gesture 手势识别使用实例 - Android - mobile - ITeye论坛
  4. Python常用的六款编程开发工具汇总!
  5. 活动目录数据库授权恢复
  6. ajax前端post请求json格式参数,前端js导出,参数以json格式发送post请求
  7. RNN隐藏层的两种计算方法GRU和LSTM
  8. 5个很好用的.net 分析工具
  9. iOS开发之网络编程--使用NSURLConnection实现大文件断点续传下载+使用输出流代替文件句柄...
  10. LitePal遇到的坑
  11. 沉浸式视听体验:全景声技术是如何实现的?
  12. Android hardware简易流程
  13. CSS:使用媒体查询进行网页元素的缩放
  14. 超级AI买家阿里巴巴
  15. 服务器上pdf文档无法删除,怎么对PDF文件进行编辑,PDF怎么删除空白页
  16. 友谊的小船,说翻就翻
  17. 深度学习(四):卷积神经网络(CNN)模型结构,前向传播算法和反向传播算法介绍。
  18. 如何通过cmd怎么打开计算机管理
  19. 计算机组成原理徐福培,徐福培计算机组成原理(第2章).ppt
  20. 项链(牛客竞赛2020-普及组第四场-T4)

热门文章

  1. 关于chardet的问题
  2. html5页面微信分享,微信 js-sdk 完成 H5自定义页面分享
  3. dns隧道攻击原理及常用工具流量分析
  4. pywinauto教程
  5. python计算狗的年龄_狗狗与人年龄换算表,终于知道狗狗多大了!
  6. iphone12promax绿屏怎么办
  7. 不重装修复系统并恢复windows用户配置文件,适用于window 11 WSA出错后的dll文件缺失、.net framework缺失或者其他类似系统恢复后尽可能想恢复用户配置的场景
  8. root用户下chmod命令禁用解除
  9. 数字信号处理基础----xilinx除法器IP使用
  10. 异性员工避免封闭空间独处、单独约饭、肢体接触,万亿级公司竟然这样规定!!!...