【題目】
笑臉description
durong經常使用telegram和外國友人聊天,有一天他的外國友人發給他一段字串,裡面只包含 '(' , ':' , ')' 這幾個字元。
durong猜測 :)代表笑臉。 他現在想要恰好翻轉乙個字首,使得笑臉最多。
翻轉的定義是把 s[i...j]換成 s[j...i], 並且把 '(' 換成 ')', ')' 換成 '('。
比如 ":):((" 翻轉以後是 ")):(:"
input
第一行乙個n代表字串長度。
第二行乙個只包含)(:三種字元的字串。
1 <= n <= 2e5
output
輸出乙個數,代表恰好翻轉乙個字首以後的最多笑臉數。
sample input 1
10sample output 1:(:):(:):)
4【思路】1存這位之前有多少個反著的笑臉,2之後有多少個正著的笑臉,ans=1+2;
特判1:當開頭是':',而後面不是笑臉,而i之後又有乙個')'可以湊出乙個:),ans++
特判2:當i是':',i+1是')'的時候,翻轉會拆散:),ans--
【**】
#includeusing namespace std;
const int m=200005;
int main()
sum1[i]=s;
}s=0;
for(int i=n-2;i>=0;i--)
sum2[i]=s;
}int ans=0;
for(int i=0;i}
else
}ans=max(ans,aans);
}ans=max(ans,sum1[n-1]);
ans=max(ans,sum2[0]);
printf("%d\n",ans);
}
實現 笑臉 Crack
直接載入od,觀察發現彈窗可能為messagebox,那麼進行對windows api函式的搜尋 跟進反彙編視窗跟隨函式,來到這裡,直接進行斷點操作 執行程式,跑到斷點處,如下圖 接著發現堆疊視窗有呼叫call,這個call自然是messagebox的函式,那麼直接反彙編視窗對這個call進行跟隨,...
矩陣翻轉(陣列模擬)
曉萌最近在做乙個翻轉的應用,你可能也知道,其實是由乙個個的點組成的。於是,曉萌想先做乙個可以翻轉矩陣的程式,來解決他問題的核心部分。輸入第一行包括由空格分開的整數 m,n,t 0 n,m 200 m,n,t 0之後的 mm 行,每行包括由空格分隔的 nn 個整數,依次為輸入矩陣的每一行的資料。輸出包...
用Python畫笑臉
開心一下,喵 很早之前畫的,放上來做個紀念吧 如下 from turtle import screensize 600,600 speed 10 def arc initial degree,step,rotate,rangenum seth initial degree for i in rang...