ACM FZUoj2009 1573解題報告

2021-06-05 13:33:07 字數 848 閱讀 4860

大學自習室

演算法:

這道題我做了好久....一直被誤導著

旁邊有另乙個空座位,可以是左邊,也可以是右邊(放書包用的...);

為了環境相對穩定,滿足要求1的同時,roam的座位必須是離兩邊過道最遠的;

在教室的最後一排 (-__-!)。

然後有約定了幾個條件:

只考慮教室最後一排中間部分的座位,兩邊就是過道;

每個座位都有乙個編號,若有n(1<=n<=50)個座位,則座位編號從左到右依次為 0,1,2,…,n-1.

輸入資料使用乙個長度等於座位數的字串 seat 表示,字串中的每乙個字元對應乙個座位的狀態,其中的e(大寫字母)表示座位沒人,p(大寫字母)表示座位已經有人了。

輸入包括多組資料。

每組資料輸入資料的第一行是乙個數字n,(1<=n<=50),表示該教室最後一排有n個座位。第二行是乙個字串,表示字串seat。

對於每組輸出資料,輸出只有一行,即為你所找到的座位的編號。如果有多個符合條件的座位,則僅輸出其中編號最小的那個。

演算法:1.先用陣列接收字串,再把陣列賦給已賦初值的的陣列,儲存接收的字元。。。

2.以座位旁必須有空座位為條件(我就是被這個給害的,當只有『e』時也輸出0了,但它應該輸出的是-1),當陣列裡有兩個相鄰元素都為『e』時,就把為『e』的兩個位置記錄下來,分別存放到另乙個陣列,陣列下標對應位置值。。

3.設定乙個變數p=0,來和前面出現『e』的位置一起與中點相減取絕對值比較,即fabs(b[i]-(k-1)/2)

4.特殊情況,當測試資料為『e』'e'時要輸出0..

**:

USACO Hamming Codes 解題報告

資料小,暴力搜尋可以搞定。但是推薦使用dfs,每個節點 數 有取與不取兩個分支。注意 0是必須出現的。證明如下 最終得到的結果序列中,0是必須出現的,證明如下 如果存在另乙個滿足要求的結果序列s 其最小值為a1 n 0,那麼序列s s n 是滿足條件的最小解,且首元素為0 id xpli1 prog...

USACO Closed Fences 解題報告

幾何題看著就很有畏懼感。這裡用的是最 的演算法,時間複雜度應該在n 2。還沒看別人的解題報告,不過我猜nlogn的解法是有的。比如判斷乙個fence是不是valid的時候,這裡將所有的線段兩兩比較,看是否相交。但是有個叫line sweep的演算法,可以在nlogn的時間複雜度內完成。既然accep...

Wiggle Subsequence解題報告

這道題和最長子序列,divisible subset題目類似,都可以用o n2 的時間複雜度完成。可以想象,對於第i個數,dp i dp j 1,當且僅當dp j 1 dp i 而且nums j 和nums i 的差值和j所處位置的差值符號相反。所以,如下 class solution if dp ...