日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

找点

發布時間:2023/12/13 综合教程 24 生活家
生活随笔 收集整理的這篇文章主要介紹了 找点 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

第一部分:題目

題目鏈接:http://acm.nyist.net/JudgeOnline/problem.php?pid=891

描述

上數學課時,老師給了LYH一些閉區間,讓他取盡量少的點,使得每個閉區間內至少有一個點。但是這幾天LYH太忙了,你們幫幫他嗎?


輸入多組測試數據。
每組數據先輸入一個N,表示有N個閉區間(N≤100)。
接下來N行,每行輸入兩個數a,b(0≤a≤b≤100),表示區間的兩個端點。輸出輸出一個整數,表示最少需要找幾個點。樣例輸入41 52 41 42 331 23 45 612 2樣例輸出131                            第二部分:思路對區間進行從小到大排序,當左端點一樣時把右端點從小到大排序。排序后從頭開始找到當前第一個有待找點的區間a,把a的左端點置為-1,表示這一次找到的點在a區間上。后續區間b與a能找到公共點的情況:1,左端點一致,那么肯定有公共點。2,a、b的左端點不一致,但b左端點小于等于當前區間a的右端點。這里需要注意:如果b的右端點小于a的右端點時,需要把a的右端點置為b的右端點。并且把b的左端點置為-1.                            第三部分:代碼

#include<stdio.h>
int main()
{
    int n,s[100][2],i;
    while(scanf("%d",&n)!=EOF)
    {
        for(i=0;i<n;i++)
        {
            scanf("%d%d",&s[i][0],&s[i][1]);
        }
        int j,t;
        for(i=0;i<n-1;i++)//從小到大排序
        {
            for(j=i+1;j<n;j++)
            {
                if(s[i][0]>s[j][0]||s[i][0]==s[j][0]&&s[i][1]>s[j][1])//左端點一致時對右端點進行排序
                {
                    t=s[i][0];
                    s[i][0]=s[j][0];
                    s[j][0]=t;
                    t=s[i][1];
                    s[i][1]=s[j][1];
                    s[j][1]=t;
                }
            }
        }
        int count=0;
        for(i=0;i<n;i++)
        {
            if(s[i][0]!=-1)//左端點為-1,已經找到一個點位于該區間
            {
                int temp=s[i][1];
                s[i][0]=-1;//找到點了 
                count++;
                for(j=i+1;j<n;j++)
                {
                    if(s[j][0]!=-1&&s[j][0]<=temp)
                    {
                        s[j][0]=-1;
                        if(temp>s[j][1])//注意,當后續區間在當前區間內部時,需要縮小范圍
                        {
                            temp=s[j][1];
                        } 
                    } 
                }
            }
        }
        printf("%d
",count);
    }
    return 0;
}

總結

以上是生活随笔為你收集整理的找点的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。