首页 > 其他分享 >用充分或必要或充分必要条件来转化问题

用充分或必要或充分必要条件来转化问题

时间:2023-06-22 21:22:30浏览次数:26  
标签:问题 处理 充分 转化 必要条件 区间 性质

D. Pairs of Segments

题意:给定n个区间,问是否能将每两个区间分为1组,要求组内区间有交,组间不相交,问最少需要删除多少个区间才能做到这一点?

n<=2000,l

li,ri<=1e9

题解:这题很容易让人误导成图论,但抽象成图后丢失了区间的性质使得问题不好做了。在发觉图不好处理后我们回来研究区间的性质。

研究一个问题发现其本身性质不好处理时,我们往往会采用考虑其充分或必要或充分必要条件来转化问题使得其变换后的性质容易处理。

我们发现问题等价于每组所并产生的区间不交,那么我们可以处理出每两个相交区间产生的并区间,问题即变为从这些区间选择尽量多个不交(不会有某个区间被选择多次因为这样会产生交集)。

这个问题是一个经典问题,我们将其按照左区间从小到大排序后,若有区间包含其他区间则舍去,之后每次取走最左边的区间即可。

复杂度为O(n2logn)

标签:问题,处理,充分,转化,必要条件,区间,性质
From: https://www.cnblogs.com/wjhqwq/p/17498374.html

相关文章

  • JSON 对象 与 字符串 的 相互转化
    一、JSON——》Str1.JSON对象转化为字符串StringobjStr=JSON.toJSONString(obj);2.JSON数组转化为字符串StringarrStr=JSON.toJSONString(arr);二、Str——》JSON1.字符串解析JSON对象JSONObjectobj=JSON.parseObject("String类型......
  • 单片机开发HTTP网页服务器所需要网页转化16进制工具
    一、 1.单片机开发HTTP网页服务器时需要把网页数据转化成16进制数据,这样发送方便和节省硬件资源。所以开发此工具,方便使用,可以把web各种资源转化到一个文件里。程序界面如图: 二、程序使用1.把web文件放到一个文件夹下面,程序选定此文件夹。如果生成的数据需要包含Response......
  • 字符串数组不能转化对象数组,jsonArray也转化报错
    刚开始写法------错误JSONArrayjsonArray=(JSONArray)this.getJsonFilter().get("ids");PltPayDuesModel[]payDuesModels=(PltPayDuesModel[])jsonArray.toArray();报这个[Ljava.lang.Object;cannotbecastto[Ljava.lang.String;由于无法直接,因此需要曲线救国......
  • js正则格式化日期时间自动补0的两种解法 将2022-3-4这种日期格式转化为2022-03-04
    js正则格式化日期时间自动补0的两种解法将2022-3-4这种日期格式转化为2022-03-04https://www.jb51.net/article/225324.htm+目录背景解法一思路:代码:解法二思路:总结参考背景时间日期格式化的需求很常见,也有很多工具类转换方法,比如需要将2022-3-4这种日期格式转化为2022-......
  • kvm 与 vmware 镜像互相转化
    将qcow2转换为OVF:qemu-imgconvert-Ovmdk要转换的qcow2镜像.qcow2转换后的.vmdk镜像将OVF转换为qcow2:qemu-imgconvert-fvmdk要转换的.vmdk镜像转换后的qcow2镜像.qcow2举个例子:将kvm镜像test.qcow2转换为vmware的test.vmdk镜像:qemu-imgconvert-Ovmdktest.......
  • Excel将一列数据转化为N*M的矩阵
    1、例如转化为5*6的矩阵,在B1~G1处输入如下代码,则得到第一行数据:=INDEX(A:A,(ROW()-1)*6+COLUMN()-1)2、选中B1~G1,将数据往下拉,则得到对应矩阵:3、若第一列数据过长,也可以先计算共可以分成多少行:=CEILING(MATCH("zzzzz",A:A)/6,1) ......
  • js把string转化为json
    //声明变量名为a的对象vara={a:1,b:2,c:"wangwei"};//将JSON对象转化为JSON字符,赋值给变量letstrResult=JSON.stringify(a)//查看变量strResult是什么类型typeofstrResult//'string'//JSON.parse()用于从一个字符串中解析出json对象letjsonResult=JSON.parse(str......
  • C语言:进制转换器,实现二进制、八进制、十进制、十六进制之间的相互转化
    1#include<stdio.h>2#include<stdlib.h>3#include<string.h>4#include<ctype.h>56intdec2bin(intn){//十进制转二进制7if(n==0){8return0;9}else{10return(n%2+10*de......
  • MusicGen:将文本和旋律转化为音乐
    Meta的MusicGen可以根据文本提示生成短小的新音乐片段,并可选择与现有旋律对齐。与今天的大多数语言模型一样,MusicGen基于Transformer模型。就像语言模型预测句子中的下一个字符一样,MusicGen预测音乐作品中的下一个部分。研究人员使用Meta的EnCodec音频标记器将音频数据......
  • 提升用户体验:在小程序环境中充分利用Ionic框架
    Ionic是一个用于构建跨平台移动应用程序的开源框架。它结合了HTML、CSS和JavaScript等技术,帮助开发者创建具有原生应用体验的移动应用程序。Ionic提供了一套用户界面组件和工具,可用于构建高度交互和美观的移动应用界面。 Ionic基于Angular框架,利用Angular的能力来构建复杂的......