On Segment's Own Points(可用区间长度)

2024-08-31 13:08

本文主要是介绍On Segment's Own Points(可用区间长度),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题目连接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=42180#problem/A

思路一:

排序合并,但是比较繁琐

代码:

#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
int n,l,r;
struct node
{
    int l,r;
}pe[103];
bool cmp(node a,node b)
{
    if(a.l==b.l)return a.r<b.r;
    else return a.l<b.l;
}
int main()
{
    while(~scanf("%d",&n))
    {
        int sum=0;
        node hb[103];
        scanf("%d%d",&l,&r);
        for(int i=0;i<n-1;i++)
        {
            scanf("%d%d",&pe[i].l,&pe[i].r);
        }
        sort(pe,pe+n-1,cmp);
        int t=0;
        hb[0].l=pe[0].l;
        hb[0].r=pe[0].r;
        for(int i=1;i<n-1;i++)
        {
            if(hb[t].r<pe[i].l)
            {
                t++;
                hb[t].l=pe[i].l;
                hb[t].r=pe[i].r;
            }
            else if(hb[t].r<pe[i].r)
            {
                hb[t].r=pe[i].r;
            }
        }
        for(int i=0;i<=t;i++)
        {
            if(hb[i].l>=l&&hb[i].r<=r)sum+=hb[i].r-hb[i].l;
            else if(hb[i].l<=l&&hb[i].r>l&&hb[i].r<=r)sum+=hb[i].r-l;//中间那个判断忘了!!!!!!!
            else if(hb[i].l>=l&&hb[i].l<r&&hb[i].r>=r)sum+=r-hb[i].l;
            else if(hb[i].l<=l&&hb[i].r>=r){sum=r-l;break;}
            //else if(hb[i].l>=r || hb[i].r<=l){sum+=0;}
        }
        if(n==1)printf("%d\n",r-l);
        else
        printf("%d\n",r-l-sum);
    }
    return 0;
}


思路二:

打表赋值0-1

#include<cstdio>
#include<iostream>
int mark[100+5]={0};
int main()
{int i,j,n,f1,s1,f,s,count=0;scanf("%d",&n);scanf("%d%d",&f1,&s1);for(i = f1; i < s1; i++)mark[i] = 1;for(i = 1; i < n; i++){scanf("%d%d",&f,&s);for(j = f; j < s; j++)mark[j] = 0;}for(i = f1; i < s1; i++)if(mark[i]==1)count++;printf("%d",count);return 0;
}
思路三:

++、--当flat为0的时候才累加长度

#include<stdio.h>
#include<string.h>
int flag[105];
int main (){
int n,m,a,b,s,e,sum,k;
int i,j;
while(scanf("%d",&n)!=EOF){
memset(flag,0,sizeof(flag));
scanf("%d%d",&s,&e);
for(i=1;i<n;i++){
scanf("%d%d",&a,&b);
flag[a]++,flag[b]--;
}
sum=0;
k=0;
for(i=0;i<=100;i++){
sum+=flag[i];
if(i>=s&&i<e&&sum==0)
k++;
}
printf("%d\n",k);
}
}

这篇关于On Segment's Own Points(可用区间长度)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1123995

相关文章

Nginx使用Keepalived部署web集群(高可用高性能负载均衡)实战案例

《Nginx使用Keepalived部署web集群(高可用高性能负载均衡)实战案例》本文介绍Nginx+Keepalived实现Web集群高可用负载均衡的部署与测试,涵盖架构设计、环境配置、健康检查、... 目录前言一、架构设计二、环境准备三、案例部署配置 前端 Keepalived配置 前端 Nginx

Redis高可用-主从复制、哨兵模式与集群模式详解

《Redis高可用-主从复制、哨兵模式与集群模式详解》:本文主要介绍Redis高可用-主从复制、哨兵模式与集群模式的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝... 目录Redis高可用-主从复制、哨兵模式与集群模式概要一、主从复制(Master-Slave Repli

Java实现按字节长度截取字符串

《Java实现按字节长度截取字符串》在Java中,由于字符串可能包含多字节字符,直接按字节长度截取可能会导致乱码或截取不准确的问题,下面我们就来看看几种按字节长度截取字符串的方法吧... 目录方法一:使用String的getBytes方法方法二:指定字符编码处理方法三:更精确的字符编码处理使用示例注意事项方

MySQL双主搭建+keepalived高可用的实现

《MySQL双主搭建+keepalived高可用的实现》本文主要介绍了MySQL双主搭建+keepalived高可用的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,... 目录一、测试环境准备二、主从搭建1.创建复制用户2.创建复制关系3.开启复制,确认复制是否成功4.同

centos7基于keepalived+nginx部署k8s1.26.0高可用集群

《centos7基于keepalived+nginx部署k8s1.26.0高可用集群》Kubernetes是一个开源的容器编排平台,用于自动化地部署、扩展和管理容器化应用程序,在生产环境中,为了确保集... 目录一、初始化(所有节点都执行)二、安装containerd(所有节点都执行)三、安装docker-

hdu 1754 I Hate It(线段树,单点更新,区间最值)

题意是求一个线段中的最大数。 线段树的模板题,试用了一下交大的模板。效率有点略低。 代码: #include <stdio.h>#include <string.h>#define TREE_SIZE (1 << (20))//const int TREE_SIZE = 200000 + 10;int max(int a, int b){return a > b ? a :

hdu4267区间统计

题意:给一些数,有两种操作,一种是在[a,b] 区间内,对(i - a)% k == 0 的加value,另一种操作是询问某个位置的值。 import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import

hdu4417区间统计

给你一个数列{An},然后有m次查询,每次查询一段区间 [l,r] <= h 的值的个数。 import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamRead

hdu3333区间统计

题目大意:求一个区间内不重复数字的和,例如1 1 1 3,区间[1,4]的和为4。 import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;

论文阅读笔记: Segment Anything

文章目录 Segment Anything摘要引言任务模型数据引擎数据集负责任的人工智能 Segment Anything Model图像编码器提示编码器mask解码器解决歧义损失和训练 Segment Anything 论文地址: https://arxiv.org/abs/2304.02643 代码地址:https://github.com/facebookresear