const int v[6]=;
//省略輸入c[i];
int ans;
for(int i=5;i>=0;i--)
cout//輸入
int n, s[max_n], t[max_n];
cin >> n;
for (int i = 0; i < n; ++i)
for (int i = 0; i < n; ++i)
//用於對工作排序的pair陣列
pairitv[max_n];
for (int i = 0; i
給定長度為n的字串s,要構造乙個長度為n的字串t。最初,t是乙個空串,隨後反覆進行下列任意操作:
從s的頭部刪除乙個字元,加到t的尾部;從s的尾部刪除乙個字元,加到t的尾部。
目標是要構造字典序盡可能小的字串t。
例如,當n=6,輸入s="acdbcb"時,輸出t=「abcbcd」。
解決方法很簡單,通過比較s和反轉後的s』 ;哪個小用那個追加到t尾。
int a=0,b=n-1;
while(a<=b)
}if(left)putchar(s[a++]);
else putchar(s[b--]);
這道題有點類似於現實生活中的植物澆灌噴水頭的部署,解題的思路:從最左邊開始考慮,一直向右走,找出 距離為r以內的最遠的點;由於更左的點沒有覆蓋意義,所以應該盡可能覆蓋 更右的點。總之就是,找到乙個點可以覆蓋最大的區域s1,然後標記該點,再找出s1區域結束的最左點;不斷重複迴圈就行。
int i=0,ans=0;
while(i
leetcode刷題筆記 2
給出兩個 非空 的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式儲存的,並且它們的每個節點只能儲存 一位 數字。如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。示例 輸入 2 4 3 5 6 4 輸出 ...
挑戰程式設計競賽學習筆記2
書中只給出演算法函式,程式所用資料預設已讀入程式並儲存在全域性變數中。以高效演算法為目標,需要正確估算各種演算法的複雜度。縮短執行時間,主要應該從複雜度入手。程式都從標準輸入按指定格式讀入資料 輸入資料已經由main函式讀入並儲存在全域性變數中 通過呼叫solve函式來求解 在設計滿足問題要求的演算...
微軟程式設計之美2013全國挑戰賽 複賽 第2題
include 微軟程式設計之美2013全國挑戰賽複賽第2題 由於比賽結束後,提交入口關閉,沒來得及提交,但本地資料測試是沒錯的,不知道能否ac include includeusing namespace std struct yingxiangli int main else for int n...