首页 > 其他分享 >【10-24模拟赛T1】Alice 和璀璨花

【10-24模拟赛T1】Alice 和璀璨花

时间:2024-10-24 13:32:41浏览次数:5  
标签:24 10 int 璀璨 Alice long pos dp

著名的植物学家 Alice 经过多年的探索,终于找到了传说中的璀璨花。璀璨花的生长速度非常迅猛,如果不加以合适的控制,璀璨花会因为过度内耗而死亡。璀璨花的生长趋势可以用序列 \(a\) 表示,Alice 在研读前人对璀璨花的研究后总结出了一个控制序列 \(b\)。Alice 需要让璀璨花的生长趋势尽可能贴合控制序列,这样璀璨花就能尽可能快且安全地生长,以让更多人能欣赏到传说花卉的美。

Alice 可以通过基因编辑技术让 \(a\) 的任意子序列 \(a'\) 成为璀璨花的生长趋势,设 \(a'\) 的长度为 \(n'\),若 \(\forall i \in [1,n' - 1],a'_{i + 1} > b_i a'_i\),那么璀璨花的培育趋势就是安全的。另外,越长的生长趋势能让成熟的璀璨花更美,所以 Alice 想知道可能的最长的璀璨花生长趋势子序列的长度。

设 \(dp_{i,j}\) 表示前 \(i\) 个数中选 \(j\) 个数的最小结尾,可以得出转移方程:

  • 若 \(a_i > dp_{i - 1,j - 1} b_{j - 1}\),那么 \(dp_{i,j} = \min(a_i,dp_{i - 1,j})\)。

  • 若 \(a_i \leq dp_{i - 1,j - 1} b_{j - 1}\),那么 \(dp_{i,j} = dp_{i - 1,j}\)。

显然可以用滚动数组压掉一维。

但转移还是 \(O(n ^ 2)\) 的,考虑到 \(dp_{i - 1}\) 是单调不减的,我们 lower_bound 一个位置 \(p\),满足 \(dp_{i - 1,p - 1} < a_i\),\(dp_{i - 1,p} \geq a_i\)
,发现 \(\forall j \in[1,p],dp_{i,j} = dp_{i - 1,j}\)(因为 \(dp_{i - 1,j} < a_i\)),\(\forall j \in[p + 1,n],dp_{i,j} = dp_{i - 1,j}\)(因为 \(dp_{i,j - 1}\) 已经大于 \(a_i\) 了,那么 \(dp_{i,j - 1} b_{j - 1}\) 肯定大于 \(a_i\))。

最后总复杂度 \(O(n \log n)\)。

//不开 long long 见祖宗
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N = 1e6 + 9,INF = 0x7f7f7f7f7f7f7f7f;
int n;
int a[N],b[N];
int dp[N];
signed main(){
	//freopen("alice.in","r",stdin);
	//freopen("alice.out","w",stdout);
	ios::sync_with_stdio(false);
	cin.tie(0);cout.tie(0);
	cin >> n;
	for(int i = 1;i <= n;i++)
		cin >> a[i];
	for(int i = 1;i <= n;i++)
		cin >> b[i];
	memset(dp,0x7f,sizeof dp);
	dp[0] = 0;
	for(int i = 1;i <= n;i++){
		int pos = lower_bound(dp + 1,dp + n + 1,a[i]) - dp;
		if(a[i] > dp[pos - 1] * b[pos - 1])
			dp[pos] = min(dp[pos],a[i]);
	}
	for(int ans = n;ans >= 1;ans--)
		if(dp[ans] != INF){
			cout << ans;
			break;
		}
	return 0;
}

标签:24,10,int,璀璨,Alice,long,pos,dp
From: https://www.cnblogs.com/5002-qwq/p/18499393

相关文章

  • AbMole|Ossirene (AS101)(CAS号106566-58-9;目录号M6189)
    Ossirene(AS101)是一种新的IL-1β转化酶抑制剂,可以降低IL-17水平和抑制Th17细胞功能,同时其氧化还原调节活性能够抑制特定的白细胞整联蛋白(如α4β1和α4β7),以及增强调节性T细胞(Treg)的活性,具有抗炎和抗凋亡活性。 生物活性体外研究:对capase-1处理以Ossirene(AS101),Ossi......
  • 20222317 2024-2025-1 《网络与系统攻防技术》实验三实验报告
    一、实验内容本次实验目的为通过多次加密、文件格式欺骗、填充、加壳等技术手段实现恶意代码免杀,产生恶意程序,并尝试通过杀毒软件,不被杀毒软件检测出来。具体实验内容如下:1.正确使用msf编码器,使用msfvenom生成如jar之类的其他文件;2.能够使用veil,加壳工具;3.能够使用C+shellcode......
  • 2024.10.24 1234版
    起于《海奥华预言》的思考◆地球管理结构和参考持续更新中...... 英文地址:https://github.com/zhuyongzhe/Earth/tags中文地址:https://www.cnblogs.com/zhuyongzhe85作者:朱永哲 ---------------------------------------------------------------------------------......
  • 2024年韩顺平老师Python教程保姆级笔记
    代码获取:https://github.com/qingxuly/hsp_python_coursePython语言描述Python转义字符Python常用的转义字符转义字符说明\t制表符,实现对齐的功能\n换行符,\\一个\\"一个"\'一个'\r一个回车代码演示#\t制表符print("jack\t20")​#\n换行print("Hello,jack......
  • 华为OD机试真题-比赛-2024年OD统一考试(E卷)
    最新华为OD机试考点合集:华为OD机试2024年真题题库(E卷+D卷+C卷)_华为od机试题库-CSDN博客     每一题都含有详细的解题思路和代码注释,精编c++、JAVA、Python三种语言解法。帮助每一位考生轻松、高效刷题。订阅后永久可看,发现新题及时跟新。题目描述一个有N个选手参加比......
  • 2024年spring6下载
    1.进入官网https://spring.io/2.projects选3.点击github图标4.往下滑到readme,点击 SpringFrameworkArtifactsAccesstoBinaries下的SpringFrameworkArtifacts 5.往下滑到SpringRepositories,点击https://repo.spring.io 6.点击Artifacts7.在搜索栏搜索libs-miles......
  • Origin 2024 中文版 下载及安装教程
    安装包下载Origin2024中文版安装包点击下载安装和使用教程:1.通过上方链接下载软件后,选中下载的【Origin2024】压缩包,右击选择解压到【Origin2024】。 2.进入解压后的文件夹,双击打开【Setup】文件夹。 3.右键Setup.exe文件,选择以管理员身份运行。 4.点击“下一步”。 5.选择......
  • 报error:0308010C:digital envelope routines::unsupported错--nodejs版本过高(nvm安
    最近小编入职实习,运行(npmrundev)前端项目时报error:0308010C:digitalenveloperoutines::unsupported的错,一查发现原来是nodejs版本过高,与项目不匹配。接下来介绍更换nodejs版本的方法。第一种:官网下载通过nodejs官网下载安装,但有个缺陷,不同版本的nodejs无法顺利的切换......
  • 借助1024这天,回顾在CSDN的这一年:从技术成长到影响力飞跃
    这一年回顾在CSDN的这一年:从技术成长到影响力飞跃1.粉丝的波动与增长2.内容积累:628篇文章与15个专栏3.资源分享:1800个资源4.解答社区问题:23000次互动5.排行榜荣誉:地域周榜与原力值榜第一6.技术成长与小收益7.展望未来回顾在CSDN的这一年:从技术成长到影响力飞......
  • IDEA 2024.2.2 最新安装教程(附激活-2099年~)
    访问IDEA官网下载IDEA2024.2.2版本的安装包。下载补丁https://pan.quark.cn/s/fcc23ab8cadf检查进入IDEA中后,点击菜单Help|Register,即可查看IDEA的激活到期时间:免责声明:本文中的资源均来自互联网,仅供个人学习和交流使用,严禁用于商业行为,下载后请在24小......