第三週作業 C

2021-10-03 17:19:57 字數 1318 閱讀 2482

bool

cmp(qujian x,qujian y)

}}

y=x+

1;

那麼首先本題會出現不能覆蓋的情況,分為兩種:

1、一開始起始位置不是1,那麼永遠不能覆蓋

if

(line[0]

.a!=1)

2、覆蓋到最後區間的右端點比要求的區間右端點還小

if

(y>x)

其餘情況是可以實現的,那麼為了能夠覆蓋區間,我們選擇的區間要足夠長,當我們確定左端點的時候,右端點要盡可能的大

if

(line[j]

.a<=y&&line[j]

.b>=x)

else

if(line[j]

.a>y)

這樣操作就是先找區間右端點最大的區間,然後往下找,區間個數++,再對當前區間找到右端點最大的區間,依次往下直到最後,能覆蓋就輸出區間個數,不能就輸出-1

**如下:

#include

#include

using

namespace std;

struct qujian

line[

100000];

bool

cmp(qujian x,qujian y)}}

intmain()

sort

(line,line+n,cmp)

;int count=1;

//第乙個區間如果能覆蓋就可以直接輸出結果了,所以預設為1

if(line[0]

.a!=1)

//開頭不是1一定不可行

else

else

if(line[j]

.a>1)

break

;//不符合說明找到了,退出

}while

(x!=t)

//不到最右端就往右找

else

if(line[j]

.a>y)}if

(y>x)

//如果迴圈到後來發現最大的也不能覆蓋掉,就返回-1

else

}printf

("%d"

,count);}

}

執行結果:

C 第三週作業

作業一 課本各例題 例題一 例題1.功能 顯示輸出各種變數所佔的節數 include iostream using namespace std int main cout 例題二 功能 布林型別使用舉例 include includeusing namespace std int main bool...

第三週C 作業

1.輸入課本各個例題,除錯執行程式,並分析程式,將每乙個程式改寫2到3個版本,自己分析程式結果,然後再除錯執行,核對分析結果的對錯。bool型別使用舉例 include 編譯預處理命令 include 使用控制符boolalpha需使用此標頭檔案 using namespace std 使用標準名空...

C 第三週作業

作業一 例 功能 顯示輸出各種整型變數所佔的位元組數 include 編譯預處理命令 using namespace std 使用標準名空間std int main 主函式 作業三 功能 習題求值 include include using namespace std int main k 13.7...