離散化 貪心 球賽

2021-08-14 07:07:35 字數 1708 閱讀 8137

題目描述

超級球迷 h 每週六晚上都會坐在電視前看球,從不錯過一場比賽。

但是上周末,h 突然有乙個重要的約會,於是他只能教他三歲的弟弟小 h 記錄所有比賽

的比分。但是當他約會回來時,他發現小 h 不僅認真的記錄了每一場比賽的最終比分,還

把一些比賽的中間比分也記錄下來,而更糟糕的是,小 h 並沒有區分比賽的兩個隊,同一

場比賽的比分可能被記錄成 1-2,也可能是 2-1。因此,若是有一場比賽的最終得分是 5-3,

可能實際上被小 h 記錄的分數有

1-0 3-2 2-3 3-4 5-3

題目描述

現在 h 已經拿到了小 h 記錄的所有比分,他想知道,在這個週末他由於約會至少錯過

了多少場比賽。注意小 h 記錄的比分是沒有先後順序的。

輸入輸出格式

測試資料。

對於每一組資料,第一行有乙個整數 s,表示小 h 記錄的比分數目,以下每行用 x-y 的

格式描述一條比分,x 和 y 都是非負整數。

輸出格式:

對於輸入資料中的每乙個測試資料,你需要輸出乙個整數 m,表示在這個測試資料中,

h 至少錯過了 m 場比賽。

說明在第一組輸入資料中,兩場比賽對應的比分可能是 1-0 2-0 0-3 和 2-1。

在第二組輸入資料中,三場比賽對應的比分可能是 0-0 5-0、3-1 和 2-2。

100%的資料中 n ≤ 5,s ≤ 1 000,每一場比賽的比分都在 longint(pascal) / long(c++)

(2147483647)範圍內。

分析

這題乍一看這咋做啊?

然後仔細想了想(看了看題解)想到,其實這題可以把本來沒有規律的點想出規律。

你看,要求的是最少的次數,那麼我們可以發現,如果把每個比分都分成較大的較小的兩部分(用測試資料畫張圖表出來你就懂了),那麼這樣會使比賽更少。

可是這樣好像還是看不出什麼規律啊?

仔細想了想,如果要減少關鍵字的話,那就把大的積分排個序吧!這樣就保證大積分不會干擾小積分的比賽數統計了(當然你也可以排小積分)

這裡可能會有誤解,這裡指的是將大積分和小積分存在乙個雙關鍵字的陣列裡,然後排序也是多關鍵字,只不過大積分是主關鍵字,小積分是次要關鍵字而已。

然後發現大積分就不再關題目什麼事了!很容易了有木有╰( ̄▽ ̄)╮

這時候發現小積分構成了一道熟悉的題目:攔截飛彈!只不過是上公升序列而已

那不就容易了嘛!

順便一提,我發現攔截飛彈不能用二分圖做,會超時。。

無奈只能用o(n^2)的貪心做了。

#include 

#include

#include

#include

using

namespace

std;

int t,n;

int i,j,ans,p;

int sy[1001];

struct s

s[1001];

bool cmp(s a,s b)

sort(s+1,s+n+1,cmp);

ans=1;sy[ans]=s[1].a;

for (i=2;i<=n;i++)

else sy[p]=s[i].a;

}printf("%d\n",ans);

}}

離散化問題

題目傳送 uvalive 4127 the sky is the limit 大白書離散化簡單題。找了半天錯誤,居然是少輸出乙個空行。頓時感覺自己萌萌噠。其中計算幾何是套的之前留下的模板。ac include include include include include include inclu...

座標離散化

問題 在w h的格仔上畫了n條垂直或者水平的寬度為1的直線。求出這些直線將格仔劃分為了多少個區域?限制條件 1 w,h 1000000 1 n 500 輸入 首先輸入w,h,n 然後輸入對應的x1,x2,y1,y2.輸出區域的個數。輸入 10 10 5 x1 1 1 4 9 10 x2 6 10 4...

特徵離散化

在工業界,很少直接將連續值作為邏輯回歸模型的特徵輸入,而是將連續特徵離散化為一系列0 1特徵交給邏輯回歸模型,這樣做的優勢有以下幾點 0.離散特徵的增加和減少都很容易,易於模型的快速迭代 1.稀疏向量內積乘法運算速度快,計算結果方便儲存,容易擴充套件 2.離散化後的特徵對異常資料有很強的魯棒性 比如...