【題解】FBI序列

題目描述

? ? ? ? 兩伙外星人策劃在未來的XXXX年侵略地球,侵略前自然要交換信息咯,現在,作為全球保衛隊隊長,你截獲了外星人用來交換信息的一段僅由“F”,“B”,“I”,“O”組成的序列。為了保衛地球和平,為了使家園不受破壞,你要機智地破解密碼,勇敢地迎擊外星人!記住,你不是一個人在戰斗!你不是一個人!你的背后是千千萬萬的地球人!

?

輸入輸出格式

輸入格式

? ? ? ? 一組僅由“F”、“B”、“I”、“0”組成的序列(“F”、“B”、“I”、“0”這四個字母中的某一個或某幾個不一定會出現,且保證序列長度≤2000)

? ? ? ? 規定這個序列所要傳達的信息就是這組序列有多少個“FBI”(子序列)

?

輸出格式

? ? ? ? 一行,一個數,表示這組序列有多少個“FBI”的子序列(保證答案≤2^31,且FBI必須是正序,即IBF或者BIF或者FIB或者BFI或者IFB都不能算是一個FBI)

?

輸入輸出樣例

輸入樣例

FBIIBFOI

?

輸出樣例

4

?

題解

? ? ? ? 樸素做法很明顯,枚舉F,B,I的位置,暴力統計,時間復雜度O(n3),數據水的話還能卡過去。

? ? ? ? 顯然我們不能用這種做法。可以考慮枚舉B的位置i(假設從1開始計數),然后統計字符串的第一位到第i-1位里F的數量和第i+1位到第n位I的數量,根據乘法原理統計結果,而事實上統計F,I的數量也可以用兩個變量維護,枚舉i的過程中判斷要不要更改這兩個變量,這樣即可做到O(n)的時間復雜度。

#include <iostream>
#include <cstdio>
#include <cstring>using namespace std;char s[2005];
int len;
int cnt_F, cnt_I;
int ans;int main()
{scanf("%s", s);len = strlen(s);for(register int i = 0; i < len; ++i){if(s[i] == 'I') ++cnt_I;}for(register int i = 0; i < len; ++i){if(s[i] == 'B') ans += cnt_F * cnt_I;else if(s[i] == 'F') ++cnt_F;else if(s[i] == 'I') --cnt_I;}printf("%d", ans);
}
參考程序

?

轉載于:https://www.cnblogs.com/kcn999/p/10353481.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/248549.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/248549.shtml
英文地址,請注明出處:http://en.pswp.cn/news/248549.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

vue基礎(上篇)

?有粉絲在私信中聯系博主&#xff0c;希望博主能夠系統的出一篇關于vue的基礎篇\textcolor{blue}{ 有粉絲在私信中聯系博主&#xff0c;希望博主能夠系統的出一篇關于 vue的基礎篇}有粉絲在私信中聯系博主&#xff0c;希望博主能夠系統的出一篇關于vue的基礎篇 ? 今天他來了…

depends用于測試程序運行所缺少的文件,可以幫我們很快找到問題

DEPENDS工具和DUMPBIN工具使用閱讀目錄(Content) 1.Depends2.DUMPBIN2.1 開啟CMD2.2 移動目錄到C:\Program Files (x86)\Microsoft Visual Studio\VC98\Bin2.3 運行命令:VCVARS32.BAT2.4 下面就可以調用dumpbin.exe命令了在系統部署運行時我們經常發現某個程序在開發機器中可以…

友聯

歡迎來到小站友鏈區&#xff0c;歡迎━(&#xff40;?)ノ亻!。 ljc20020730學長巨佬_WA自動機珂朵莉最可愛了BLUESKY007雷姆最可愛啦揚子曰他的代碼是神奇的lukelin機房最強如果你想要成為chhokmah小站的朋友的話&#xff0c;請你先把小站加入為友鏈站喲(&#xff3e;&#xf…

vue基礎(中篇)

?有粉絲在私信中聯系博主&#xff0c;希望博主能夠系統的出一篇關于vue的基礎篇\textcolor{blue}{ 有粉絲在私信中聯系博主&#xff0c;希望博主能夠系統的出一篇關于 vue的基礎篇}有粉絲在私信中聯系博主&#xff0c;希望博主能夠系統的出一篇關于vue的基礎篇 ? 今天他來了…

DR圖像的畸變校正

DR圖像容易產生S形、枕形和局部失真的情況&#xff0c;這給醫生對圖像的判斷帶來干擾。而且在醫學圖像的三維重建中&#xff0c;未經校正的圖像進行重建&#xff0c;還會帶來一定的重影等干擾。因此&#xff0c;畸變校正是DR圖像進行后續處理&#xff0c;不得不對待的一個問題。…

【CF global1 D / CF1110D】 Jongmah

題意 你有n個數字&#xff0c;范圍[1, m]&#xff0c;你可以選擇其中的三個數字構成一個三元組&#xff0c;但是這三個數字必須是連續的或者相同的&#xff0c;每個數字只能用一次&#xff0c;問這n個數字最多構成多少個三元組? 分析 這里想談一下DP的一個套路&#xff0c;捆綁…

vue基礎(下篇)

介紹 對vue組件的介紹網上有很多大家可以自行查詢 組件 (Component) 是 Vue.js 最強大的功能之一 組件可以擴展 HTML 元素&#xff0c;封裝可重用的代 組件注冊 全局注冊 Vue.component(‘組件名稱’, { }) 第1個參數是標簽名稱&#xff0c;第2個參數是一個選項對象 全局組…

MS17-010漏洞復現

攻擊機&#xff1a;192.168.148.132 kali linux2018.2 x64 靶機&#xff1a;192.168.1.129 win7 x64 首先用msfconsole的smb模塊掃描&#xff0c;看看是否有漏洞 use auxiliary/scanner/smb/smb_ms17_010 set rhosts 192.168.1.129 &#xff08;目標主機&#xff09; Ho…

watch 和 computed

<template><div class"hello"><h1>{{ msg }}</h1><h2>Essential Links</h2><!-- watch/computed比較 --><div><input v-model"firstName" type"text"><input v-model"lastName&q…

[BZOJ]3173: [Tjoi2013]最長上升子序列

題解: 考慮按照元素升序加入 所以對位置在其后的元素LIS無影響 然后從前面位置的最大值轉移過來就行 ,,,,平衡樹無腦模擬 #include <algorithm> #include <iostream> #include <cstring> #include <cstdio> #include <vector> #include <s…

轉:HTTP協議簡介與在python中的使用詳解

1. 使用谷歌/火狐瀏覽器分析 在Web應用中&#xff0c;服務器把網頁傳給瀏覽器&#xff0c;實際上就是把網頁的HTML代碼發送給瀏覽器&#xff0c;讓瀏覽器顯示出來。而瀏覽器和服務器之間的傳輸協議是HTTP&#xff0c;所以&#xff1a; HTML是一種用來定義網頁的文本&#xff0c…

深受企業青睞的華為云

作為中國經濟活力與韌性的重要保障&#xff0c;無數中小企業也在為奪得各自領域的冠軍你追我趕。而席卷全球的數字化轉型浪潮&#xff0c;則將這場冠軍爭奪賽推向了關鍵節點。企業數字化的第一步就是業務云端化&#xff0c;對企業來說云計算是不可或缺的數字底座。上云&#xf…

一個程序員的水平能差到什么程度?

老板覺得公司里都是男的&#xff0c;缺少一點陰柔之氣&#xff0c;想平衡一下&#xff0c;正巧當時互金公司倒了一大批&#xff0c;大批簡歷投到公司&#xff0c;老板以為自己也是技術出身&#xff0c;就招了一個三年工作經驗的女程序員&#xff0c;互金出來的&#xff0c;要價…

vue路由詳解版一目了然

概念 路由的本質就是一種對應關系&#xff0c;比如說我們在url地址中輸入我們要訪問的url地址之后&#xff0c;瀏覽器要去請求這個url地址對應的資源。 那么url地址和真實的資源之間就有一種對應的關系&#xff0c;就是路由。 路由分為前端路由和后端路由 1).后端路由是由服務…

go語言環境搭建

1、windows環境搭建   1、安裝go   2、安裝goland開發工具包 2、test.go /* 可執行文件&#xff0c;包名必須是main */ package main /* fmt 字符串格式化的包 */ import "fmt"/*main入口函數*/ func main() { fmt.Printf("Hello, world" )} View Code…

進階函數

一、函數對象 函數是第一類對象&#xff1a;函數名指向的值可以被當做參數傳遞 1.函數名可以被傳遞 def func():print(func)f func # 函數名可以當做變量名 print(f) # f指向的也是函數func指向函數體代碼的內存地址 2.函數名可以被當做參數傳遞給其他參數 def func():print…

vue腳手架基礎API全面講解【內附多個案例】

vscode-插件補充 vue文件代碼高亮插件-vscode中安裝 代碼提示插件-vscode中安裝 知識點自測 想學會今天的內容, 先測測這幾個會不會 表達式, 變量是什么 new的作用和含義 實例化對象 什么是對象上的, 屬性和方法 對象的賦值和取值 this的指向 npm/yarn是什么, package.json干…

mysql 和 sqlserver sql差異比較

mysql:select * from table_name limit 100,200;--取出從100到200的數據 獲取時間&#xff1a;mysql:now() mysql tinyint&#xff08;0,1&#xff09; → bit float &#xff08;decimal(19,4)&#xff09;→ moneytext → ntextvarchar →nvarchar 轉載于:https://www.cnblo…

Vue 過濾器、計算屬性、偵聽器 圖解版 一目了然

文章目錄本篇學習目標1. vue基礎1.0_vue基礎 v-for更新監測1.1_vue基礎_v-for就地更新1.2_vue基礎_虛擬dom1.3_vue基礎_diff算法情況1: 根元素變了, 刪除重建情況2: 根元素沒變, 屬性改變, 元素復用, 更新屬性1.4_vue基礎_diff算法-key情況3: 根元素沒變, 子元素沒變, 元素內容…

linux shell命令行選項與參數用法詳解

問題描述&#xff1a;在linux shell中如何處理tail -n 10 access.log這樣的命令行選項&#xff1f;在bash中&#xff0c;可以用以下三種方式來處理命令行參數&#xff0c;每種方式都有自己的應用場景。1&#xff0c;直接處理&#xff0c;依次對$1,$2,...,$n進行解析&#xff0c…