国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【每日一題】—— B. Ternary String (Educational Codeforces Round 87 (Rated for Div. 2))

這篇具有很好參考價值的文章主要介紹了【每日一題】—— B. Ternary String (Educational Codeforces Round 87 (Rated for Div. 2))。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

??博客主頁:PH_modest的博客主頁
??當前專欄:每日一題
??其他專欄:
?? 每日反芻
?? C++跬步積累
?? C語言跬步積累
??座右銘:廣積糧,緩稱王!

一.題目描述

【每日一題】—— B. Ternary String (Educational Codeforces Round 87 (Rated for Div. 2)),每日一題,算法,學習,c++,codeforces,ACM

題目大意:給你一串由1、2、3組成的數(shù)組,讓你求一個最短的子串,要求這個子串包含1、2、3

題目鏈接:B. Ternary String (Educational Codeforces Round 87 (Rated for Div. 2))

二.思路分析

  1. 雙指針
  2. 用指針L,R來遍歷數(shù)組,判斷L和R區(qū)間內是否有滿足條件的字串,如果有將它和上一次的比較存下較小的,然后左指針L往右移動,繼續(xù)判斷,縮小范圍 (小寫的L不太看得清,就用大寫的方便友友們看思路)

三.代碼展示

//雙指針
//用指針l,r來遍歷數(shù)組,判斷l(xiāng)和r區(qū)間內是否有滿足條件的字串,如果有將它和上一次的比較存下較小的,然后左指針l往右移動,繼續(xù)判斷,縮小范圍
//
#include<iostream>
#include<cstring>
#define int long long
using namespace std;

char s[200020];

void solve()
{
	int a=0,b=0,c=0;//記錄1,2,3出現(xiàn)的次數(shù)
	int l=0,r=0;
	int mins=1e9;
	cin>>s;
	while(r<=strlen(s))//由于數(shù)據較小,可以直接遍歷
	{
		if(a&&b&&c)//處理這段包含1、2、3的數(shù)列,將l往后移動一個,并且減去原來l位置上數(shù)字的個數(shù)
		{
			if(s[l]=='1')a--;
			if(s[l]=='2')b--;
			if(s[l]=='3')c--;
			l++;
		}
		else//如果還沒有找到一段包含1,2,3的序列,r就繼續(xù)往后找
		{
			if(s[r]=='1') a++;
			if(s[r]=='2') b++;
			if(s[r]=='3') c++;
			r++;
		}
		if(a&&b&&c)//a,b,c都不為0說明當前序列包含了1,2,3
		{
			int ret=r-l;//計算當前序列的長度
			mins=min(ret,mins);//和上一次進行比較,存儲較小的值
		}
	}
	if(mins==1e9)//如果mins沒有變還是原來賦值的1e9,說明數(shù)組中沒有這樣的序列,直接返回0
	{
		cout<<"0"<<"\n";
	}
	else
	{
		cout<<mins<<"\n";
	}
}

signed main()
{
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	
	int t;
	cin>>t;
	while(t--)
	{
		solve();
	}
	return 0;
}

最后:

每日一題系列旨在養(yǎng)成刷題的習慣,所以對代碼的解釋并不會特別詳細,但足夠引導大家寫出來,選的題目都不會特別難,但也不是特別簡單,比較考驗大家的基礎和應用能力,我希望能夠將這個系列一直寫下去,也希望大家能夠和我一起堅持每天寫代碼。

之后每個星期都會不定期更新codeforces和atcoder上的題目,想要學習算法的友友們千萬別錯過了,有什么疑問歡迎大家在評論區(qū)留言!

今天晚上cf有div.3的比賽,想第一時間看到題目解析的就趕緊關注我呦~
之后基本上每場比賽比完第二天都會出前幾題的題目解析哦~

在這里送大家一句話:廣積糧,緩稱王!文章來源地址http://www.zghlxwxcb.cn/news/detail-604958.html

到了這里,關于【每日一題】—— B. Ternary String (Educational Codeforces Round 87 (Rated for Div. 2))的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • Educational Codeforces Round 134 (Div.2) D 題解

    D. Maximum AND 給定兩組序列 (a) (b) ,長度為 (n) ,現(xiàn)有一新序列 (c) ,長度也為 (n) 。 其中, (c_i = a_i oplus b_i) 。 定義 (f(a,b) = c_1c_2……c_n) 。 現(xiàn)在你可以隨意編排 (b) 序列的順序,求 (f(a,b)) 的最大值。 以下位運算均是二進制。 由于按位與的運算結果是越來越小的

    2024年02月06日
    瀏覽(17)
  • 【每日一題】—— C. K-th Not Divisible by n (Codeforces Round 640 (Div. 4))

    【每日一題】—— C. K-th Not Divisible by n (Codeforces Round 640 (Div. 4))

    ??博客主頁: PH_modest的博客主頁 ??當前專欄: 每日一題 ??其他專欄: ?? 每日反芻 ?? C++跬步積累 ?? C語言跬步積累 ??座右銘: 廣積糧,緩稱王! 題目大意:找第k個不能整除n的數(shù)字 題目鏈接:C. K-th Not Divisible by n (Codeforces Round 640 (Div. 4)) 這是一個找規(guī)律題 n前面

    2024年02月15日
    瀏覽(20)
  • Educational Codeforces Round 139 (Rated for Div. 2)

    Educational Codeforces Round 139 (Rated for Div. 2)

    Educational Codeforces Round 139 (Rated for Div. 2) Problem - 1766E - Codeforces 顯然我們可以把0序列的貢獻單獨算: i*(n-i+1)? 考慮只存在1,2,3的情況. 首先通過,觀察到一個重要性質: 最多只有三種序列 . 含有3或純1或純2型. 純1或純2型 純2或純1型 我們每次添加元素的操作, 只跟上一個位置序列

    2024年02月06日
    瀏覽(21)
  • Educational Codeforces Round 161 (Rated for Div. 2)

    Educational Codeforces Round 161 (Rated for Div. 2)

    Educational Codeforces Round 161 (Rated for Div. 2) 題意:開始沒看懂。。。給出長度均為n的三個字符串abc,字符串s與模板t匹配的條件為:當模板位置字符為小寫時, s i s_i s i ? 與 t i t_i t i ? 必須相同,大寫時二者必須不同。這里注意,字符匹配過程是不區(qū)分大小寫的,’C‘與’

    2024年01月19日
    瀏覽(41)
  • Educational Codeforces Round 151 (Rated for Div. 2)

    A. Forbidden Integer 題意 : 你有[1, k]內除了 x x x 的整數(shù),每個數(shù)可以拿多次,問 ∑ = n sum = n ∑ = n 是否可行并構造 思路 : 有1必能構造,否則假如沒有1,假如有2, 3必定能構造出大于等于2的所有數(shù),否則只有2的話只能構造出偶數(shù)。 B. Come Together 題意 : 棋盤上兩個點同時從

    2024年02月12日
    瀏覽(18)
  • Educational Codeforces Round 148 (Rated for Div. 2) 題解

    總結:5.21下午VP一場,死在了A題,給我wa崩潰了,浪費了差不多一個小時,BC還挺順暢,雖然C題是在結束后不久交上去的。。。。 思路:其實思路很簡單, “ The string s a palindrome ”, 題目已經說了所給的為回文字符串,所以直接判斷一半 有幾種字符 即可(開始的時候計算整

    2024年02月06日
    瀏覽(18)
  • Educational Codeforces Round 153 D-E dp,bfs

    1860D Balanced String 首先只能是0和1交換,1在 i i i 位置,0在 j j j 位置,每交換一次產生的貢獻是 2 ? ( i ? j ) 2*(i-j) 2 ? ( i ? j ) ,所以我們可以先算出原01串中所需要的貢獻 m m m ,我們發(fā)現(xiàn)找到 t o l tol t o l 個1和0的位置 i k , j k i_k,j_k i k ? , j k ? 且 ∑ k t o l i k ? j k = m

    2024年02月12日
    瀏覽(18)
  • Educational Codeforces Round 62 (Rated for Div. 2) C. Playlist

    Educational Codeforces Round 62 (Rated for Div. 2) C. Playlist

    ?一開始肯定要排個序,b相同時t大的在前邊,不同時b大的在前面。 然后想最多只能選k個的限制,可以這樣想,每次用到的b只能用已選到的最小的值,那可以把每個b都枚舉一遍,然后每一次選時長最長的,且b大于等于當前的b的那k個不就好了嗎,時間復雜度也才O(n),然

    2024年02月12日
    瀏覽(18)
  • Educational Codeforces Round 154 (Rated for Div. 2)(A—C)

    從1到9,每個數(shù)后面都可以加一個數(shù)構成一個含有兩個數(shù)的質數(shù),只需要從s[1]~s[9]中找到一個數(shù)與s[0]構成質數(shù)即可 觀察樣例即可發(fā)現(xiàn)兩個字符串只要在相同位置都有 01 存在就能成功實現(xiàn)轉換后兩個字符串相等 可以先假設字符串是可以成立的,那么接下來就判斷它什么時間是

    2024年02月10日
    瀏覽(22)
  • Educational Codeforces Round 154 (Rated for Div. 2)(A—D)

    從1到9,每個數(shù)后面都可以加一個數(shù)構成一個含有兩個數(shù)的質數(shù),只需要從s[1]~s[9]中找到一個數(shù)與s[0]構成質數(shù)即可 觀察樣例即可發(fā)現(xiàn)兩個字符串只要在相同位置都有 01 存在就能成功實現(xiàn)轉換后兩個字符串相等 可以先假設字符串是可以成立的,那么接下來就判斷它什么時間是

    2024年02月10日
    瀏覽(35)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包