原创 圓圈中最後剩下的數字

如果開始圈子裏只有一個人,就返回0; 如果不是一個人,那麼刪去一個人後 狀態變爲dp【n-1,m】 ,原先 第m+1位置的人因爲m沒了坐在了第m的位置 並且從他開始編號爲0 所以是m向0轉移 所以調用(dp(n-1,m)+m)%

原创 最長迴文子串

dp[i][j]存放的是[i,j]是否是迴文區間 dp[i][j]=dp[i+1][j-1]&&(s[i]==s[j])去除兩端之間的子串是迴文子串,且兩端相等 class Solution { public: stri

原创 連續子數組的最大和

class Solution { public: int maxSubArray(vector<int>& nums) { int sum=0,maxn=-1000000; for(int

原创 字符串移位包含問題

#include<bits/stdc++.h> using namespace std; int fun(string s,string t) { int len=s.length(); while(len--) {

原创 7-43 哈利·波特的考試 (25分)(完整思路+極短代碼)

說來慚愧,剛開始沒理解清楚題目意思,以爲是連通圖求最小生成樹。。。。 好,我們來分析一下這道題,每個動物都可以用咒語變成另一個動物,首先我們可以沒兩條動物直接的咒語當作是兩地之間的距離保存起來。然後就是多源最短路(什麼?你問爲什

原创 7-32 Reversing Linked List (25分)(思路+最後一個測試點+極簡代碼)

思路:首先用結構體數組來接受輸入的數據。然後從begin開始將這個鏈表從前到後還原,存到一個動態數組中。然後開始翻轉,注意翻轉的是**[i,i+k)** 左閉右開區間。而reverse函數正好是左開右閉區間。最後再遍歷輸出就可以

原创 隊列安排【洛谷】

思路:這個就是一道模擬二叉樹的題。反正我是這麼理解的。 首先建立一個結構體數組,包含左孩子,右孩子,以及一個變量用來標記後面他是否被刪除了。 然後就是插入的時候先判斷p(根據題目),判斷完p之後還要判斷k的左右孩子。 舉個栗子:

原创 P1019 單詞接龍【洛谷】

#include<bits/stdc++.h> using namespace std; const int maxn=100; int n,ans,used[maxn]; string word[maxn],beginn; b

原创 最長上升子序列【線性DP】

#include<bits/stdc++.h> using namespace std; int n,m,f[1010][1010]; char a[1010],b[1010]; int main() { cin>>n>>m;

原创 7-105 串的模式匹配 (25分)(strstr的應用 )

看網上題解大部分都是用的KMP,個人比較懶,看到這個題感覺依稀記得有一個函數可以用來找子串。 strstr(s,t)函數,在s串中找子串t,如果沒找到返回false,如果找到就返回剩下部分。 正好和該題題意完美契合,事實證明掌握

原创 單調棧【完整思路+代碼】

看到這道題,首先我們會想到的肯定是暴力模擬。外層循環i是每個數,內層循環j是從i-1到最開頭,找第一個比i小的數。這樣做的話,如果數據是10的5次方,那麼雙重循環時間是非常可怕的。 然後我們來分析一下上面這個思路,看看有哪裏可以

原创 7-34 樹的同構 (25分)(思路+代碼 遞歸實現)

思路:這道題讓判斷兩個樹是否同構,那麼我們首先要建立出來這兩顆樹,然後用一個數組pre來存儲各節點之間的關係,然後找出這兩顆樹的根節點。做到這裏,基本就已經完成了,接下來就是判斷。這裏用到了遞歸判斷,判斷過程大致如下(具體可結

原创 L2-013 紅色警報 (25分)

#include<bits/stdc++.h> using namespace std; const int maxn=5050; int n,m,k,a,b,c,cnt1,cnt2,f[maxn],vis[maxn]; str

原创 約瑟夫問題【洛谷】

約瑟夫環有很多種解法,這裏我提供一種數據結構,用隊列來模擬。直接採用了STL裏面隊列的模板,看下面代碼之前,跟我默唸,STL大法好!!哈哈哈。 大致思路:先把所有人都放進隊列裏面,然後從1開始出隊,1出隊再進隊,這樣1就從隊首到

原创 7-37 是否同一棵二叉搜索樹 (25分)(極短代碼)

這道題如果你會建立二叉搜索樹的話應該就沒什麼問題了,比較的話就是從上到下依次比較看是否相等,比較簡單。代碼如下: #include<bits/stdc++.h> using namespace std; const int ma