日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

「日常训练」Alternative Thinking(Codeforces Round #334 Div.2 C)

發布時間:2024/10/12 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 「日常训练」Alternative Thinking(Codeforces Round #334 Div.2 C) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題意與分析 (CodeForces - 603A)

這題真的做的我頭疼的不得了,各種構造樣例去分析性質。。。
題意是這樣的:給出01字符串??梢栽谶@個字符串中選擇一個起點和一個終點使得這個連續區間內所有的位取反。求經過處理后最多會得到多少次01變換(可以不連續)。
首先求原串的最長01長度,這個太簡單了,然后才是重頭戲:精彩的構造樣例分類討論環節——如何增加01的最長串?
我們考慮一下反轉串的幾種情況:1、反轉單個連續0/1串的內部;2、反轉兩個部分連續0/1串與中間的內容(內部無連續串)3、反轉兩個部分連續0/1串與中間的內容(內部有連續串)4、反轉連續01串(不是0/1串!)
第一種情況是最好考慮的,不論你是1000..0001還是0111...11110,里面不論怎么反轉,最后對答案的貢獻也多一個01/10,也就是2。這種多的貢獻僅僅出現在0/1串長度大于等于三的情況。
第二種情況稍微復雜一些:先考慮0開頭的情況,也就是00..0{101010101}1..11或者00..0{101010101}0..00。這種情況下最好的處理是連著前后一個字符一起反轉:00..1{010101010}0..11于是長度喜多2。這種情況下,前面跟著一個串(長度大于等于2即可)就產生1的貢獻,后面跟著一個就產生一個貢獻。1開頭的同理。
第三種情況建立在2的基礎上:如果反轉串中間也有連續會怎樣?什么時期都不會發生,因為它作出的貢獻僅僅相當于一個單個字符。于是答案同2。
第四種情況比較有趣了:我對原答案做反轉,沒有連續的01會怎樣?那你不管怎么樣,最優答案總是原先的最長長度。

綜合以上四種情況,我們可以得到這個結論:
如果整個串里面的00/11串個數\(\le 2\),那么答案(即原先長度)加上這個串的個數;否則答案最多+2。情況1此時已經被包括在內了,因為長度為3的連續串一定有兩個00/11串。

代碼

/* * Filename: cfr334d2c.cpp* Date: 2018-11-05*/#include <bits/stdc++.h>#define INF 0x3f3f3f3f #define PB emplace_back #define MP make_pair #define fi first #define se second #define rep(i,a,b) for(repType i=(a); i<=(b); ++i) #define per(i,a,b) for(repType i=(a); i>=(b); --i) #define ZERO(x) memset(x, 0, sizeof(x)) #define MS(x,y) memset(x, y, sizeof(x)) #define ALL(x) (x).begin(), (x).end()#define QUICKIO \ios::sync_with_stdio(false); \cin.tie(0); \cout.tie(0); #define DEBUG(...) fprintf(stderr, __VA_ARGS__), fflush(stderr)using namespace std; using pi=pair<int,int>; using repType=int; using ll=long long; using ld=long double; using ull=unsigned long long;int dp[100005][2];int main() {int n; cin>>n;bool b[100005];string str; cin>>str;int maxlen=0,nowlen=0;bool last;int cnt=0;rep(i,0,n-1){b[i+1]=str[i]=='0';if(i==0){dp[i+1][0]=str[i]=='0';dp[i+1][1]=str[i]=='1';last=b[i+1];nowlen=1;}else{if(last==b[i+1]){nowlen++;maxlen=max(nowlen,maxlen);}else{cnt+=nowlen-1;nowlen=1;last=b[i+1];}if(str[i]=='0'){dp[i+1][1]=dp[i][1];dp[i+1][0]=dp[i][1]+1;}else{dp[i+1][1]=dp[i][0]+1;dp[i+1][0]=dp[i][0];}}}if(nowlen!=1) cnt+=nowlen-1;int ans=0;rep(i,1,n)ans=max(ans,max(dp[i][0],dp[i][1])); /*rep(i,1,n)cout<<dp[i][0]<<" ";cout<<endl;rep(i,1,n)cout<<dp[i][1]<<" ";cout<<endl; */cout<<ans+min(2,cnt)<<endl;return 0; }

轉載于:https://www.cnblogs.com/samhx/p/CFR334D2C.html

總結

以上是生活随笔為你收集整理的「日常训练」Alternative Thinking(Codeforces Round #334 Div.2 C)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产ts在线视频 | 亚洲欧美日韩国产一区二区三区 | 麻豆av在线 | 专干中国老太婆hd | 九一在线观看免费高清视频 | 最色网站 | 婷婷激情小说 | 91国内| 亚洲精品视频免费观看 | 日本偷拍一区 | 欧洲做受高潮欧美裸体艺术 | 日本精品免费视频 | 国产福利资源在线 | 国产 欧美 日韩 一区 | 日本午夜影视 | 免费视频网站www | 日本成人在线视频网站 | 男人插入女人下面的视频 | 男人干女人视频 | 在线免费黄色网址 | 无码人妻aⅴ一区二区三区69岛 | 欧美亚洲免费 | 五月天综合婷婷 | 一个人看的视频www 色就是色网站 | 一级片高清 | 亚洲天堂免费观看 | 影音先锋男人资源网站 | 成人久久电影 | 成人极品 | 玩偶姐姐在线观看免费 | 成年人的视频网站 | 超碰在线观看免费版 | 91青青青| 香蕉视频911 | 佐佐木明希av在线 | 亚洲第一字幕 | 日批视频在线播放 | 奇米影视欧美 | 黄色国产视频网站 | 天天插天天爱 | 无码 制服 丝袜 国产 另类 | 黄色激情小说视频 | 黄av在线| 免费av网站在线播放 | 嫩草懂你 | 国产免费av片在线观看 | 日韩成年人视频 | 欧美在线小视频 | 中文字幕在线成人 | 老司机午夜视频 | 狼人综合伊人 | www.777奇米影视 | 狠狠人妻久久久久久综合麻豆 | 国产精品第9页 | 日韩精品免费观看 | 国产精品丝袜黑色高跟鞋 | 亚洲av人人澡人人爽人人夜夜 | 一本色道久久亚洲综合精品蜜桃 | 色综合999 | 国产人人爱 | 婷婷综合激情 | 欧美视频导航 | 日韩黄网站 | 国产又粗又硬视频 | 黄色福利 | 免费毛片看片 | 精品九九九九 | 国产成人无码一二三区视频 | 国产在线一区二区视频 | 熟妇人妻中文av无码 | 欧美在线观看www | 青青视频在线免费观看 | 国产女主播一区二区 | av片在线观看免费 | 日韩毛片一级 | 国产免费高清视频 | 殴美一级黄色片 | 成年人黄色一级片 | 欧美日本高清视频 | 欧美人与动物xxx | 欧美a∨亚洲欧美亚洲 | 日本国产在线播放 | 打开每日更新在线观看 | 国产麻豆剧传媒精品国产av | 在线视频激情小说 | 操女人视频网站 | 男人插女人下面视频 | 亚洲国产精品视频在线 | 香蕉视频污视频 | 国产剧情一区二区三区 | 免费视频二区 | 夫の上司に犯波多野结衣853 | 99青草| 国产麻豆一区二区 | 国产一区二区三区视频网站 | 91精彩视频在线观看 | 视频在线观看你懂的 | 国产乱子伦精品无码专区 | 欧美黑人狂野猛交老妇 |