牛客練習賽 17 T6 玩遊戲 神博弈
文章目錄
作為T6,思想高妙,好題.
題意
給兩個字符串a,b,a的長度大於等於b.由Alice先手,兩人輪流去掉a的首字符或者尾字符,直到a,b長度相同.如果剩下的a=b,Alice獲勝,否則Bob獲勝.問兩人都取最優策略,誰能夠獲勝.
題解
感謝LMOliver的高妙解釋.
我們將題目轉化成如下的模型.
把字串
a轉化為一條長度為
∣a∣的紙帶,如果
a從第
i位開始能夠匹配
b,則紙帶的第
i位塗成黑色,否則塗成白色.
那麼要問的就是兩人輪流剪掉紙帶的最左邊的格子或者最右邊的格子,最終能否使得紙帶最左邊的格子為黑的情況.
我們不妨分類討論.
首先定義一種策略叫反向,即每次剪掉和對方上一輪方向相反的格子.
如果去掉字元的個數是奇數,則先手考慮第一次隨機剪去一個方向的格子,接下來每輪都反向,而且不管他的目標是什麼,他接下來都會無腦反向,因為Ta深知對方也會這麼做.
這時候前面不管,考慮還剩中間3個格子的情況.
那麼這時候如果中間那個格子是黑色或者左右都是黑色,Alice就會獲勝,否則Bob獲勝.
同理是偶數的情況是剩下中間兩個格子,除非這兩個格子都是黑色,否則Bob獲勝.
暴力對這幾個位置判一下
a是否能在這個位置匹配
b即可.
程式碼就不發了,謝謝大家.
相關推薦
牛客練習賽 17 T6 玩遊戲 神博弈
文章目錄 題意 題解 作為T6,思想高妙,好題. 題意 給 兩
【博弈】[牛客練習賽 17] F 玩遊戲
給定兩個串S和T,|S| >= |T|。 alice和bob輪流操作串S,bob先手。 對於每次操作,alice或bob會選擇刪掉S的第一位或最後一位。 當操作以後的串的長度等於|T|時,遊戲停止。 如果停止時的串=T,則alice獲勝,否則bob獲勝。
牛客練習賽17
true gree clear alt bit double tin con () 長方體 1 #include <bits/stdc++.h> 2 using namespace std; 3 4 int main(){ 5 int X1, X
牛客練習賽17 B-好位置
AI 差分 int 數據 lan AR max code names 傳送門 題意:本來慣例中文題不解釋的, 但是有些人不懂這個題意, 簡單的來說, 就是s1每一個的每一個字符都可以和別的字符構成一個子串 == s2。 算了還是慣例中文題意不解釋吧。 題解:其實以前寫no
轉載:牛客練習賽17 c 規律題
ont alt 技術分享 targe Go 註意 輸出 #define 一個 轉載:https://www.cnblogs.com/zzqc/p/8995135.html C.鏈接:https://www.nowcoder.com/acm/contest/109/C來源:牛
牛客練習賽18E pocky遊戲 神仙狀壓?
正解:狀壓dp 解題報告: 是個好題,可以積累套路啟發性強,而且很難 !!!哇我哭死辣,打了半天然後電腦突然關機了QAQ從此學會隨手儲存QAQ 算了反正反正學懂了打起來應該挺快的QAQ ummm那這題因為沒太懂所以和之前做疫情控制一樣分幾個板塊慢慢梳理趴qwq 首先要確定這題用什麼方法?
11.17牛客練習賽31 ABC
題目連結:A題 題目大意:就是把 # 看做牆 哪些點無論怎樣移動都不能到達邊界(只能上下左右走),那麼這些點就是可以被標記的點。 #也是可以被標記的點 ,所以 兩者之和就是答案。 思路:我們反著想,從邊界出發,能走到的所有點,計個數,剩下的走不到的就是答案。所以,
牛客-牛客練習賽21-B 黑妹的遊戲II
連結:https://www.nowcoder.com/acm/contest/130/B來源:牛客網時間限制:C/C++ 1秒,其他語言2秒空間限制:C/C++ 131072K,其他語言262144K64bit IO Format: %lld題目描述 黑妹和黑弟又聚在一起玩
牛客練習賽21:A黑妹的遊戲I
題目描述黑妹最近在玩一個有趣的遊戲,遊戲規則是這樣的:剛開始黑板上有三個不同的初始數字,然後黑妹每一次可以選擇黑板上的兩個不同的數字,然後計算出這兩個不同數字之差的絕對值,如果黑板上沒有這個數字,那麼就
牛客練習賽6 B-點權和
帶來 nbsp ont turn end () ans ace tdi #include <stdio.h> #include <algorithm> #include <math.h> #include <string.h>
牛客練習賽6
code 分享 無語 cin isp pri 全部 std 不變 A題: 方法一:一元二次方程求解,但是會有精度誤差,+1個點特判一下。 #include <bits/stdc++.h> using namespace std; ty
牛客練習賽7 E 珂朵莉的數列(樹狀數組+爆long long解決方法)
src main stdin scanf return n) can print con https://www.nowcoder.com/acm/contest/38/E 題意: 思路: 樹狀數組維護。從大佬那裏學習了如何處理爆long long的方法
牛客練習賽7 E 珂朵莉的數列
arc scanner print amp tar [] next ++ implement 珂朵莉的數列 思路: 樹狀數組+高精度 離散化不知道哪裏寫錯了,一直wa,最後用二分寫的離散化 哪位路過大神可以幫我看看原來的那個離散化錯在哪裏啊 通過代碼: im
牛客練習賽9 B - 珂朵莉的值域連續段
clas ++ sca 答案 brush light 需要 練習 oid 題目描述 珂朵莉給你一個有根樹,求有多少個子樹滿足其內部節點編號在值域上連續 一些數在值域上連續的意思即其在值域上構成一個連續的區間 輸入描述: 第一行有一個整數n,表示樹的節點數
牛客練習賽1 補題記錄
樹形 中文 push .html 分答 subst clas n) str A 矩陣 中文題意,要找一個最大的k階子矩陣在原矩陣中出現過兩次。 需要將這個矩陣進行Hash,也就是需要二維Hash,先把每一行Hash了,再把每一列Hash了,有一點前綴的感覺。 預處理完Has
牛客練習賽10 E題 數列查找 (分塊思想 + 莫隊算法)
意義 blog str aps mes blank ref pair rem 題目鏈接 數列查找 考慮分塊然後跑莫隊, 設$c[i]$為$i$在當前維護的區間內出現的次數, $g[i]$為在當前維護的區間內有多少個數出現次數為$i$, $bg[i]$把出現次數分塊
牛客練習賽12 A 圓圓 . B 迷宮
main cstring mar mem pre 所有 ble ios math 題目描述 我們定義一個圓 C 為以原點 (0, 0) 為中心的單位圓(半徑為 1 的圓)。給定在 C 圓周上相異的兩點 A, B。請問由 A 出發,沿著圓周走到 B,是順時針走比較近,還是逆時
牛客練習賽11 B trie樹+拓撲判環 E 分治求平面最近點對
define ima 字典序 父親 name return 如果 int body 牛客練習賽11 B 假的字符串題意:給定n個字符串,互不相等,你可以任意指定字符之間的大小關系(即重定義字典序),求有多少個串可能成為字典序最小的串,並輸出它們。 tags:好題 對
牛客練習賽13
sig 字典序 end type 數位 大於等於 幸運 pos != 幸運數字 I 定義一個數字為幸運數字當且僅當它的所有數位都是4或者7。 比如說,47、744、4都是幸運數字而5、17、467都不是。 現在,給定一個字符串s,請求出一個字符串,使得: 1、它所代表的整數
牛客網Nowcoder 牛客練習賽13 A. 幸運數字Ⅰ B.幸運數字Ⅱ(數組或者dfs) C.幸運數字Ⅲ(思維)
tps sum quest 兩個 long 練習 clas tdi return A.幸運數字Ⅰ 鏈接:https://www.nowcoder.com/acm/contest/70/A來源:牛客網 水題。 代碼: 1 #include<iost