poj 2104 (求區間第K大元素)

//為了做一道題,以前不知道什麼劃分樹,只能從最基本的學,這是入門題,看了別人了代碼,然後慢慢寫的#include <iostream>using namespace std ;const int MAXN = 100010 ;int data[30][MAXN], sorted[MAXN], toleft[30][MAXN] ;int cmp(const void *a, const void *b){ return *(int *)a < *(int *)b ? -1

poj1236 Network of School ( tarjian + 縮點 )

這算是我實現的第一個強連通分量(scc)的題目,

UVa Problem 10132 File Fragmentation (檔案片段)

// File Fragmentation (檔案片段)// PC/UVa IDs: 110306/10132, Popularity: C, Success rate: average Level: 2// Verdict: Accepted// Submission Date: 2011-05-19// UVa Run Time: 0.012s//// 著作權(C)2011,邱秋。metaphysis # yeah dot net#include

La3211 Now or Later(2-SAT判定+二分法)

題目: n 架飛機,每架飛機的降落時間有兩個選擇,一個為早點降落,另一個為晚點降落;求兩架飛機降落時間差的最小值的最大值(就是怎麼安排,使得所有飛機降落的時間差的最小值盡量大)輸入:一個n,代表飛機數目;接下來n行,表示每架飛機降落的兩個時間分析:最小值盡量大,用二分尋找;對於查到一個最小值t,如果任意兩個時間差小於t,那麼這兩架飛機就不能同時降落,由此產生了條件就是時間差<t的就不能同時滿足代碼:#include <cstdio>#include

CF 161 div2 D

就是已知每個點的度數至少為k,要求在圖中找一個環,長度為k。這個題可以用最長路的方法去思考,假設圖中一條最長路,包含v1,v2,...vn,那麼對於vn,它的所有相鄰的點一定都被包含在這條最長路中,否則這個點接在vn後面,就是一條更長的路。那麼對於vn,找到它所有相鄰的點中在這條最長路裡離它最遠的點vl,因為vn度數為k,所以vl到vn至少有n+1個點,且首尾相連夠成一個環。這樣就可以從任意一個點,例如1開始搜一個長度大於k的環即可,因為即使一個圖是有多個塊的,每個塊中都至少存在一個長度為k的環

對於最小樹形圖的理解

最小樹形圖的演算法步驟簡化得說一下就是重複一下三個步驟,直到圖中沒有環為止或者判定有孤立節點無法形成最小樹形圖:1、刪除自環,除根節點以外,每個點留最小入邊;2、判斷有沒有環;3、如果有環,縮為一點。現在就從頭開始分析一下這個演算法。分析第一步:留每個點地最小入邊,這個沒有問題,也是一種貪心的思想;為什麼留的是入邊,這也很好解釋,有入邊這個點才能被到達。分析第二步:如果這個圖是連通的,每一個點留一條入邊,那麼此時圖中就有n-1條邊,如果有環那麼必定有點之間沒有被串連;如果有孤立節點,那麼一定是這

Poj 3320(two pointers)

Jessica's Reading ProblemTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 5967 Accepted: 1794DescriptionJessica's a very lovely girl wooed by lots of boys. Recently she has a problem. The final exam is coming, yet she has spent little time

HDU 4514 湫湫系列故事——設計風景線 (並查集)

判斷有沒有環路,我個人認為還是並查集效率要高,而且複雜度要比dfs低,性價比很好這道題的要求,第一判斷是否有環,如果沒有環,就輸出最長的路徑我們可以想到一個無向圖如果沒有環的話,一定就是兩種形態,一種是一棵樹,另一種就是森林那麼要求最長路徑的話,也就是要求樹的半徑大致的思想明白了,就說一下細節吧並查集的思想就是在圖中找一個節點作為根,凡是和這點在一個連通分量裡面的點,都插入到這個根上,是的前驅是這個根或者前前驅是這個根,由於並查集的維護,使得這兒資料結構很高效,具體的內容可以找書看。有一個重要的

CF 103div2 D(dijkstra)

題目意思是找在圖中與原點距離為L的點的個數,這些點可以在圖中的點上,也可以在邊上。先用dijkstra求出原點到各個點的最短距離,然後先掃一遍點,加上距離為L的點,再掃一遍邊,分幾種情況去判斷在邊上能有幾個合格點(1個或2個),這裡寫的時候仔細點就可以了。#include<cstdio>#include<cstring>#include<queue>#include<algorithm>#include

組合數學學習之錯位排列(持續更新)

全錯位排列有三種解法,嘿嘿,那我就要一探究竟!一、遞推        假設排列是1,2,3,4···n個數,Dn表示n個數的全錯位排列的方法數。D1 = 0、D2 = 1        那麼對於第1個位置,假設由k去占。現在就有兩種情況:       1)、1和k互換了位置,k佔1的位置,1佔k的位置:那麼此時相當於1和k位置確定,只需要討論Dn-2的排列數。       2)、1沒有佔k的位置,而是佔了其它的位置:那麼此時相當於只確定了k的位置,需要討論Dn-1的排列數。       但是有(

題目1501:最大連續子序列乘積

#include <stdio.h>#define N 100000+10 double Min[N],Max[N],a[N];double min(double x,double y){ if(x<y) return x; return y; } double max(double x,double y){ if(x>y) return x; return y; } int main(){ int n; double

Uva 442 – Matrix Chain Multiplication//棧

    分析:剛寫這道題的時候,就當作簡單的棧的題寫,但是有一點問題,就是矩陣相乘順序一定。所以代碼就寫的老長。調試的時候也不斷出錯。總之,我太急了,還沒在草稿紙上大號草稿就開始寫代碼。這樣子,效率太低了。還有自己寫代碼的能力太弱了。   #include<stdio.h>#include<string.h>#define MAXN 28struct martix{ int row; int col;} Martix[MAXN],temp[MAXN];int

UVa 160 Factors ans Factorials(數論)

自從換了linux,就沒寫過題解。今天開始要繼續寫。首先,求一個數的階層裡面每個素數因子的個數,那麼我們就可以求從2開始到這個數的每個數的素數因子的個數,相應加和。比如是10!= 1*2*3*4*5*6*7*8*9*10, 那麼 這裡面2的個數就是2,4, 6, 8,

Hoj 1005 利用矩陣計算線性遞推式

#include <stdio.h>void matrix_mul(int (*a)[2],int (*b)[2]);//a = a * bvoid matrix_matrix(int n,int (*a)[2],int (*b)[2]);int main (){ int a,b,n,fn; int f[2][2],ans[2][2]; while (1){ scanf("%d%d%d",&a,&b,&n); if (a

poj 2186 Popular cows ( tarjan )

這道題開始的我忽略了如果它不連通的情況,判斷的時候連著入度判斷讓入度不為0,出度為1,

Uva 112-Tree Summing//建樹,遍曆

    這道題參考了大牛們的結題報告。很久沒這樣了。關鍵是這題很是坑人,輸入有點困難。這道題不用建樹,只需要判斷葉子的位置就ok了。    剛開始一直在糾結如何處理輸入的問題,看了下大牛的代碼,很簡短,但是看的我雲裡霧裡的,似懂非懂的。    想到下午的觀察發現,發現輸入給的數位順序剛好是樹的先序遍曆。這樣就可以往樹的遍曆上入手了。這裡用c++的cin.clear()函數來處理輸入的問題,在用遞迴來遍曆樹(剛開始還沒看明白為什麼說是遞迴)。     簡單的將二叉樹畫出來吧! 

UVa Problem 10041 Vito’s Family (Vito 家族)

// Vito’s Family (Vito 家族)// PC/UVa IDs: 110401/10041, Popularity: A, Success rate: high Level: 1// Verdict: Accepted// Submission Date: 2011-05-21// UVa Run Time: 0.104s//// 著作權(C)2011,邱秋。metaphysis # yeah dot net////

Uva 673 – Parentheses Balance//棧

這道題去年暑假寫過的,但是現在卻在這裡悲催了很長時間,可見自己碼代碼的水平有好“高”!對自己無語了啊。這道題括弧匹配不成功有三種可能1、多括弧2、少括弧3、不匹配。尼瑪,這樣一想首先就要判斷字串長度是不是偶數,不是偶數絕對不匹配。下面的代碼沒有想到是不是偶數(囧!):#include<iostream>#include<string>#include<stack>using namespace std;int main(){ int n; cin&

UVa Problem 10205 Stack ’em Up (完美洗牌術)

// Stack ’em Up (完美洗牌術)// PC/UVa IDs: 110205/10205, Popularity: B, Success rate: average Level: 1// Verdict: Accepted// Submission Date: 2011-05-23// UVa Run Time: 0.036s//// 著作權(C)2011,邱秋。metaphysis # yeah dot net//// 直接根據題意類比洗牌的過程即可。#include

UVa Problem 10050 Hartals (罷工)

// Hartals (罷工)// PC/UVa IDs: 110203/10050, Popularity: B, Success rate: high Level: 2// Verdict: Accepted// Submission Date: 2011-05-23// UVa Run Time: 0.012s//// 著作權(C)2011,邱秋。metaphysis # yeah dot net//// 取天數模 7 的值,0 表示星期天,1 ~ 6

總頁數: 61357 1 .... 7791 7792 7793 7794 7795 .... 61357 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.