原创 stl 常用函數(包括vector list stack queue)

vector: Constructors 構造函數 Operators 對vector進行賦值或比較 assign() 對Vector中的元素賦值 at() 返回指定位置的元素 back() 返回最末一個元素 begin()

原创 joj 1317

  各種序。。。。。。。。。。。 #include<iostream> #include<stdio.h> #include<string.h> using namespace std; void tree(char *s1,char *

原创 joj 2343

 我這輩子都會記住這個定理:n元循環羣(a)中,元素a^m是(a)的生成元的充要條件是(n,m)=1. 哎,鬱悶。。。。 #include<iostream> #include<stdio.h> using namespace std;

原创 joj2325

據說要用dp,不過我用的是BFS,就是從上下左右四個方向壓縮,在餘下的面積不小於max的情況下一直到壓縮出全爲一的子陣,然後更新max的值,反覆進行這個操作,即一開始的矩陣爲: 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0

原创 hdu 1711

   感覺到了算法的偉大,雖然是用了最基本的kmp算法,不過代碼寫的比較亂,因爲數組是從0開始,如果數組時從1開始的話估計就會清晰了。 #include<iostream> #include<stdio.h> using namespac

原创 joj 1189

 大數,題目有點誤解人。。。明明說VeryLongInteger但運算的卻不是數字而是文本行 #include<iostream> #include<stdio.h> using namespace std; char str1[1000

原创 hdu 1115

模板模板模板 #include<iostream> #include<stdio.h> #include<math.h> using namespace std; struct point  {  double x;   doubl

原创 joj1026

copy來的思想,果然自己還很菜啊 遞歸方程式如下(f(i,j)爲i個磚頭,第一排爲j個的擺發): f(i,j)=f(i-j,j+1)+f(i-j,j+2)+...+f(i-j,floor((i-j-1)/2) #include<iost

原创 joj 1171

  水題,做1089太鬱悶了所以刷了到水題,代碼很笨,基本沒有參考價值,只爲看一眼快把我折磨死的氣球。。。。。。。。。。。 #include<ios

原创 大數相乘

x[m]和x[m-1]相乘,xx[m]存的是x[m]的長度   int  x[501][1500]; int xx[501]; void multiply(int m) {     int a[1500];     memset(a,0,

原创 joj 1329 二叉樹

給出中根序列和後根序列求路徑值最小的葉節點,各種隊,各種棧(話說一開始理解錯題了,英語不好的悲哀)   #include<iostream> #include<stack> #include<queue> using namespace

原创 joj2474

先找各階段的狀態,再dp 規律是: 2*1的不同的數目爲2; 2*2的不同的數目爲7; 2*3的不同的數目爲8; 以下全爲8,注意這裏說的不同的數目是指2*n中橫跨n個格的放法,即不可分割的放法。   #include<iostream>

原创 joj2035

一開始超時,怎麼改都超時,後來果斷把stl換成純數組,竟然AC了,莫非stl的操作很費時間嗎,不解: 之前的超時stl版: #include<iostream> #include<stack> #include<queue> using

原创 joj 1387

又見0-1揹包,長度既是價值也是體積。 #include<iostream> #include<stdio.h> using namespace std; int dp[100000]; int cd[105]; int main() {

原创 joj 2717

水題,應用簡單dp,含i個字符的串的個數等於i-1個字符的串的個數*2(包擴加上0和加上1),再減去最後3個字符是011的情況。   #include<iostream> #include<stdio.h> using namespace