1. 程式人生 > >藍橋杯 翻硬幣

藍橋杯 翻硬幣

問題描述

小明正在玩一個“翻硬幣”的遊戲。

桌上放著排成一排的若干硬幣。我們用 * 表示正面,用 o 表示反面(是小寫字母,不是零)。

比如,可能情形是:**oo***oooo

如果同時翻轉左邊的兩個硬幣,則變為:oooo***oooo

現在小明的問題是:如果已知了初始狀態和要達到的目標狀態,每次只能同時翻轉相鄰的兩個硬幣,那麼對特定的局面,最少要翻動多少次呢?

我們約定:把翻動相鄰的兩個硬幣叫做一步操作,那麼要求:

輸入格式

兩行等長的字串,分別表示初始狀態和要達到的目標狀態。每行的長度<1000

輸出格式

一個整數,表示最小操作步數。

樣例輸入1 **********
o****o****
樣例輸出1 5 樣例輸入2 *o**o***o***
*o***o**o***
樣例輸出2

1

簡單題,不多解釋,直接找出不同的位置,相鄰兩個位置相減。

#include<iostream>
#include<cstring>
using namespace std;
char a[1001], b[1001];
int Count, c[1001];
int f()
{
	int i,sum = 0;
	for ( i = 0;i < strlen(a);i++)
		if (a[i] != b[i])
			c[Count++] = i;
	i = 0;
	while (i < Count)
	{
		sum += c[i + 1] - c[i];
		i = i + 2;
	}
	return sum;
}
int main()
{
	cin >> a >> b;
	cout << f();
	return 0;
}

相關推薦

藍橋 硬幣 貪心

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

藍橋 硬幣

問題描述 小明正在玩一個“翻硬幣”的遊戲。 桌上放著排成一排的若干硬幣。我們用 * 表示正面,用 o 表示反面(是小寫字母,不是零)。 比如,可能情形是:**oo***oooo 如果同時翻轉左邊的兩

藍橋 硬幣(貪心)

問題描述 小明正在玩一個“翻硬幣”的遊戲。 桌上放著排成一排的若干硬幣。我們用 * 表示正面,用 o 表示反面(是小寫字母,不是零)。 比如,可能情形是:**oo***oooo 如果同時翻轉左邊的

第四屆藍橋第八題 硬幣

i++ nbsp ans namespace == pos else main 硬幣 題解:簡單貪心, 比賽之前寫寫水題 #include <iostream> #include <cstring> #include <strin

藍橋 矩陣硬幣(打表+二分)

網上其他人的答案好像都是用數學方法解決的。做這道題的時候一看就感覺是找規律的題,所以先打個表。因為後面要用到大數處理,所以是Java語言打表程式碼(就是按題目意思暴力):import java.io.FileNotFoundException; import java.io.

藍橋題解】矩陣硬幣

歷屆試題 矩陣翻硬幣 時間限制:1.0s 記憶體限制:256.0MB 提交此題 問題描述   小明先把硬幣擺成了一個 n 行 m 列的矩陣。   隨後,小明對每一個硬幣分別進行一次 Q 操作。   對第x行第y列的硬幣進行 Q 操作的定義:將所有

藍橋 PREV-6-硬幣

小明正在玩一個“翻硬幣”的遊戲。 桌上放著排成一排的若干硬幣。我們用 * 表示正面,用 o 表示反面(是小寫字母,不是零)。 比如,可能情形是:**oo***oooo 如果同時翻轉左邊的兩個硬幣,則變為:oooo***oooo 現在小明的問題是:如果已知了初始狀態和要達到的目標狀態,每次只能同時翻

矩陣硬幣 藍橋 大數開方 大數相乘

問題描述   小明先把硬幣擺成了一個 n 行 m 列的矩陣。  隨後,小明對每一個硬幣分別進行一次 Q 操作。  對第x行第y列的硬幣進行 Q 操作的定義:將所有第 i*x 行,第 j*y 列的硬幣進行翻轉。  其中i和j為任意使操作可行的正整數,行號和列號都是從1開始

硬幣藍橋

上題 時間限制: 1 Sec 記憶體限制: 128 MB 提交: 29 解決: 18 [提交][狀態][討論版] 題目描述 小明正在玩一個“翻硬幣”的遊戲。 桌上放著排成一排的若干硬幣。我們用 * 表示正面,用 o 表

歷屆試題 硬幣藍橋

小明正在玩一個“翻硬幣”的遊戲。桌上放著排成一排的若干硬幣。我們用 * 表示正面,用 o 表示反面(是小寫字母,不是零)。比如,可能情形是:**oo***oooo如果同時翻轉左邊的兩個硬幣,則變為:oooo***oooo現在小明的問題是:如果已知了初始狀態和要達到的目標狀態,每次只能同時翻轉相鄰的兩個硬幣,那

藍橋_PREV-34_矩陣硬幣

問題描述   小明先把硬幣擺成了一個 n 行 m 列的矩陣。隨後,小明對每一個硬幣分別進行一次 Q 操作。對第x行第y列的硬幣進行 Q 操作的定義:將所有第 i*x 行,第 j*y 列的硬幣進行翻轉。其中i和j為任意使操作可行的正整數,行號和列號

藍橋 矩陣硬幣

article compare 畫蛇添足 equals http 等於 最大值 行號 兩個 矩陣翻硬幣 本文轉自 https://blog.csdn.net/xiaofengcanyuelong/article/details/79255105 小明先把硬幣擺成了一個

藍橋:矩陣硬幣(大數開根號)

  對於10%的資料,n、m <= 10^3;  對於20%的資料,n、m <= 10^7;  對於40%的資料,n、m <= 10^15;  對於10%的資料,n、m <= 10^1000(10的1000次方)。 我的思路:他是問翻之前有多少個硬幣是反面朝上的,所以這個反面朝上的

藍橋 歷屆試題 硬幣(貪心)

小明正在玩一個“翻硬幣”的遊戲。 桌上放著排成一排的若干硬幣。我們用 * 表示正面,用 o 表示反面(是小寫字母,不是零)。 比如,可能情形是:**oo***oooo 如果同時翻轉左邊的兩個硬幣,則變為:oooo***oooo 現在小明的問題是:如果已知了初始狀態和要達到的目標狀態,每次只能同時翻

藍橋 歷屆試題 6.硬幣

/*問題描述小明正在玩一個“翻硬幣”的遊戲。桌上放著排成一排的若干硬幣。我們用 * 表示正面,用 o 表示反面(是小寫字母,不是零)。比如,可能情形是:**oo***oooo如果同時翻轉左邊的兩個硬幣,則變為:oooo***oooo現在小明的問題是:如果已知了初始狀態和要達到

藍橋硬幣

問題描述 小明正在玩一個“翻硬幣”的遊戲。 桌上放著排成一排的若干硬幣。我們用 * 表示正面,用 o 表示反面(是小寫字母,不是零)。 比如,可能情形是:**oo***oooo 如果同時翻轉左邊的

藍橋-矩陣硬幣

  小明先把硬幣擺成了一個 n 行 m 列的矩陣。   隨後,小明對每一個硬幣分別進行一次 Q 操作。   對第x行第y列的硬幣進行 Q 操作的定義:將所有第 i*x 行,第 j*y 列的硬幣進行翻轉。   其中i和j為任意使操作可行的正整數,行號和列號都是從1開始。   當小明對所有硬幣都進行了一次 Q

藍橋歷屆試題----矩陣硬幣

矩陣翻硬幣問題描述小明先把硬幣擺成了一個 n 行 m 列的矩陣。隨後,小明對每一個硬幣分別進行一次 Q 操作。對第x行第y列的硬幣進行 Q 操作的定義:將所有第 i*x 行,第 j*y 列的硬幣進行翻轉。其中i和j為任意使操作可行的正整數,行號和列號都是從1開始。當小明對所有

矩陣硬幣 數學 藍橋

    小明先把硬幣擺成了一個 n 行 m列的矩陣。隨後,小明對每一個硬幣分別進行一次 Q 操作。對第x行第y列的硬幣進行 Q 操作的定義:將所有第 i*x 行,第 j*y列的硬幣進行翻轉。其中i和j為任意使操作可行的正整數,行號和列號都是從1開始。    當小明對所有硬幣都進行了一次 Q操作後,他發現了一個

藍橋 歷屆試題 硬幣(Java)

小明正在玩一個“翻硬幣”的遊戲。 桌上放著排成一排的若干硬幣。我們用 * 表示正面,用 o 表示反面(是小寫字母,不是零)。 比如,可能情形是:**oo***oooo 如果同時翻轉左邊的兩個硬幣,則變為:oooo***oooo 現在小明的問題是:如果已知了初始狀態和要達到的目標狀態,每次只能同時翻