vijos p1883 月光的魔法

2021-06-28 20:19:41 字數 2304 閱讀 3031

影幾欺哄了眾生了

天以外——

月兒何曾圓缺

有些東西就如同月光的魔法一般.

luke是愛著vijos的.

他想為自己心愛的東西畫些什麼.

就畫n個圓吧.

把它們的圓心都固定在x軸上.

圓與圓.

為了愛,兩兩不能相交.

為了愛,它們可以互相貼在一起.

內切或外切,都是允許的.

vijos的美麗,在於人心.

vijos的孩子們,一定能告訴大家:luke畫的圓究竟把平面分割成了多少塊?

月光恬美地灑在大地上.

luke知道,如果什麼都不畫,平面就只有一塊.多美呢!

luke知道,只畫乙個圓,平面就分成了兩塊.也很美呢!

但luke還是要多畫一些的,因為他真的深愛著vijos呢.

輸入資料第一行:輸出乙個整數n,1<=n<=300,000.表示圓的個數.

之後n行,每一行有2個整數,x[i]和r[i]表示圓心固定在x[i]的位置,半徑為r[i].

-1,000,000,000<=x[i]<=1,000,000,000

1<=r[i]<=1,000,000,000

所有圓都是唯一的,不會出現重疊.

輸出只有一行,要求輸出平面被分割成了多少塊.

21 3

5 1 3

3

2 21 1

3 1

5
4

7 5-9 11

6
關於這道題,我確實花了不少功夫,這道題的關鍵在於所有的圓位置關係只有內切、外切、內含、外含四種關係,不存在兩個圓相互交叉。所以理論上有n個圓,平面就被分成n+1個,之所以多是因為有些圓被其他幾個圓分成了兩個了,看懂這一點就成功了一點了。接下來就是**問題了,我的思路就是先給圓排序,左端點優先,由小到大排。如果左端點相同半徑大的在前面。這之後就請看**吧,相關解釋在**裡面,我覺得更清晰點。

評測狀態

accepted

題目p1883 月光的魔法

遞交時間

2015-02-27 12:25:33

**語言

c評測機

vijo***

消耗時間

355 ms

消耗記憶體

4948 kib

評測時間

2015-02-27 12:25:35

編譯成功

foo.c: in function 'result':

foo.c:32:15: warning: variable 'k' set but not used [-wunused-but-set-variable]

a[300000]; /*1<=n<=300,000,所以構造乙個盛300000元素的陣列,在這說明一點,這個陣列要在所有函式外面,不要放在主函 數里,否則會報錯,這是因為這個陣列占用空間太大,主函式裡的陣列最多好像只能開到千位,當然這是c(目前我只學了c ,c++剛了解),別的語言還不清楚*/

void

result

(struct yuan a,int n)

;int

cmp(const

void *a,const

void *b)

intmain

() qsort(a,n,sizeof(a[0]),cmp);/*陣列排序,如果是c++的話用sort會更方便也更為穩定,原因可以看看兩個函式 寫cmp函式的區別,一目了然*/

result(a,n);//這個用來尋找有幾個圓被分成了兩個

} return

0;

}void

result

(struct yuan a,int n)

if(a[p].right!=a[j].left)//如果乙個圓平分,那麼平分它的圓應該是連續的

q=j;

if((a[i].right==a[q].right)&&(a[q].left==a[p].right))//判斷該圓是否符合被平分

j++;

if(j>=n)

break;

}if(o)

sum++;

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

}

P1883函式題解

這道題是說在 0,1000 中找到乙個值,使得在所有函式中這個值所對應的最大值最小 可能描述的不清楚,詳細看題目 通過畫圖發現,如果將最大值連線起來的話,那麼所有的點將連成乙個類似二次函式的影象,於是我們可以採用三分的方法,如果進行暴力列舉的話會超時,所以使用三分法。為什麼不用二分呢?二分是不能夠判...

洛谷 P1883 函式

給定n個二次函式f1 x f2 x fn x 均形如ax 2 bx c 設f x max,求f x 在區間 0,1000 上的最小值。輸入格式 輸入第一行為正整數t,表示有t 組資料。每組資料第一行乙個正整數n,接著n行,每行3個整數a,b,c 用來表示每個二次函式的3個係數,注意二次函式有可能退化...

ZZULIOJ 1883 蛤瑋當上主席

time limit 1 sec memory limit 128 mb submit 343 solved 231 submit status web board 蛤瑋一直很想當主席,掌管自己的國家.對於乙個富強的國家,擁有屬於自己的貨幣是非常重要的.我們假設蛤瑋的國家的貨幣在流通中只會以自然數的...