1106 POI2007 立方體大作戰tet

2022-05-12 09:39:46 字數 1482 閱讀 6032

乙個叫做立方體大作戰的遊戲風靡整個byteotia。這個遊戲的規則是相當複雜的,所以我們只介紹他的簡單規

則:給定玩家乙個有2n個元素的棧,元素乙個疊乙個地放置。這些元素擁有n個不同的編號,每個編號正好有兩個

元素。玩家每次可以交換兩個相鄰的元素。如果在交換之後,兩個相鄰的元素編號相同,則將他們都從棧中移除,

所有在他們上面的元素都會掉落下來並且可以導致連鎖反應。玩家的目標是用最少的步數將方塊全部消除。

第一行包含乙個正整數n(1<=n<=50000)。接下來2n行每行乙個數ai,從上到下描述整個棧,保證每個數出現且

僅只出現兩次(1<=ai<=n)。初始時,沒有兩個相同元素相鄰。並且保證所有資料都能在1000000步以內出解。

第一行包含乙個數m,表示最少的步數。

樣例輸入155

2314

1435

2樣例輸入231

2312

3樣例輸出1

2樣例輸出2

3貪心一下。。。似乎從下面消比較好。。。然後就過了。。。

似乎是因為如果這樣消,就是從內往外消,然後這樣顯然是最優的。。。

1 #include2 #include3 #include4 #include5 #include6 #include7 #include

8 #include9 #include10 #include11 #include

12#define inf 1000000000

13#define maxn 100000+5

14#define maxm 10000+5

15#define eps 1e-10

16#define ll long long

17#define for0(i,n) for(int i=0;i<=(n);i++)

18#define for1(i,n) for(int i=1;i<=(n);i++)

19#define for2(i,x,y) for(int i=(x);i<=(y);i++)

20#define for3(i,x,y) for(int i=(x);i>=(y);i--)

21#define for4(i,x) for(int i=head[x],y=e[i].go;i;i=e[i].next,y=e[i].go)

22using

namespace

std;

23int

t[maxn],s[maxn],top,ans;

24int

read()

27while(ch>='

0'&&ch<='9')

28return x*f;29}

30int

main()

45 top--;46}

47else51}

52 printf("%d"

,ans);

53return0;

54 }

view code

POI2007 立方體大作戰tet

description 乙個叫做立方體大作戰的遊戲風靡整個byteotia。這個遊戲的規則是相當複雜的,所以我們只介紹他的簡單規 則 給定玩家乙個有2n個元素的棧,元素乙個疊乙個地放置。這些元素擁有n個不同的編號,每個編號正好有兩個 元素。玩家每次可以交換兩個相鄰的元素。如果在交換之後,兩個相鄰的元...

bzoj4312 立方體 構造

有若干行,每行三個數字 x y z 代表一組資料,表示立方體的長寬高加 1 第 i 行資料輸出case i 第i組資料的答案 2 1 2 2 2 2 case 1 4 case 2 15 x,y,z 1000 鄭州培訓d3考試題t2,orzydc 大概是第乙個正兒八經做的構造題吧 主要考察智商,像我...

shader入門16 立方體紋理

1.什麼是立方體紋理?簡單的說就是6張紋理組成的乙個方塊形狀的紋理.像骰子一樣,有六個面.2.立方體紋理有什麼用?立方體紋理通常用於作為反射源,以及環境反射來實現玻璃,金屬的效果 3.為什麼立方體紋理要做成這個形狀?以立方體的中心為原點,向任意方向投射射線,可以與立方體6個面相交,得到不同的取樣值....