国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

ZCMU-1434-糖果迷陣

2019-11-14 11:55:34
字體:
來源:轉載
供稿:網友

1434: 糖果迷陣

Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 34  Solved: 14[Submit][Status][Web Board]

Description

Inna 喜歡吃糖和游戲糖果迷陣.今天,他推出了新游戲“糖果迷陣2:刷新”。游戲由一個nxm的矩陣表組成。矩陣每行包含一個帶有侏儒的單元格和一塊帶有糖果的單元格,和一些空的單元格。游戲有多次操作,每次操作玩家需要選中所有那些侏儒沒獲得糖果的行,并發出指令“Let’s go!”.之后所有選中行的侏儒開始同時向右移動,每秒每個侏儒只能向當前單元格的右側相鄰單元格移動一格,操作一直持續到發生以下事件之一時:·一些侏儒到達所在行的最右邊·一些侏儒到達糖果所在單元格獲得糖果當所有侏儒得到糖果時結束Inna是如此聰明得設計出這個游戲. 可是你們呢? 你的任務是用最優的方法來完成這個游戲,也就是用最少的操作來完成這個游戲。 

Input

輸入的第一行包含兩個整數n和m(1≤N≤1000;2≤M≤1000)。

每個接下來的n行包含m個字符 – 代表這局的“糖果迷陣:刷新”。字符“*”表示該領域的空白單元格,字符“G”代表一個侏儒和字符“S”代表一個糖果。矩陣不包含其他字符。這是保證每行包含一個字符“G”和一個字符“S”。

Output

在一行打印單個整數 - 來表示完成游戲的最優解,或-1如果目標不能在給定的游戲場中可以實現所需的運動或最小數目。

Sample Input

3 4*G*SG**S*G*S1 3S*G

Sample Output

2-1

HINT

 請使用cin>>str; 或者scanf("%s",str); 輸入

【解析】

這道題其實很坑,然人覺得是和圖有關要dfs或者bfs,其實吧這個其實沒有那么難,意思就是G是侏儒,S是糖果在的地方,我們可以讓侏儒一起向右走,問什么時候可以讓所有的侏儒都找到糖果,那其實就是算G和S中間有幾個不同的位置,比如樣例1總共有兩個不同的中間隔著的。比如說第一行和第三行中間都只隔了一個,而第二行隔了2個,所有總共是兩個不同就輸出2。

#include<iostream>#include<cstdio>#include<cstring>using namespace std;int main(){    char s[10020];    int a[1002];    int i,n,m,j,flag,k,flag1,count1;    while(~scanf("%d%d",&n,&m))    {        flag1=0;        count1=0;        memset(a,0,sizeof(a));        for(i=0;i<n;i++)        {            scanf("%s",s);            k=0;            j=0;            flag=0;            while(s[j]!='S')            {                if(s[j]=='G')                {                    flag=1;                }                else if(flag==1)                {                    k++;                }                j++;            }            a[k]++;            if(a[k]==1)                count1++;            if(flag==0)            {                flag1=1;            }        }        if(flag1==1)            PRintf("-1/n");        else            printf("%d/n",count1);    }    return 0;}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 石景山区| 伊金霍洛旗| 威宁| 哈尔滨市| 广丰县| 九江县| 嘉义市| 剑河县| 阳朔县| 抚宁县| 木兰县| 和平区| 辽中县| 平度市| 项城市| 吉安市| 平陆县| 泸西县| 石屏县| 祁连县| 凭祥市| 浦城县| 河曲县| 长岭县| 独山县| 鄂伦春自治旗| 纳雍县| 本溪| 肇州县| 鲁山县| 宜州市| 尖扎县| 米易县| 南溪县| 天长市| 泊头市| 石门县| 乐亭县| 钟祥市| 洪雅县| 宜春市|