首页 > 其他分享 >自由线段树

自由线段树

时间:2024-06-06 10:04:01浏览次数:12  
标签:ll int 线段 自由 nod 505 tt dp

#include<bitsstdc++.h>
#define ll long long
#define maxn 1000005
using namespace std;
struct nod{
	int l,r,v;
	nod(){}
	nod(int a,int b,int c) {l=a; r=b; v=c;}
};
int n,q;
int num[505][505];
ll dp[505][505];
vector<nod> now;
ll dfs(int l,int r){
	if (dp[l][r]!=-1) return dp[l][r];
	if (l==r) return dp[l][r]=0; 
	dp[l][r]=1ll<<60;
	for (int k=l;k<r;k++) 
	{
		ll cost=0;	
		// for (nod tt:now)
        for (vector<nod>::iterator tt = now.begin(); tt < now.end(); tt++)
			if (max((*tt).l,l)<=min((*tt).r,r)) 
			{
				if (!((*tt).l<=l && r<=(*tt).r))
					if ((*tt).l<=k && k+1<=(*tt).r) cost+=(*tt).v;
			}
		dp[l][r]=min(dp[l][r],dfs(l,k)+dfs(k+1,r)+cost);
	}
	return dp[l][r];
}
int main(){
	memset(dp,-1,sizeof(dp));
	cin>>n>>q;
	int l,r;
	for (int i=1;i<=q;i++) {cin>>l>>r; num[l][r]++;}
	for (int l=1;l<=n;l++) 
        for (int r=l;r<=n;r++) 
            if (num[l][r]) 
                now.push_back(nod(l,r,num[l][r]));
	cout<<dfs(1,n)+q<<endl;
}

标签:ll,int,线段,自由,nod,505,tt,dp
From: https://www.cnblogs.com/caterpillor/p/18234497

相关文章

  • 兴达易控232自由转profinet网关接扫码枪配置及测试案例
    兴达易控232自由口转profinet网关接扫码枪配置及测试案例232自由口转Profinet网关(XD-PNR100/300)的主要功能就是将具有RS232接口的设备(如扫码枪、打印机、传感器等)接入到Profinet网络中,从而实现了传统设备与现代化工业以太网之间的无缝通信和数据交换。本案例是232自由口转Profin......
  • #线段树#CF1371F Raging Thunder
    洛谷传送门CF1371F分析其实掉出区间边界或洞内就算消失,最终球只会掉到最左侧的<,中间的><,和最右侧的>在线段树上维护左右边界上最长的<,>,<>,><和区间内最长的<>,><即可代码#include<cstdio>#include<cctype>#include<algorithm>usingnamespacestd;constintN......
  • 基于Android的校园自由贸易系统设计与实现
    临近毕业,许多毕业生都要在离校之前清理自己的物品。以前大多数学生会选择丢弃,造成了资源的大量浪费。而近几年,二手交易市场在校园中如雨后春笋般发展,书籍和某些耐用品一般通过二手交易市场或二手群交易。前者流程繁琐,耗时耗力。后者商品质量,售后得不到保障,还容易因为交涉不清引......
  • 1689D Lena and Matrix (曼哈顿距离转切比雪夫距离/随机化/线段树)
    记一道有趣的题:P题意这道题很有意思。给定地图上若干个黑色的点,求这样一个点的坐标,满足其到图中任何一个黑色点的最大曼哈顿距离最小。\(max(|a-x_i|+|b-y_i|),i=1,2..k\)方法一曼哈顿距离和且比雪夫距离可以互相转化,曼哈顿转切比雪夫如下:\((x,y)\to(x+y,x-y)\)转化后......
  • 线段树合并复杂度证明
    以CF600E为例,没看过题目的先去看题。本题的线段树做法,即对题目所给树中每个结点所在子树建树维护数字出现情况。此做法中,当前节点和其兄弟节点对应的线段树需要合并到父节点上,最后父节点上权值update到新树。也就是说对于每个非叶子节点,其有x个子节点,就要合并x次(其实也可以看成x-......
  • 1500PLC通过232自由口转profinet网关接ABB扫码枪通讯方案
    一、现状:在实际的生产环境中,越来越多的自动化设备采用扫码枪录入代替手动录入信息的方式进行操作。二、了解现场现场要求在不动其他设备和程序的情况下让ABB扫码枪与1500PLC通讯,在拿到现场的需求时兴达易控的专项技术为其制定了方案。 三、制定方案:在不动其他设备和程序的......
  • 【模板】线段树
    #include<iostream>#defineintlonglongusingnamespacestd;constintMAXX=1e5+11;inta[MAXX];structnode{ intl,r,sum,add;//add为懒标记}tree[MAXX*4];voidpushup(intpos){ tree[pos].sum=tree[pos*2].sum+tree[pos*2+1].sum;}......
  • 线段树入门(Segment Tree)
    线段树入门(SegmentTree)基本线段树与树状数组功能类似,实现了点的修改与区间的查询:首先实现基本的线段树的构建:#include<iostream>#include<vector>usingnamespacestd;classsegmentTree{public:segmentTree(intn,vector<int>nums){size=4*n;......
  • 从矩阵角度理解吉司机线段树
    前几天打算学写吉司机线段树,写到区间历史最值的时候炸了,这些标记的复杂性让我有点望而却步,但是当我看到warzone大佬的矩阵角度理解吉司机线段树时,我知道这就是我想看的东西。作为我学完之后的总结,我决定写一篇学习笔记。warzone的题解更为简洁,而我写的这篇会稍微更加详细一点......
  • 洛谷1803 凌乱的yyy / 线段覆盖 【贪心】
    凌乱的yyy/线段覆盖题目背景快noip了,yyy很紧张!题目描述现在各大oj上有nnn个比赛,每个比赛的开始、结束的时间点是知道的。yyy认为,参加越多的比赛,noip就能......