站外题求助
  • 板块学术版
  • 楼主Dream_Creator卷王
  • 当前回复3
  • 已保存回复3
  • 发布时间2023/3/11 11:03
  • 上次更新2023/10/23 21:57:23
查看原帖
站外题求助
529722
Dream_Creator卷王楼主2023/3/11 11:03

宝藏 1000ms/256mb

【问题描述】

小 A 得到了一堆宝藏,分散在一维的格子上,有些格子是空的,有些格子上有一个宝藏。

小 A 想要把宝藏一个接着一个都堆在最左侧,他想要请求你的帮助。

你可以站在一个空的格子里向左推或者向右拉宝藏。形如(.#人 -> #人.)(#人. -> .#人)

输出最小的操作次数或说明无解(输出 1-1)。

【输出格式】

第一行一个 TT,表示数据组数。

接下来 2×T2\times T 行每 22 行表示一组数据:

每组数据第一行一个正整数 NN 表示格子的个数,接下来一行一个长度为 NN 的字符串,保证仅含有 #.

【输出格式】

TT 行,每行一个正整数表示答案

【输入样例】

8
6
###...
5
##.#.
8
#.#.#.#.
6
#.####
6
####.#
9
.##..#...
9
##.###...
13
..####.......

【输出样例】

0
1
6
-1
-1
7
9
20

【数据规模】

对于 30%30\% 的数据,1T,N101\le T,N\le 10
对于 50%50\% 的数据,1N181\le N\le 18
对于 70%70\% 的数据,1N2001\le N\le 200
对于 100%100\% 的数据,1T100,1N10000001\le T\le 100,1\le \sum N\le 1000000.

2023/3/11 11:03
加载中...