POJ 1201 Intervals (差分約束系統)

題意:給你許多小區間[ai,bi],並且指定每一個小區間內至少包含ci個數。然後求一個長度最小區間 z, 使得與每一個小區間的相同元素都>=ci。題解:1.假設區間z=[s,t], sum[i]表示[s,t] ∩ [s,i] 的元素個數。那麼[ai,bi] >= ci 則可以表示為sum[bi]-sum[ai-1]>=ci。2.若i<=j,則 [s,t] ∩ [s,i] 的元素個數 <= [s,t] ∩ [s,j] 的元素個數,即:sum[i] <= sum[

POJ 1523 SPF (割點)

題意:求割點,並計算去掉割點後連通分支的數量。#include <iostream>using namespace std;#define N 1005#define min(a,b) (a<b?a:b)int size, id;int head[N], vis[N];int low[N], dfn[N], connect[N];struct { int v, next; } edge[N];void add ( int u, int v ){size++;edge[size]

Codeforces Beta Round #96 (Div. 2) (位元模數)

B. Unarytime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputUnary is a minimalistic Brainfuck dialect in which programs are written using only one token.Brainfuck programs use 8 commands: "+", "-", "[

POJ 1236 Network of Schools (強連通分量,塊,縮點)

題意:一些學校通過網路連接在一起,每個學校手中有一份名單,即它所指向的點。學校A的名單中有學校B,並不能保證學校B的名單裡有學校A。現在有一軟體,1.問至少發給幾個學校才能保證所有的學校都可以得到該軟體。2.至少加幾條邊才能使將軟體發給某個學校後,其他所有學校都可以得到軟體。題解:第一問求的是入度為0的點。第二問求的是加幾條邊使圖變為強連通圖。PS:有向非循環圖中所有入度不為0的點,一定可以由某個入度為0的點出發可達。(由於無環,所以從任何入度不為0的點往回走,必然終止於一個入度為0的點)#in

HDU 4041 Eliminate Witches! 樹的遍曆

題意:2011北京網賽題目。輸出遍曆的路徑。#include <stack>#include <queue>#include <cstring>#include <iostream>using namespace std;#define N 1000010#define M 50010struct Item{int flag, id; /* flag=1表示為數字,flag=0表示非數字。 id表示房間的編號。 */char ch;};queue&

POJ 2186 Popular Cows (強連通分量)

題意:—給定一個有向圖,求有多少個頂點是由任何頂點出發都可達的。題解:1. 求出所有強連通分量  2. 每個強連通分量縮成一點,則形成一個有向非循環圖DAG。—3. DAG上面如果有唯一的出度為0的點,則該點能被所有的點可達。那麼該點所代表的連通分量上的所有的原圖中的點,都能被原圖中的所有點可達,則該連通分量的點數,就是答案。—4.

POJ 2942 Knights of the Round Table (奇圈+點雙聯通)

題意:在亞瑟王的圓桌騎士團中,某些騎士兩兩之間相互憎恨,這樣一來他們開會的時候邊不能相鄰的坐著。即肯定存在某些人不能參加會議。假如一個騎士所有的會議都不能出席,那麼他就會被驅逐。現在已知那些騎士之間相互憎恨,求最少要驅逐多少名騎士。(開會時人數必需>=3且為奇數)題解:建圖時,對互相不憎恨的兩人之間連一條邊。對任意一名騎士來說,他要能出席某次會議則他左右的人都不能與他互相憎恨。將每次參加會議的所有人(不一定是整個騎士團,只需人數>=3且為奇數)看做一個點雙聯通分量,那麼每個點都至少有

POJ 2752 KMP

題意:給定一個字串, 如 alala, 求既是它首碼,又是它尾碼的子串( a, ala, alala ) ,按升序輸出所以可能的子串的長度。 題解:next 函數的應用。當然用hash也可以。#include <iostream>using namespace std;#define N 400005char str[N];int next[N];void get_next ( int n ){int i = 0, j = -1;next[0] = -1;while ( i <

HDU 2066 一個人的旅行 Dijkstra

題意:雖然草兒是個路癡(就是在杭電待了一年多,居然還會在校園裡迷路的人,汗~),但是草兒仍然很喜歡旅行,因為在旅途中會遇見很多人(白馬王子,^0^),很多事,還能豐富自己的閱曆,還可以看美麗的風景……草兒想去很多地方,她想要去東京鐵塔看夜景,去威尼斯看電影,去陽明山上看海芋,去紐約純粹看雪景,去巴黎喝咖啡寫信,去北京探望孟薑女……眼看寒假就快到了,這麼一大段時間,可不能浪費啊,一定要給自己好好的放個假,可是也不能荒廢了訓練啊,所以草兒決定在要在最短的時間去一個自己想去的地方!因為草兒的家在一個小

POJ 2771 Guardian of Decency (最大獨立集Hungary)

題意:老師想帶他的學生們出去旅行,但是不想他們之間發生戀愛。也就是說,任意兩個可能發生戀愛的人不能同時都帶去。要求能帶去旅行的最大人數。老師認為滿足下列情況的人之間不會發生戀愛。1.Their height differs by more than 40 cm.2.They are of the same sex. 3.Their preferred music style is different. 4.Their favourite sport is the same (they are

HDU 4006 The kth great number 堆/優先順序隊列/線段樹

題意:先輸入兩個整數 n, k。然後有 n 行輸入, I 代表寫下一個數字, Q代表詢問在所有寫下的數字中第 k 大的數數多少?題解:因為當寫下的數少於 k 個是不存在詢問的情況。所以可以建一個堆,然後沒寫下一個數字,若它比堆中的最小數字還小,則堆不做改變。若它比堆中的最小數字要大,那麼將堆中的最小數字去掉,並加入剛寫入的數字。具體寫了三種方法:方法一:最小堆#include <algorithm>#include <iostream>using namespace

POJ 1274 The Perfect Stall (匈牙利演算法)

題意:一同牛隻願意在幾個特定的棚子裡面產奶。每頭牛喜好不同,每個棚子只容納一同牛。求最大匹配。#include <iostream>using namespace std;#define N 210bool vis[N], bond[N][N];int match[N];int n, m;bool find_path ( int u ){for ( int v = 1; v <= m; v++ ){if ( bond[u][v] && !vis[v]

POJ 2255 Tree Recovery 二叉樹遍曆

題意:給出一棵二叉樹的先序遍曆和中序遍曆,輸出它的後序遍曆。題解:#include <iostream>using namespace std;char preorder[30], inorder[30], postorder[30];int len;void travel ( int pStart, int pEnd, int inStart, int inEnd ){if ( pStart > pEnd ) return;postorder[--len] =

POJ 1466 Girls and Boys (最大獨立集Hungary)

題意:有n個學生,一男一女可能會陷入浪漫之中,現在知道每個人的浪漫關係。求一個最大集,使得集合裡的所有人之間沒有浪漫關係。題解:二分圖匹配,最大獨立集。#include <iostream>using namespace std;#define N 510bool vis[N];int match[N], bond[N][N], cnt[N], n;bool find_path ( int u ){for ( int i = 1; i <= cnt[u]; i++ ){int

Codeforces Beta Round #96 (Div. 2)

C. Turing Tapetime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputINTERCAL is the oldest of esoteric programming languages. One of its many weird features is the method of character-based output,

POJ 2724 Purifying Machine (二分圖最大獨立集Hungary)

題意:邁克有一台可以淨化乳酪的機器,用二進位表示淨化的乳酪的編號。但是,在某些二進位串中可能包含有‘*'。例如01*100,'*'其實就代表可以取0,1兩種情況--> 010100 和011100。現在由於邁克不小心,他以同樣的方式弄髒了某些乳酪,問你最少用多少次操作就可以把弄髒的乳酪全淨化好。(沒有被弄髒過的乳酪不能淨化。弄髒過的乳酪可以多次淨化。)題解:淨化的時候,淨化的時候每次盡量用包含*的二進位串(因為它可以淨化兩塊乳酪)。運算元 = 總汙染數 - 2 * 最大匹配 + 最大匹配。

Codeforces Beta Round #96 (Div. 2) (類比)

D. Piettime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputPiet is one of the most known visual esoteric programming languages. The programs in Piet are constructed from colorful blocks of pixels and

線段樹(1)

給定一段區間和若干查詢關於子區間性質(比如元素總和,最大最小值等等)的請求,要求高效返回結果是很常見的要求。接下來幾篇文章我詳細說一說應對這些需求所用的資料結構。從求子區間元素和問題說起。給定序列a[1...n],要求從sum(i,j) = a[i]+a[i+1]+...+a[j]很簡單,一個迴圈就可以了。但如果很多個查詢過來,每次都迴圈一遍就太低效了。我們希望能對結果進行緩衝,如果有相同的查詢可以直接得到結果,至少能利用之前已經算出的值減少計算量(比如求sum(1,10),之前已經算出sum(

Codeforces Beta Round #96 (Div. 2) (DP)

E. Logo Turtletime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputA lot of people associate Logo programming language with turtle graphics. In this case the turtle moves along the straight line and

最小路徑覆蓋

在一個PXP的有向圖中,路徑覆蓋就是在圖中找一些路經,使之覆蓋了圖中的所有頂點,且任何一個頂點有且只有一條路徑與之關聯;(如果把這些路徑中的每條路徑從它的起始點走到它的終點,那麼恰好可以經過圖中的每個頂點一次且僅一次);如果不考慮圖中存在迴路,那麼每每條路徑就是一個弱連通子集.由上面可以得出:1.一個單獨的頂點是一條路徑;2.如果存在一路徑p1,p2,......pk,其中p1

總頁數: 61357 1 .... 13175 13176 13177 13178 13179 .... 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.