乙個叫做立方體大作戰的遊戲風靡整個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 #includeview code8 #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 }
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個面相交,得到不同的取樣值....