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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

2021蓝桥直播课-软件类-本科组

發布時間:2024/10/8 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 2021蓝桥直播课-软件类-本科组 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 杜老師
    • 人物相關性分析
      • 更好的辦法
    • 子串分值
    • 子串分值和
    • 修改數組----數據結構題

B站錄播
https://www.bilibili.com/video/BV1az4y1178E
codeblocks 20.03

杜老師


人物相關性分析


難點:字符串規模太大
我自己的第一思路,從左到右KMP ALICE與BOB 搜到了就接著對后K個字符組成子串KMP (總是抓住左邊往右邊對,不會重)------匹配太多次(可以先形成數組,然后用我的方法)
老師的思路1,記錄下位置,得到兩個數組----枚舉兩個數組-------O(mn),

更好的辦法

類似的題:枚舉很多量的時候
類似的優化思路:嘗試能不能只枚舉一個量,另一個量不需要枚舉就能過(哈希,滑動,二分…)

枚舉的優化;
對A1有哪幾次BOB是距離A1不超過K—滑動窗口:尺取,不斷往右滑動,比如:目前窗口里有B1,2,3
而判斷A2后,發現B1不滿足,那他就更不可能滿足A3~n,直接去掉就可以

-100000與100000是為了讓邊界條件好處理,不用特判

子串分值



我當時應該是用回溯求子串,用桶排求f值—超時

先行后列的思路轉換成先列后行
eg:包含第一個字符A的子串中:只有1號和2號子串中只包含一個A------>包含第一個字符的子串中,有幾個只包含一個A

對中間那個紅色的A而言

而且這樣不需要枚舉子串,子串數可以直接乘出來

求上一個,下一個相同的字符位置,直接兩個循環就出來,更省

子串分值和


f為不同字符的個數
思路和上面類似
仍然對每一個位置看對分值貢獻

修改數組----數據結構題



set內部是平衡樹

先插入兩個起保護作用的區間
找到左端點嚴格小于ai 的
看右端點是否大于ai----yes:ai變成右端點+1
分情況討論:
ai正好連上兩個區間
ai和左相連
ai和右相連
ai是單獨區間

還可以用并查集,代表元是最大數
https://blog.csdn.net/qq_43619680/article/details/109046823
https://www.acwing.com/solution/content/9045/

int main() {cin>>n;for(int i=1;i<=n;i++)cin>>a[i];for(int i=1;i<=1200005;i++) fa[i]=i;for(int i=1;i<=n;i++){int x=fnd(a[i]);a[i]=x;fa[a[i]]=x+1;}for(int i=1;i<=n;i++)cout<<a[i]<<' ';return 0; }

將出現過的數并入并查集,(并且樹根是出現過的最大的數+1),并且由fa[a[i]]=x+1;,導致每個小樹都是沿著向右+1生長的(連續性),碰上了就會合并
而每查一個數,如果出現過,就會查到樹根(當前區間最大值+1),沒出現過就建立新樹


總結

以上是生活随笔為你收集整理的2021蓝桥直播课-软件类-本科组的全部內容,希望文章能夠幫你解決所遇到的問題。

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