Minimal coverage (貪心,最小覆蓋)

?

題目大意:先確定一個M, 然后輸入多組線段的左端和右端的端點坐標,然后讓你求出來在所給的線段中能夠

[0, M]?區域完全覆蓋完的最少需要的線段數,并輸出這些線段的左右端點坐標。

?

思路分析:

? ? ? ?線段區間的起點是0,那么找出所有區間起點小于0中的最合適的區間。

? ? ? ?因為需要盡量少的區間,所以選擇右端點更大的區間,它包含所選線段更大。

? ? ? ?如果在所有區間中找到了解,且右端點小于M,則把找到的區間的右端點定為新的線段區間的起點。

 1 #include <iostream>
 2 #include <stdio.h>
 3 #include <cstring>
 4 #include <cmath>
 5 #include <algorithm>
 6 
 7 
 8 using namespace std;
 9 
10 struct node
11 {
12     int L, R;
13 }a[100010], b[100010];
14 
15 bool cmp(node a, node b)
16 {
17     return a.R > b.R;
18 }
19 
20 int main() 
21 {
22     int M;
23     while(scanf("%d", &M) != EOF)
24     {
25         int Index = 0;
26         while(1)
27         {
28             scanf("%d%d", &a[Index].L, &a[Index].R);
29             if(a[Index].L == 0 && a[Index].R == 0)
30                 break;
31             ++Index;
32         }
33         
34         sort(a, a+Index, cmp);
35         
36         int border = 0;        // 起始邊界點為0 
37         int cnt = 0;
38         while(border < M)
39         {
40             int i = 0;
41             for(; i < Index; ++i)
42             {
43                 // a[i].R >= border提交將會Runtime error 
44                 if(a[i].L <= border && a[i].R > border)
45                 {
46                     b[cnt] = a[i];
47                     cnt++;
48                     border = a[i].R;    // 更新邊界點 
49                     break;
50                 }
51             }
52             if(i == Index)
53                 break;
54         }
55         
56         
57         if(border < M)
58             cout << "No solution" << endl;
59         else
60         {
61             cout << cnt << endl;
62             for(int i = 0; i < cnt; ++i)
63                 cout << b[i].L << " " << b[i].R << endl;
64         }
65     }
66             
67     return 0;
68 }

?

轉載于:https://www.cnblogs.com/FengZeng666/p/11120095.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/247661.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/247661.shtml
英文地址,請注明出處:http://en.pswp.cn/news/247661.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

vuex知識點

Vuex 是一個專為 Vue.js 應用程序開發的狀態管理模式&#xff1b;集中存儲和管理應用的所有組件狀態。 狀態&#xff1a;什么是狀態&#xff0c;我們可以通俗的理解為數據。Vue只關心視圖層&#xff0c;那么視圖的狀態如何來確定&#xff1f;我們知道是通過數據驅動&#xff0c…

Kafka2.0生產者客戶端使用

1 初始化配置 Kafka 通過 KafkaProducer 構造器初始化生產者客戶端的配置。 ??常用的重要配置&#xff0c;詳見官網。 bootstrap.servers&#xff1a;Kafka 集群地址&#xff08;host1:post,host2:post&#xff09;&#xff0c;Kafka 客戶端初始化時會自動發現地址&#xff0…

vuex小例

少廢話&#xff0c;先出東西 vuex main.js import Vue from vue import App from ./App import router from ./router import store from ./store Vue.config.productionTip falsenew Vue({el: #app,router,store,render: xx>xx(App) })store.js 平級目錄未建文件夾import…

[論文筆記]CVPR2017_Joint Detection and Identification Feature Learning for Person Search

Title: Joint Detection and Identification Feature Learning for Person Search; aXiv上該論文的第一個版本題目是 End-to-End Deep Learning for Person SearchAuthors: Tong Xiao1* ; Shuang Li1* ; Bochao Wang2 ; Liang Lin2; Xiaogang Wang1 Affilations: 1.The Chines…

php下的原生ajax請求

瀏覽器中為我們提供了一個JS對象XMLHttpRequet&#xff0c;它可以幫助我們發送HTTP請求&#xff0c;并接受服務端的響應。 意味著我們的瀏覽器不提交&#xff0c;通過JS就可以請求服務器。ajax(Asynchronous Javascript And XML)其實就是通過XHR對象&#xff0c;執行HTTP請求。…

HBase性能優化總結

HBase性能優化方法總結&#xff08;一&#xff09;&#xff1a;表的設計 1. 表的設計 1.1 Pre-Creating Regions 默認情況下&#xff0c;在創建HBase表的時候會自動創建一個region分區&#xff0c;當導入數據的時候&#xff0c;所有的HBase客戶端都向這一個region寫數據&#x…

.NetCore如何使用ImageSharp進行圖片的生成

ImageSharp是對NetCore平臺擴展的一個圖像處理方案&#xff0c;以往網上的案例多以生成文字及畫出簡單圖形、驗證碼等方式進行探討和實踐。 今天我分享一下所在公司項目的實際應用案例&#xff0c;導出微信二維碼圖片&#xff0c;圓形頭像等等。 一、源碼獲取 Git項目地址&…

vue2工程

vue當然可以使用script標簽引入&#xff0c;不需任何依賴即可按照vue的語法進行使用。但中大型商用項目中&#xff0c;還是建議使用工程化方式使用vue&#xff0c;vue提供了官方腳手架vue-cli&#xff0c;可以快速構建vue項目&#xff0c;腳手架會幫助開發者創建好建議的工程目…

flutte的第一個hello world程序

用命令行創建項目&#xff1a; flutter create flutterdemo VSCode或者AS連接手機后 輸入 flutter run 編譯后就可以將默認的代碼顯示在手機上了 開始寫hello world 代碼&#xff0c;這段代碼寫在根目錄\lib\main.dart文件中&#xff0c;也是Flutter主文件。 整個代碼如下 impo…

Ajax 設置Access-Control-Allow-Origin實現跨域訪問

之前遇到的問題整理 ajax跨域訪問是一個老問題了&#xff0c;解決方法很多&#xff0c;比較常用的是JSONP方法&#xff0c;JSONP方法是一種非官方方法&#xff0c;而且這種方法只支持GET方式&#xff0c;不如POST方式安全。 即使使用jquery的jsonp方法&#xff0c;type設為POST…

vue工程webpack模板配置說明

vue工程webpack模板下的配置文件非常多&#xff0c;只能在實際開發過程中反復熟悉&#xff0c;才能漸漸體會官方將配置文件拆分細化的合理性。 主要配置文件中代碼的作用從網上摘錄了比較全的一份注釋&#xff0c;做下記錄。 dev-server.js 開發服務端配置 require(./check-v…

目錄的拼接

找到被拼接文件所在的目錄&#xff0c;然后進行拼接 import os 獲取當前目錄&#xff1a; os.path.dirname(__file__) 如下&#xff0c;被拼接文件所在目錄與當前目錄的上級目錄在同一文件夾下&#xff1a; os.path.join(os.path.dirname(os.path.dirname(__file__)),‘文件夾路…

vue-resource 攔截器(interceptor)的使用

攔截器-interceptor 在現代的一些前端框架上&#xff0c;攔截器基本上是很基礎但很重要的一環&#xff0c;比如Angular原生就支持攔截器配置&#xff0c;VUE的Axios模塊也給我們提供了攔截器配置&#xff0c;那么攔截器到底是什么&#xff0c;它有什么用&#xff1f;攔截器能幫…

【GamePlay】入門篇

【GamePlay】入門篇 游戲性編程是指通過一系列游戲系統將游戲想法變成現實的過程。 本次的簡例以NPC設計為主。 通常在進行腳本設計前&#xff0c;對NPC的屬性進行基本的添加和設定&#xff0c;諸如動畫系統、物理系統等等。 1.動畫系統 添加Animator組件&#xff0c;綁定骨骼。…

vue axios POST請求中參數以form data和request payload形式的原因

HTTP請求中&#xff0c;如果是get請求&#xff0c;那么表單參數以namevalue&name1value1的形式附到url的后面&#xff0c;如果是post請求&#xff0c;那么表單參數是在請求體中&#xff0c;也是以namevalue&name1value1的形式在請求體中。通過chrome的開發者工具可以看…

vue-resource使用

vue-resource是一個http請求插件&#xff0c;遵循promise&#xff0c;類似jquery中ajax操作。 vue-resource已不被官方推薦&#xff0c;官方推薦axios插件來操作http協議。 vue-resource中提供的方法 get(url, [options]) head(url, [options]) delete(url, [options]) jso…

HttpHttps

http協議與https Http 客戶端發送一個HTTP請求到服務器的請求消息包括以下格式&#xff1a; **請求行&#xff08;request line&#xff09;、請求頭部&#xff08;header&#xff09;、空行 和請求數據四個部分組成。** Get請求例子&#xff0c;使用Charles抓取的request&…

vue2使用axios post跳坑,封裝成模塊

終于將vue-resource替換成axios了&#xff0c;其中像application/x-www-form-urlencoded發送的頭信息以及返回的response結果這兩點都需要注意一下。 其實https://github.com/mzabriskie/axios也有說明的。因為我在vue-resource中使用了Vue.http.options.emulateJSON true;&am…

axios使用

axios和vue-resource一樣&#xff0c;是一個vue中操作http的插件&#xff0c;遵循promise&#xff0c;vue官方也推薦使用axios。 安裝axios npm i axios -S axios也是在運行時需要的&#xff0c;所以要保存在dependencies中。 引入axios import axios from axios Vue.proto…

jQuery length 和 size()區別

jQuery length和size()區別總結如下&#xff1a; 1.length是屬性&#xff0c;size()是方法。 2.如果你只是想獲取元素的個數&#xff0c;兩者效果一樣既 $("img").length 和 $("img").size() 獲取的值是一樣的&#xff1b;但是如果是獲取字符串的長…