首页 > 其他分享 >线性DP P1020 [NOIP1999 提高组] 导弹拦截

线性DP P1020 [NOIP1999 提高组] 导弹拦截

时间:2024-08-20 23:48:21浏览次数:9  
标签:bb int mid else while P1020 NOIP1999 l2 DP

前置:

二分查找, 最长单调不升子序列,最长单调不降子序列(dilworth)。

题解:

可以用来练习手写二分,二分优化的最长上升子序列时间复杂度O(nlogn)。但是坑是非常多的。

代码:

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 1e5 + 10;

int a[N], n, b[N], bb[N];
int l1 = 1, l2 = 1;

int find(int x){
	int l = 0, r = l1 + 1;
	while(l + 1 != r){
		int mid = (l + r) >> 1;
		if(b[mid] < x)r = mid;
		else l = mid;
	}
	return r;
}

int find2(int x){
	int l = 0, r = l2 + 1;
	while(l + 1 != r){
		int mid = (l + r) >> 1;
		if(bb[mid] >= x)r = mid;
		else l = mid;
	}
	return r;
}

void solve() {
    while(cin >> a[++n]);
	b[1] = a[1];
	bb[1] = a[1];

	for(int i = 2; i < n; i++){
		if(a[i] <= b[l1])b[++l1] = a[i];
		else b[find(a[i])] = a[i];

		if(a[i] > bb[l2])bb[++l2] = a[i];
		else bb[find2(a[i])] = a[i];
	}
	cout << l1 << '\n' << l2;
}

int main() {
    ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
    int _ = 1; //cin >> _;
    while (_--) solve();
}

 

标签:bb,int,mid,else,while,P1020,NOIP1999,l2,DP
From: https://www.cnblogs.com/Amire/p/18370590

相关文章

  • udp协议
    发送端packagecom.shujia.day20.udpdemo2;importjava.net.DatagramPacket;importjava.net.DatagramSocket;importjava.net.InetAddress;importjava.util.Scanner;/*1:建立udp的socket服务2:将要发送的数据封装成数据包3:通过udp的socket服务,将数据包......
  • 树形 dp 做题笔记
    在这个随笔中,会有笔者的一些做题笔记,包括但不限于树形dp的思想、解题技巧、代码实现等。CF1926GVladandTroubleatMIT\(\texttt{*1900}\)。TAG:\(\texttt{树形dp}\)\(dp_{i,S,P}\)为\(i\)的子树内是否存在S和P的状态。转移方程为:当\(s_i\)为C时dp[x]......
  • [AtCoder - tdpc_game] :ゲーム 题解
    [AtCoder-tdpc_game]:ゲーム题解一道小清新\(dp\)题。定义\(dp_{i,j}\)为第一堆山还有\(i\)个物品,第二堆山还有\(j\)个物品,すぬけ君能取得物品的最大价值。由于只能取两座山最上面的物品,假设当前两座山分别有\({x,y}\)个物品,すぬけ君选后只能有两种情况,分别为\(d......
  • 学懂C++(三十九):网络编程——深入详解 TCP 和 UDP 的区别和应用场景
    目录一、TCP的特点及应用场景1.可靠性2.流控制和拥塞控制3.有序传输4.应用场景二、UDP的特点及应用场景1.无连接2.不可靠性3.轻量级4.支持广播和多播5.应用场景三、TCP和UDP的区别四、TCP和UDP的工作原理1.TCP的工作原理三次握手数据传输......
  • 用UDP协议实现跨主机文件传输,实现下载与上传文件(FTFP)
    要求:实现下载服务器目录上任意文件与上传本地文件到服务器特定目录下tftp协议概述简单文件传输协议,适用于在网络上进行文件传输的一套标准协议,使用UDP传输特点:是应用层协议基于UDP协议实现数据传输模式:octet:二进制模式(常用)服务器端:tftp下载模型TFTP通信过程总结......
  • 实现网络聊天室(UDP)
    项目需求:如果有用户登录,其他用户可以收到这个人的登录信息如果有人发送信息,其他用户可以收到这个人的群聊信息如果有人下线,其他用户可以收到这个人的下线信息服务器可以发送系统信息服务器端:#include<myhead.h>structsockaddr_inserveraddr,caddr;enumtype_t//枚举{......
  • 动态dp
    T1一共\(n\)颗糖果,第\(i\)颗的价值为\(a[i]\),你不能连着选两颗,请问你的选到的最大价值为多少显然有如下写法:设\(dp[i][0/1]\)表示选到了第\(i\)颗,第\(i\)颗选或不选显然有转移:\(dp[i][0]=max(dp[i-1][0],dp[i-1][1])\)\(dp[i][1]=max(dp[i-1][......
  • 动态dp & 矩阵加速递推
    广义矩阵乘法我们定义两个矩阵\(A,B\)在广义矩阵乘法下的乘积为\(C\),其中\[C=\begin{bmatrix}\max\limits_{i=1}\limits^{m}A_{1,i}+B_{i,1}&\max\limits_{i=1}\limits^{m}A_{1,i}+B_{i,2}&\dots&\max\limits_{i=1}\limits^{m}A_{1,i}+B_{i,k}\\\......
  • tcp与udp的总结+connect阻塞+tcp三次握手、四次挥手+常见的服务器IO(发送数据+接收数
    一,TCP与UDP的基本总结TCP(传输控制协议)和UDP(用户数据报协议)是两种主要的传输层协议。TCP是面向连接的,提供可靠、顺序的传输,适用于需要高可靠性的应用,如网页浏览和文件传输。它通过重传机制和流量控制确保数据完整性。UDP是无连接的,速度快但不保证数据的可靠性和顺序,适用于对实时性......
  • 预设性DP
    预设性DP从最简单的起DP搬运工2Description给你n,Kn,Kn,K,求有多少个111到nnn的排列,恰好有KKK个数i(1<i<n)i(1<i<n)i(1<i<n)满足ai−1,ai+1a_{i-1},a_{i+1}ai−1​,ai+1​都小于aia_iai​。InputFormat一行两个整数n,Kn,Kn,K。OutputFormat一行一个整数......