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

首頁 > 學院 > 開發(fā)設計 > 正文

翻硬幣

2019-11-14 12:06:43
字體:
來源:轉載
供稿:網友

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

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

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

如果同時翻轉左邊的兩個硬幣,則變?yōu)椋簅ooo***oooo

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

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

程序輸入:

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

程序輸出:

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

例如:

用戶輸入:


o****o**** 程序應該輸出:

5 再例如:

用戶輸入:

o**o***o** o***o**o** 程序應該輸出:

1 資源約定:

峰值內存消耗 < 64M

CPU消耗 < 1000ms

請嚴格按要求輸出,不要畫蛇添足地打印類似:“請您輸入…” 的多余內容。

所有代碼放在同一個源文件中,調試通過后,拷貝提交該源碼

注意: main函數需要返回0

注意: 只使用ANSI C/ANSI C++ 標準,不要調用依賴于編譯環(huán)境或操作系統的特殊函數。

注意: 所有依賴的函數必須明確地在源文件中 #include , 不能通過工程設置而省略常用頭文件。

提交時,注意選擇所期望的編譯器類型。

#include <cstdio>#include <iostream>#include <cstring>using namespace std;const int maxn = 1e3 + 5;char s1[maxn];char s2[maxn];int a[maxn];int main(){ scanf("%s",s1); scanf("%s",s2); int len = strlen(s1); for(int i = 0; i < len; i++){ if(s1[i] == s2[i])a[i] = 1; else a[i] = 0; } int count = 0; int k = -1; for(int i = 0; i < len; i++){ if(a[i] == 0){ if(k == -1){ k = i; } else{//如果前已經有一個1了 count += (i - k); k = -1; } } } cout << count << endl; return 0;}
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 丘北县| 昆山市| 淮安市| 抚州市| 会同县| 辉县市| 桐庐县| 徐汇区| 宁南县| 万山特区| 清镇市| 昭苏县| 辽阳市| 清丰县| 江北区| 台中县| 台湾省| 玉门市| 乌拉特前旗| 尼木县| 永胜县| 静安区| 富阳市| 达日县| 河南省| 崇礼县| 拜泉县| 永德县| 永昌县| 仁怀市| 大姚县| 思茅市| 盐亭县| 小金县| 独山县| 鄂托克前旗| 嵊州市| 凤山县| 崇仁县| 玉环县| 洛宁县|