這次就來討論一下gpe 12 月的程式比賽吧。

 

一共9題

10566 : Fourth Point!!

11067: Cola

11174: Homer Simpson

10404: Primary Arithmetic

10655: Sumsets

10709: Recover Factorial

2008-19: Set partition

2008-28: Longest monotonically increasing subsequence

2009-24: Unique lines

 

10566: Fourth Points !!(簡單題)

這題就給你相鄰的兩個平行四邊形的邊,找出第4個點在哪,題目沒有說明邊上的兩點順序關係,但是2個邊其

中有一個會是一樣的。先想辦法把邊上的3點關係搞好,在用向量的概念去解就好了。

 

11067: Cola (簡單題)

這題就是3個空瓶可以換一瓶新的,算出最多可喝幾瓶,但一開始可以借空瓶,最後要還。

就借0瓶~3瓶都去try 看看,看哪個解最好。

 

11174: Homer Simpson(簡單題)

給a,b ,c ,要你求ax + by = (c -g)的最好解,最好的意思是第一個條件是g 要越小越好,再

來是x+y要越大越好a,b,c 的範圍都不大,所以就窮舉就好了。

 

10404: Primary Arithmetic (偏簡單)

算出兩數有幾個進位,用mod 的概念去解,可以不用轉成string 來解。

 

10655: Sumsets(簡單題)

給定一堆數, 找出數中 a+b+c = d, 讓d 最大,這題時間很長有30sec

所以就3層for 迴圈就馬上搞掉了。但是要時間少的話,

我本來是想說把式子看成a+b = d - c ,去找配對,但是coding 起來

比較麻煩,就沒做了。

 

10709: Recover Factorial (中等題)

給定一個數n ,找出有一個階乘的prime numbers 有n 個

先做篩法,然後用一層for先產生

m[i ] = m[i-1] + (i有幾個prime)

m[i] 表示m! 有幾個prime

如果input n 的話,就去剛建好的m 的array 去找,用binary search.

 

2008-19: Set partition (勇者題)

給一個set 都是數字,找出所有可以平分的可能

n 有30 個,每個數字又大,所以不能用knapsack 去做。

所以我一開始很猶豫要不要exhaustive search 但是最差會有

2^30。但事實証明,還是硬爆就就對了,題目要求要有排序可以

用set ,自己定義operator < 。

 

2008-28: Longest monotonically increasing subsequence(簡單題)

這題一看就知道是找lis 了,但是要找出所有的。

哈,數字最多才9 個, 一樣窮舉2^9 就馬上OK 嚕!

 

2009-24: Unique lines (中等題)

找出所有點能構成的line,前題是每題line 都要不一樣。

一樣先找出2點配對的所有可能。然後開一個空間去存

找到的distinct lines,拿目前找到的line去跟存好的

lines 比較有沒有不一樣。但怎麼比?

可以先比gradient ,記得不能有floating point產生。

y1/x1 , y0/x0 ,去算y1*x0 = ? x1*y0 有沒有一樣

有一樣就不加入空間裡,再來是平行線的問題,只要

把線上的一點要同時記在空間就好了。拿此點去跟目前要

比的線的其中一點作gradient ,再做一次gradient 的比較。

 

整體而言,算簡單~

文章標籤
全站熱搜
創作者介紹
創作者 lettice0913 的頭像
lettice0913

斑的家

lettice0913 發表在 痞客邦 留言(0) 人氣(4,056)