暴力swap導致TLE問題解決辦法

2022-05-13 18:23:24 字數 719 閱讀 5476

b. pasha and string

題目很簡單,就是將字串中從某一位置到另一位置之間的片段逆序,基本思路就是利用swap兩兩交換。這時候題目會出現問題就是超時time limit exceeded ,兩兩交換太過於耗費時間,原因在於中間有交換過去又交換回來相當於沒做改變的交換浪費了時間,有沒有更好的辦法呢?因為顛倒的都是中間的數,所以可以統計片段中每個字母顛倒的次數,若為奇數次則交換;偶數次則不交換。還有乙個地方注意,因為題目當中提示了,每次的ai小於等於二分之一倍的字串的長度,所以統計顛倒次數的時候迴圈變數到達字串長度的一半即可。因為是片段,片段中間的字元都要顛倒,所以有a[i] += a[i - 1],之前也有過類似的統計方法,應該學會。

1 #include2 #include 

3using

namespace

std;

4int a[100005];5

intmain() 618

for (int i = 1; i <= len / 2; i++)

19 a[i] += a[i - 1

];20

for (int i = 0; i <= len / 2; i++)

21if (a[i] & 1

) 22 swap(s[i-1], s[len -i]);

23 cout << s <24return0;

25 }

lua 引用導致問題解決方案

lua中table型別是一種資料結構用來幫助我們建立不同的資料型別,使用table在程式設計中是再常見不過的了,但是相應的也會碰到引用問題。通過對以往的問題進行整理並結合別人的案例來提高自身的 水平。lua中table型別是引用傳遞,因此不能簡單的通過 來複製來獲得新錶,否則改動其中一張表都會導致另...

MySQL導致的中文亂碼問題解決

開發的時候,切換資料庫之後導致中文亂碼,以為是查出的資料編碼格式不對。寫了一堆轉換字串編碼的sql。官方文件 select charset 中文 charset convert 中文 using gbk 之後發現是切換資料庫之後出現的這個問題,然後就檢視兩個資料庫的區別。下面是出現問題的資料庫。標紅...

oom問題解決

dalvik虛擬機會為應用程式分配固定大小的heap 如果使用超過了這個heap的大小,且沒有可被 物件,就會報oom。多張較大會迅速占用空間造成oom。我們可以使用一下的方法來減少這種情況的產生 1.減少單張的大小,根據螢幕大小來對bitmap做resize。private void setima...