藍橋杯2016初賽 壓縮變換 (c 版本)

2021-10-09 23:59:37 字數 1362 閱讀 6137

; ///記錄原始資料

int ans[maxn]

; ///記錄答案

int b[maxn]

; ///這是乙個01序列,某乙個位置p上的位置為1,代表著a[p]這個數字最後出現的位置是p,而a[p]曾經出現的位置上都是0

int n;

maplastindex;

struct tree

t[maxn*4]

;void build(int p, int l, int r)

int mid=

(l+r)

>>1; ///

build(p*2,l,mid)

;///建左子樹

build(p*2+1,mid+1,r)

; ///建右子樹

t[p].sum=t[p*2].sum+t[p*2+1].sum;

}void change(int p,int x,int v)//單點修改

int mid=

(t[p].l+t[p].r)

>>1;

if(x<=mid) change(p*2,x,v)

;else change(p*2+1,x,v)

; t[p].sum=t[p*2].sum+t[p*2+1].sum;

}int ask(int p,int x,int y)

int mid=

(l+r)/2;

int ans=0;

if(x<=mid)

if(y>mid)

return ans;

}int main(

) build(1,1,n)

; for(int i=1;i<=n;i++)

else

lastindex[num]

=i; ///更新

} for(int i=1;i<=n;i++)

printf(

"\n");

}

藍橋杯2016初賽 壓縮變換

題目描述 小明最近在研究壓縮演算法。他知道,壓縮的時候如果能夠使得數值很小,就能通過熵編碼得到較高的壓縮比。然而,要使數值很小是乙個挑戰。最近,小明需要壓縮一些正整數的序列,這些序列的特點是,後面出現的數字很大可能是剛出現過不久的數字。對於這種特殊的序列,小明準備對序列做乙個變換來減小數字的值。變換...

密碼脫落,藍橋杯,2016初賽

題目描述 x星球的考古學家發現了一批古代留下來的密碼。這些密碼是由a b c d 四種植物的種子串成的序列。仔細分析發現,這些密碼串當初應該是前後對稱的 也就是我們說的映象串 由於年代久遠,其中許多種子脫落了,因而可能會失去映象的特徵。你的任務是 給定乙個現在看到的密碼串,計算一下從當初的狀態,它要...

藍橋杯2016初賽 卡片換位

你玩過華容道的遊戲嗎?這是個類似的,但更簡單的遊戲。看下面 3 x 2 的格仔 a b 在其中放5張牌,其中a代表關羽,b代表張飛,代表士兵。還有乙個格仔是空著的。你可以把一張牌移動到相鄰的空格中去 對角不算相鄰 遊戲的目標是 關羽和張飛交換位置,其它的牌隨便在 都可以。輸入輸入存在多組測試資料,對...