Crane UVA 1611 解題報告

2021-09-12 10:37:35 字數 736 閱讀 2625

思路:這道題要注意審題,因為人家沒說必須要求最簡,在規定次數內弄完就行。。。本來就是對的,因為感覺不是最簡,花裡胡哨改了乙個小時,看完題解崩潰了qaq。

先判斷自己所選的區間是不是在所選範圍內,如果可以,則直接進行交換,如果不可以,則利用貪心的思想,使想要排序的值盡可能的靠近他的位置,注意這裡要判斷奇、偶。

額至於為啥這樣做,其實跟普通的選擇排序差不多,就是找好這個值本來需要放的位置,然後把它放過去,只不過這次變成了整個區間的交換,本質還是一樣的,只不過判斷的多了點。

下面給出ac**:

#include using namespace std;

typedef long long ll;

const int inf=0x3f3f3f3f;

const int maxn=1e5+10;

struct node

ans[maxn];

int a[maxn],n;

void swap(int l,int r)

void swap1(int l,int r)

int main()

}if(pos==i) continue;

if((pos-i)*2+i-1<=n)

else

else

i--;}}

printf("%d\n",post);

for(int i=0;i}

return 0;

}

Crane UVA 1611 思路 構造

題目 題目鏈結 思路 思路 構造,假設 i 在pos 位置,那麼如果 pos i 1 2 i 1 n,那麼可以操作一次換過來,如果他們之間元素個數是偶數,那麼交換 i pos,如果是奇數,交換 i pos 1,然後再經過一次就可以換到指定位置,如果是奇數並且pos n,先與前乙個元素交換一下,然後執...

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...