HDU-7304 2023“钉耙编程”杭电多校赛(3)Out of Control

2023-11-18

2023“钉耙编程”中国大学生算法设计超级联赛(3)Out of Control

题目大意

n n n个数 x 1 , x 2 , … , x n x_1,x_2,\dots,x_n x1,x2,,xn,在其中选 k k k个数依次放入栈中。如果当前放入栈中的数 x i x_i xi小于栈顶的数,则向栈中放入与先前的栈顶相同的数而不是 x i x_i xi

对于每一个 i ∈ [ 1 , n ] i\in[1,n] i[1,n],求 k = i k=i k=i时不同栈的数量。

T T T组数据。

1 ≤ T ≤ 100 , 1 ≤ n ≤ 3000 1\leq T\leq 100,1\leq n\leq 3000 1T100,1n3000


题解

x i x_i xi从小到大排序,那么一组可能的栈 s 1 , s 2 , … , s k s_1,s_2,\dots,s_k s1,s2,,sk合法当且仅当 s s s中仅包含 x x x中的数,且对于所有的 1 ≤ i ≤ k 1\leq i\leq k 1ik都要满足 s i ≥ x i s_i\geq x_i sixi

我们先将 x i x_i xi离散化一下。考虑 D P DP DP。设 f i , j f_{i,j} fi,j表示合法的长度为 i i i的满足 s i = j s_i=j si=j的序列 s s s的数量,那么状态转移式为

f i , j = ∑ k = 1 j f i − 1 , k f_{i,j}=\sum\limits_{k=1}^jf_{i-1,k} fi,j=k=1jfi1,k

其中 j ≥ x i j\geq x_i jxi

可以用前缀和来优化 D P DP DP

时间复杂度为 O ( ∑ n 2 ) O(\sum n^2) O(n2)

code

#include<bits/stdc++.h>
using namespace std;
const long long mod=1e9+7;
int t,n,a[3005],num[3005];
long long sum,ans,f[3005][3005];
int main()
{
	scanf("%d",&t);
	while(t--){
		scanf("%d",&n);
		for(int i=1;i<=n;i++){
			scanf("%d",&a[i]);
			num[i]=a[i];
		}
		sort(num+1,num+n+1);
		int vt=unique(num+1,num+n+1)-num-1;
		for(int i=1;i<=n;i++){
			a[i]=lower_bound(num+1,num+vt+1,a[i])-num;
		}
		sort(a+1,a+n+1);
		for(int i=1;i<=vt;i++){
			f[1][i]=1;
		}
		printf("%d\n",vt);
		for(int i=2;i<=n;i++){
			sum=ans=0;
			for(int j=a[i-1];j<a[i];j++) sum=(sum+f[i-1][j])%mod;
			for(int j=a[i];j<=vt;j++){
				sum=(sum+f[i-1][j])%mod;
				f[i][j]=sum;
				ans=(ans+f[i][j])%mod;
			}
			printf("%lld\n",ans);
		}
	}
	return 0;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

HDU-7304 2023“钉耙编程”杭电多校赛(3)Out of Control 的相关文章

  • [极客大挑战 2019]Http(BUUCTF)

    前言 这篇文章还是是为了帮助一些 像我这样的菜鸟 找到简单的题解 题目描述 解题工具 我用fiddler抓包 burpsuite也可以 解题过程 用F12查看一下源代码 发现Secret php 进入是一个高档页面 翻译一下意思是 来源不是
  • A+B PLUS

    大整数加法 思路 把每一位存在数组里 相加 遇10进1 include
  • 剑指offer—16.数值的整数次方——分析及代码(Java)

    剑指offer 16 数值的整数次方 分析及代码 Java 一 题目 二 分析及代码 1 二分求解 1 思路 2 代码 3 结果 三 其他 一 题目 给定一个 double 类型的浮点数 base 和 int 类型的整数 exponent
  • 【PTA】【数据结构与算法题目集】7-29 修理牧场(25分)【霖行】

    PTA 数据结构与算法题目集 7 29 修理牧场 25分 霖行 题目 题目链接 7 29 修理牧场 25 分 农夫要修理牧场的一段栅栏 他测量了栅栏 发现需要N块木头 每块木头长度为整数L i个长度单位 于是他购买了一条很长的 能锯成N块的
  • UVA 10010 - Where's Waldorf? 题解

    Time limit 3 000 seconds Where s Waldorf Given a m by n grid of letters and a list of words find the location in the gri
  • LeetCode1748. 唯一元素的和(python)

    题目 给你一个整数数组 nums 数组中唯一元素是那些只出现 恰好一次 的元素 请你返回 nums 中唯一元素的 和 示例 1 输入 nums 1 2 3 2 输出 4 解释 唯一元素为 1 3 和为 4 示例 2 输入 nums 1 1
  • PAT题解——Basic Level——1094 谷歌的招聘

    题目链接 https pintia cn problem sets 994805260223102976 problems 1071785997033074688 题面 本题要求你编程解决一个更通用的问题 从任一给定的长度为 L 的数字中
  • POJ 1302 Blue Gene, Jr.(递归实现)

    Inspired by IBM s Blue Gene project the CEO of Universal Biological Machinery UBM has called on you UBM s top software e
  • M个梨子放N个盘子

    M个梨子放N个盘子 题目描述 Macro非常喜欢吃梨 有一天他得到了ACMICPC组委会送给他的一筐梨子 他比较心疼学生 就打算把梨子分给学生吃 现在他要把M个梨子放到N个盘子里面 我们允许有的盘子为空 你能告诉Macro有多少种分法吗 请
  • C - 一只小蜜蜂...

    有一只经过训练的蜜蜂只能爬向右侧相邻的蜂房 不能反向爬行 请编程计算蜜蜂从蜂房a爬到蜂房b的可能路线数 其中 蜂房的结构如下所示 Input 输入数据的第一行是一个整数N 表示测试实例的个数 然后是N 行数据 每行包含两个整数a和b 0
  • 【NOI2018模拟3.26】Cti

    Description 有一个 n m 的地图 地图上的每一个位置可以是空地 炮塔或是敌人 你需要操纵炮塔消灭敌人 对于每个炮塔都有一个它可以瞄准的方向 你需要在它的瞄准方向上确定一个它的攻击位置 当然也可以不进行攻击 一旦一个位置被攻击
  • 算法设计与分析-DP习题

    7 1 最小路径和 给定一个m行n列的矩阵 从左上角开始每次只能向右或者向下移动 最后到达右下角的位置 路径上的所有数字累加起来作为这条路径的和 求矩阵的最小路径和 输入格式 输入第一行 两个正整数m和n 1 lt m n lt 1000
  • LeetCode—200.岛屿数量(Number of Islands)——分析及代码(C++)

    LeetCode 200 岛屿数量 Number of Islands 分析及代码 C 一 题目 二 分析及代码 1 深度优先搜索 1 思路 2 代码 3 结果 三 其他 一 题目 给定一个由 1 陆地 和 0 水 组成的的二维网格 计算岛
  • 【SSL_1232】雷达覆盖

    思路 以一个点作为平角 计算几何统计 c o d e code code include
  • POJ - 2531 Network Saboteur

    A university network is composed of N computers System administrators gathered information on the traffic between nodes
  • 【CCPC-2019】【江西省赛】【霖行】J-Worker

    CCPC 2019 江西省赛 霖行 J Worker 题目 Avin meets a rich customer today He will earn 1 million dollars if he can solve a hard pro
  • 《数据结构与算法》期末考试

    数据结构与算法 期末考试 判断题 单选题 填空题 函数题 主观题 判断题 已知一棵二叉树的先序遍历结果是ABC 则CAB不可能是中序遍历结果 T 所谓 循环队列 是指用单向循环链表或者循环数组表示的队列 F 只有当局部最优跟全局最优解一致的
  • P1609 最小回文数 题解

    本题位数较大 所以只能使用字符串读入 因为是回文数 所以我们只考虑前半部分的情况就能确定一个回文数 如一个型为 x y z overline xyz xy
  • LeetCode题解—260.只出现一次的数字Ⅲ

    题目地址 260 只出现一次的数字 III 力扣 LeetCode 题解 这道题是基于寻找只出现一次的数字 上的拓展 136 只出现一次的数字 力扣 LeetCode 在 中 我们只需要把所有的数字异或一遍即可 因为只有一个数字是唯一的 但
  • HDU - 1002 A + B Problem II

    I have a very simple problem for you Given two integers A and B your job is to calculate the Sum of A B Input The first

随机推荐

  • CVE-2018-2894WebLogic未授权任意文件上传

    CVE 2018 2894WebLogic未授权任意文件上传 这个洞的限制就比较多了 限制版本 Oracle WebLogic Server版本 10 3 6 0 12 1 3 0 12 2 1 2 12 2 1 3 限制配置 该漏洞的影响
  • IDEA设置成白色背景

    遇到问题 对于习惯用eclipse的程序员本媛来说 真的不习惯Idea的黑色背景 看着就是别扭 解决办法 File Settings Appearance Behavior Theme换成 IntelliJ Light即可 注 IDEA默认
  • 如何通过谷歌云平台设置load balancing 和CDN

    1 创建instance templates 实例模板 首先 创建一个实例模板来启动一个在负载均衡器后面充当应用服务器的实例 在这个演示中 我们不会在实例中实际启动 Web 应用程序 相反 将 Apache HTTP Server 配置为在
  • 人工智能方向毕业设计_人工智能时代,理工科专业的毕业设计都被安排了

    我是16年上半年从软件开发转到算法工程师的 这些年AI 我亲眼见证了从 黑科技 跌入 俗学 的过程 早些年 在模式识别领域 例如人脸识别 语音识别等 大家都发力在数学算法 基于机器学习 的时候 虽然努力多年 但是因为技术缺陷精度却一直上不去
  • Oracle数据库的闪回技术

    当 Oracle 数据库发生逻辑损坏时 可以使用闪回技术简单快捷地进行数据库的恢复 闪回数据库使用闪回日志执行闪回 闪回删除使用回收站 其它所有技术都使用还原数据 并不 是所有闪回功能都会修改数据库 有些功能只是一些用来查询数据以往版本的方
  • 左程云 Java 笔记--链表

    文章目录 1哈希表 2有序表 3链表 3 1打印两个有序链表的公共部分 3 2判断一个链表是否为回文结构 3 3将单向链表按某值划分成左边小 中间相等 右边大的形式 3 4复制含有随机指针节点的链表 3 4 1使用哈希表 3 4 2方法二
  • Tachyou alluxio初识

    Tachyou是基于内存的分布式文件系统 如果把hdfs上层再弄一层Tachyou去存储数据 那么速度将会更快 Tachyou现在改名为Tachyou alluxio
  • 【数字电源】数字电源核心理论-"伏妙平衡"与"安秒平衡"

    1 聊一聊 今天跟大家分享的是迈克在本公众号的第三首歌曲 在bug菌心里迈克的歌早就不仅仅只是一首歌曲了 更是件值得一直品味的艺术品 本文开启数字电源的第一篇原创文章 数字电源核心理论 伏秒和安秒平衡 2 主题前言 在公众号简介中bug菌跟
  • 为什么要进行埋点?如何理解数据埋点

    我们在做网站运营 APP运营的时候 要关注事件级分析 比如按钮点击事件 漏斗转化率 只看PV UV是无法得到行动指导的 UV多了一点少了一点 无法能反映出来 我们流量的多与少 与用户真正的完成转化还差很多 举例 我们想看加入购物车和提交订单
  • Qt中 gui 模块和 widgets 模块的区别

    1 gui 模块提供了基本的图形系统抽象层 包括QPaintDevice QPainter等类 这些类构成了Qt的绘图基础 2 widgets 模块在 gui 模块的基础上 提供了完整的桌面级用户界面控件 如按钮 列表 滑块等 这些控件继承
  • VS最新安装教程

    1 访问Visual Studio官方网站 下载 Visual Studio Tools 免费安装 Windows Mac Linux microsoft com https visualstudio microsoft com zh ha
  • .NET 发展历程

    早期 NET NET Framework 1 0 4 8 1 时间 2002 02 2019 04 2002 年 2 月 23 日最早的 NET Framework 1 0 发布 终止于 2022 年 8 月 9 日发布的 NET Fram
  • ie11对象不支持此属性和方法 ie11的缓存问题

    更改eclipse的js代码 在ie11上调试 发现调用新更改的方法 在ie11的console输出里 一直提示 对象不支持此属性和方法 点击右上角设置图标 然后点击Internet选项 在常规选项卡里的 浏览器历史记录 点击设置 在弹出的
  • 【分布式系统搭建】Zookeeper完全分布式集群的搭建

    Zookeeper完全分布式集群的搭建 一 集群模式 1 单机模式 用于测试环境 在zoo cfg中只配置一个server id就是单机模式了 2 伪分布式 用于测试环境 在zoo cfg中配置多个server id 其中ip都是当前机器
  • AntV-f2开发文档

    安装 浏览器引入 复制代码 npm 安装 安装 npm install antv f2 save复制代码 引入 const F2 require antv f2 复制代码 上手 步骤 创建 Chart 图表对象 指定图表 ID 指定图表的宽
  • Qt开发经验(转载)

    0 前言说明 本文转载于https qtchina blog csdn net type blog feiyangqingyun的博客 感谢大佬的经验分析 1 开发经验 01 001 010 当编译发现大量错误的时候 从第一个看起 一个一个
  • C++ 常量引用

    黑马程序员C P94 常量引用 感觉这部分有很多内容 但目前我的理解就是在形参前加上const 防止误操作 先占个坑后面再补充
  • 第二章节:期货市场组织结构与投资者

    各组织的性质 职能 形式 组织架构 权利 义务等 期货结算制度 期货投资者种类等 第一节 期货交易所 本节考点 一 期货交易所的性质 宗旨与职能 重点掌握 二 期货交易所的组织结构 重点掌握 三 我国境内期货交易所 重点掌握 一 期货交易所
  • Java中的static关键字解析

    一 static关键字的用途 在 Java编程思想 P86页有这样一段话 static方法就是没有this的方法 在static方法内部不能调用非静态方法 反过来是可以的 而且可以在没有创建任何对象的前提下 仅仅通过类本身来调用static
  • HDU-7304 2023“钉耙编程”杭电多校赛(3)Out of Control

    2023 钉耙编程 中国大学生算法设计超级联赛 3 Out of Control 题目大意 有 n n n个数 x 1 x