当前位置: 首页 > news >正文

递增四元组

解法:

首先都可以想到dp[i]:第i个元素结尾的递增四元组有dp[i]个

然后发现有一组数据:2,3,6,1,5,8。会出现6结尾和5结尾的递增三元组,也就是未来的决策受过去影响,专业的说就是有后效性。需要强化约束条件,于是使用dp[i][j]。

第i个元素结尾的递增j元组有dp[i][j]个,显然每个元素自身就是一个一元组,dp[i][0]=1.

对于第i个元素,若存在a[k]<a[i],那么就可以把a[i]加在a[k]结尾的j元组,构成j+1元组。

迭代完善dp数组即可。

见例图:

#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
#define endl '\n'
const int N = 1e3 + 3;
int dp[N][4];
int main() {int n; cin >> n;vector<int> vec(n);for (int i = 0; i < n; i++) cin >> vec[i];for (int i = 0; i < n; i++) {dp[i][0] = 1;for (int j = 1; j<4; j++) {for (int k = 0; k < i; k++) {if (vec[i] > vec[k])dp[i][j] += dp[k][j - 1];}}}int sum = 0;for (int i = 0; i < n; i++) {sum += dp[i][3];sum %= 3344;}cout << sum << endl;return 0;
}

http://www.lryc.cn/news/323248.html

相关文章:

  • 蓝桥杯每日一题——棋盘
  • QT6实现创建与操作sqlite数据库及读取实例(一)
  • 第十四届蓝桥杯JavaB组省赛真题 - 阶乘求和
  • Java毕业设计 基于springboot医院挂号系统 医院管理系统
  • 【MySQL】基本查询(1)
  • 一文讲清!进销存管理系统如何实现锁库及库存冻结?计算月加权平均成本?
  • 将本地项目上传至码云
  • 虚拟化技术
  • 鸿蒙一次开发,多端部署(一)简介
  • 数据结构——单向链表(C语言版)
  • ideaSSM 工厂效能管理系统bootstrap开发mysql数据库web结构java编程计算机网页源码maven项目
  • Java反射机制的讲解及其示例说明
  • 20240309web前端_第二周作业_完成游戏导航栏
  • 五、大模型-Prompt
  • 【网络安全】 MSF提权
  • iPHoP:病毒宿主预测
  • 网工内推 | 数通工程师,IE认证优先,五险一金,绩效奖
  • 2024 年 AI 辅助研发趋势将更加强调智能化、自动化和个性化
  • Jackson 2.x 系列【1】概述
  • 深入理解并优化Android中的文件描述符(FD)
  • 「JS 基础」异步解决方案入门
  • 408学习笔记-16-C-动态内存管理
  • vuex - 21年的笔记 - 后续更新
  • ngrok实现内网穿透
  • 开发chrome扩展( 禁止指定域名使用插件)
  • Flink:Lookup Join 实现与示例代码
  • python基础知识(四)
  • 论文笔记:Llama 2: Open Foundation and Fine-Tuned Chat Models
  • Unity UGUI之Toggle基本了解
  • 鸿蒙Harmony应用开发—ArkTS-全局UI方法(日期滑动选择器弹窗)