原创 HDU3068(最長迴文子串manacher算法)

題目連接:點擊打開鏈接 解題思路: manacher算法模板題。 完整代碼: #include <algorithm> #include <iostream> #include <cstring> #include <complex>

原创 hiho一下 第三十九周(逆序數)

題目連接:點擊打開鏈接 解題思路: 逆序數模板題。注意此題坑點在於數據大,開成unsigned long long 完整代碼: #include <algorithm> #include <iostream> #include <cs

原创 hihocoder1032(最長迴文子串manacher算法)

題目連接:點擊打開鏈接 解題思路: manacher算法的模板題。 完整代碼: #include <algorithm> #include <iostream> #include <cstring> #include <complex

原创 Ural1349(費馬大定理)

題目鏈接:點擊打開鏈接 解題思路: 費馬大定理······Orz!!!膜拜神學。當n== 1時,輸出1 、2、 3;當n==2時,輸出3 、4 、5;當n >= 3時,無解。 完整代碼: #include <algorithm> #i

原创 hihocoder1038(01揹包)

題目連接:點擊打開鏈接 解題思路: 典型的01揹包,非常省空間的一種寫法。 完整代碼: #include <iostream> #include <cstdio> #include <cstring> #include <climit

原创 Ural1225(數學)

題目鏈接:點擊打開鏈接 解題思路: 上來先把n 分別爲1、2、3、4的情況大致列了一下,發現n == 1時結果爲2,n== 2時結果爲2,n == 3時結果爲4,n== 4時結果爲6. 於是大膽的猜想ans[i] = ans[i - 1

原创 Ural1876(貪心)

題目鏈接:點擊打開鏈接 解題思路: 按照兩個方面來貪:首先第一點,我們可以想到先將所有右腳的鞋子穿完,然後把所有剩餘的右腳鞋子丟掉,最後穿夠左腳即可。即b * 2 + 40; 第二點,我們先穿39個右腳的鞋子,然後穿40個左腳的鞋子,之

原创 HDU3461(並查集)

題目鏈接:點擊打開鏈接 解題思路: 一道看不出來是並查集的並查集題,做來做去還是覺得九野的題集不錯。題目大意就是有一個n位的密碼串,每位可能是a到z間的任意一個字母。m行輸入區間[ l , r],代表這個區間可以同時做+1操作,如果一組

原创 hihocoder1037(記憶化搜索)

題目連接:點擊打開鏈接 解題思路: 和白書上的數字三角形一樣,用記憶化搜索解決,推出轉移方程dp[i][j] = g[i][j] + max( d( i + 1 , j ) , d( i + 1 , j + 1) ); 完整代碼: #

原创 Ural1881(模擬)

題目鏈接:點擊打開鏈接 解題思路: 處理起來比較麻煩,把長度用數組存起來,然後按照長度去取,去完之後看能分多少行,最後在取頁數即可。精彩點在分行那。 完整代碼: #include <algorithm> #include <iostr

原创 Codeforces Round #297 (Div. 2)(模擬+字符串+排序)

A. 題目鏈接:點擊打開鏈接 解題思路: 大意就是說奇數位給小寫字母,偶數位給大寫字母,然後小寫對應鑰匙,大寫對應門,問最少消耗幾把鑰匙能打開所有門。 簡單模擬即可,初始化一個英文字母數組,如果遇到小寫字母,我們把相應的計數器++,遇到

原创 hihocoder1081(Floyd全源最短路)

題目連接:點擊打開鏈接 解題思路: 全源最短路Floyd算法,初始化時對角線爲0,其餘位置爲無窮遠。 完整代碼: #include <iostream> #include <cstdio> #include <cstdlib> #in

原创 POJ2769(同餘 + 暴力)

題目鏈接:點擊打開鏈接 解題思路: 求組內最小的m使得組內各個數對m求餘所的值均不同。暴力的判斷吧。發現一個有趣的規律,G++省時間廢內存,C++費時間省內存。另外此題的數組不宜開的過大,我開了個10^6的數組,接下來各種超時,換成10

原创 hihocoder1014(字典樹)

題目連接:點擊打開鏈接 解題思路: 字典樹模板題。論一套靠譜模板的重要性!!! 完整代碼: #include <algorithm> #include <iostream> #include <cstring> #include <c

原创 POJ3723(鄰接表+並查集+Kruskal)

題目鏈接:點擊打開鏈接 解題思路: 根據相互之間的關係,可以轉化一個無向圖中最大權森林的問題。也就是把邊權取反,然後用最小生成樹求解。 本題用鄰接表存儲,Kruskal求最小生成樹。 完整代碼: #include <iostream>