原创 Python之turtle.circle()函數理解

turtle.circle()函數     定義:turtle.circle(radius, extent=None)     作用:根據半徑radius繪製extent角度的弧形     參數:               radius

原创 Python繪製奧運五環

【程序代碼】 import turtle   def icircle(icolor,x,y):     turtle.color(icolor)     turtle.penup()     turtle.goto(x,y)     tu

原创 用STL隊列求解約瑟夫環問題

【問題描述】 約瑟夫問題:n個人圍成一圈,從第一個人開始報數,數到m的人出圈;再由下一個人開始報數,數到m的人出圈;…輸出依次出圈的人的編號。n,m由鍵盤輸入。   【程序代碼】 #include <bits/stdc++.h> usi

原创 用數組模擬求解約瑟夫環問題

【問題描述】 約瑟夫問題:n個人圍成一圈,從第一個人開始報數,數到m的人出圈;再由下一個人開始報數,數到m的人出圈;…輸出依次出圈的人的編號。n,m由鍵盤輸入。   【程序代碼】 #include<iostream> using nam

原创 判斷無向連通圖是二分圖的方法(黑白染色法)

【算法描述】 二分圖又稱作二部圖,是圖論中的一種特殊模型。 設G=(V, E)是一個無向連通圖,如果頂點集V可分割爲兩個互不相交的子集A、B,並且邊集E中的每條邊(i, j)所關聯的兩個頂點i和j分別屬於這兩個不同的頂點集(i in A,

原创 利用STL中的vector實現“有向有權圖”的鄰接表表示

【程序代碼】  /* 利用STL中的vector實現“有向有權圖”的鄰接表表示 */ #include <bits/stdc++.h> using namespace std; const int N=1e5; struct edge

原创 利用STL中的vector實現“無向無權圖”的鄰接表表示

【程序代碼】   /* 利用STL中的vector實現無向無權圖的鄰接表表示 */ #include <bits/stdc++.h> using namespace std; const int N = 1e5; vector<int>

原创 環形結構上的動態規劃問題的基本處理方式

環形結構上的動態規劃問題,是一種特殊的區間動態規劃問題。由於存在“環形後效性”,所以不滿足動態規劃算法的“無後效性”約束條件。故常將環形結構上的動態規劃問題,通過“斷環爲鏈”策略轉化爲線性動態規劃問題求解。所謂“無後效性”,即“未來與過去

原创 素數判斷-6X法

【知識解析】 質數又稱素數。 一個大於1的自然數,除了1和它自身外,不能被其他自然數整除的數叫做質數;否則稱爲合數。 0和1既不是質數也不是合數,最小的質數是2。 【定理證明】 定理1:當n≥5時,如果n爲素數,那麼n%6=1或n%6=5

原创 洛谷 P1115 最大子段和(利用優先隊列priority_queue)

【題目描述】 給出一段序列,選出其中連續且非空的一段使得這段和最大。   【輸入格式】 第一行是一個正整數N,表示了序列的長度。 第二行包含N個絕對值不大於10000的整數Ai,描述了這段序列。   【輸出格式】 一個整數,爲最大的子段和

原创 使用0x3f3f3f3f而不是0x7fffffff表示無窮大

【問題描述】 在SPFA算法中,發現若設置inf=0x7fffffff表示無窮大,則算法輸出結果錯誤。 後來,選擇設置inf=0x3f3f3f3f表示無窮大,則算法輸出結果正確。 【問題分析】 原因在於選擇0x7fffffff作爲無窮大,

原创 讀取字符數組、字符串中的空格

【程序代碼】 #include <bits/stdc++.h> using namespace std; int main() { cout<<"Usage of char-array:"<<endl; char a[26];

原创 用循環鏈表求解約瑟夫環問題

【約瑟夫環問題】 已知 n 個人(n>=1)圍坐一圓桌周圍,從 1 開始順序編號,從序號爲 1 的人開始報數,順時針數到 m 的那個人出列。下一個人又從 1 開始報數,數到m 的那個人又出列。依此規則重複下去,直到所有人全部出列。請問最後

原创 線段樹應用(建樹、單點更新、區間求和)

【問題描述】 給定一數列,規定有兩種操作,一是修改某個元素,二是求區間的連續和。   【輸入格式】 輸入數據第一行包含兩個正整數n,m(n<=100000,m<=500000)。 以下是m行,每行有三個正整數k,a,b(k=0或1、 a,

原创 線段樹應用(建樹、區間查詢之最小值)

【程序代碼】 #include<bits/stdc++.h> using namespace std; const int maxn=100001; int n,m,L,R,a[maxn],segMin[maxn*4];//線段樹數組