小Hi小Ho的驚天大作戰 掃雷 一

2021-08-17 03:43:21 字數 1509 閱讀 4454

真題描述(友情提示題目太長)

每個測試點(輸入檔案)存在多組測試資料。

每個測試點的第一行為乙個整數task,表示測試資料的組數。

在一組測試資料中:

第1行為1個整數n,表示迷宮的寬度。

第2行為n個整數a_1 … a_n,依次表示迷宮第二行的n個格仔裡標註的數字。

對於100%的資料,滿足1<=n<=10^5, 0<=a_i<=3.<>

對於100%的資料,滿足符合資料描述的地圖一定存在。

對於每組測試資料,輸出2行,其中第一行先輸出一定為地雷的格仔的數量,然後按照從小到大的順序輸出所有一定為地雷的格仔的位置,第二行先輸出一定不為地雷的格仔的數量,按照從小到大的順序輸出所有一定不為地雷的格仔的位置。

2

31 1 1

101 2 1 2 2 3 2 2 2 2

1 2

2 1 3

7 1 3 5 6 7 9 10

3 2 4 8

我的思路有些暴力,大致就是對於首位的數字進行分類討論。

其餘的都是一些dp的基本思想。

#include

#include

#include

using

namespace

std;

const

int maxn=100005;

int t,n,o[maxn],x[maxn];

int l1,l2,b[maxn],c[maxn];

int ans[5][maxn],s;

int main()

l1=l2=s=0;

scanf("%d",&n);

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

scanf("%d",&x[i]);

if(n==1)

else

if(x[1]==1)

}o[0]=o[n+1]=0;

if(!you&&x[n]==o[n-1]+o[n])

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

o[i]=0;

o[2]=1;you=0;

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

}if(!you&&x[n]==o[n-1]+o[n])

}if(x[1]==2)

}if(s==1)

}else

}//printf("%d\n",s);

printf("%d",l1);

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

printf(" %d",b[i]);

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

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

printf(" %d",c[i]);

puts("");

}return0;}

/*51 1 1 1 1

1 0 0 1 0

0 1 0 0 1

*/

小Hi和小Ho的禮物

某人有n袋金幣,其中第i袋內金幣的數量是ai。現在他決定選出2袋金幣送給小hi,再選2袋金幣送給小ho,同時使得小hi和小ho得到的金幣總數相等。他想知道一共有多少種不同的選擇方法。具體來說,有多少種下標四元組 i,j,p,q 滿足i,j,p,q兩兩不同,並且i j,p q,ai aj ap aq。...

小Hi和小Ho的禮物

某人有n袋金幣,其中第i袋內金幣的數量是ai。現在他決定選出2袋金幣送給小hi,再選2袋金幣送給小ho,同時使得小hi和小ho得到的金幣總數相等。他想知道一共有多少種不同的選擇方法。具體來說,有多少種下標四元組 i,j,p,q 滿足i,j,p,q兩兩不同,並且i j,p q,ai aj ap aq。...

hihoCoder 1606 小Hi和小Ho的密碼

時間限制 10000ms 單點時限 1000ms 記憶體限制 256mb 描述小hi和小ho一直使用加密的方式傳輸訊息。他們使用如下方法來生成一組密碼 首先小hi和小ho選擇乙個整數 n pk 其中p質數 k是正整數,也即n是質數或質數的冪 其次,他們會求出兩個整數a和b滿足0 a b n,並且,n...