UVALive 4987 Insults

UVALive_4981    首先判斷一個括弧序列是否合法,可以用一個棧來實現。   

POJ 1084 Square Destroyer

POJ_1084    對於任意一個正方形,我們都至少要拿掉其中的一個火柴,於是如果構造一個行表示火柴、列表示正方形的矩陣,如果第i根火柴屬於第j個正方形,那麼g[i][j]=1,否則g[i][j]=0。這樣這個問題就轉化成了選取盡量少的行,使得每列至少有一個1,於是就可以用Dancing Links解決了。#include<stdio.h>#include<string.h>#include<algorithm>#define MAXD

POJ 1236 Network of Schools

POJ_1236    這個題目的TaskA實際上就是在求入度為0的強連通分量的個數,而TaskB實際上就是在求各個強連通分量中入度為0的個數與出度為0的個數的較大值。    同時這個題目與之前做的點雙連通的分量有所不同,其中有一點便是在求強連通分量時對於low[u]>dfn[v]時更新low[u]的值,有一個前提條件就是v在棧內,因而要單獨用一個數組標記v是否在棧內,而求點雙連通分量時則不需要這個數組,因為只要G[u][v]為1,且dfn[v]不為0,那麼v一定在棧中。   

UVA 12508 Triangles in the Grid

UVA_12508    這個題目的一個坎就是要想到去枚舉三角形的外接矩形,如果想到這一點的話剩下的思路就不難想了,分情況計算出各種三角形(當然這些三角形的外接矩形必須是枚舉的這個矩形)的數量然後再乘以大矩形中有多少個這樣的外接矩形,這樣一種外接矩形的情況就算是算完了。所有外接矩形的情況累加起來就是最終的結果了。#include<stdio.h>#include<string.h>#include<algorithm>typedef long long LL;

POJ 1274 The Perfect Stall

POJ_1274    直接用匈牙利演算法求二分圖的最大匹配即可。#include<stdio.h>#include<string.h>#define MAXD 210int N, M, g[MAXD][MAXD], visy[MAXD], yM[MAXD];void init(){ int i, j, n, x; memset(g, 0, sizeof(g)); for(i = 1; i <= N; i ++) {

ZOJ 3209 Treasure Map

ZOJ_3209    精確覆蓋問題,用Dancing Links直接求解即可。#include<stdio.h>#include<string.h>#include<algorithm>#define MAXN 510#define MAXM 910#define MAXD 460010#define INF 0x3f3f3f3fint N, M, P, size, U[MAXD], D[MAXD], L[MAXD], R[MAXD],

ZOJ 3261 Connections in Galaxy War (並查集)

Connections in Galaxy WarTime Limit: 3 Seconds      Memory Limit: 32768 KBIn order to strengthen the defense ability, many stars in galaxy allied together and built many bidirectional tunnels to exchange messages. However, when the Galaxy War began,

POJ 1080 Human Gene Functions(動態規劃)

題目來源:POJ 1080 Human Gene Functionshttp://acm.pku.edu.cn/JudgeOnline/problem?id=1080  解法類型:動態規劃  解題思路:         網上一份解題報告:寫的很詳細,就此摘來:http://nash250.blog.hexun.com/9794371_d.html和《演算法導論》中動態規劃章節的LCS(Longest common subsequence

POJ 1456【貪心+並查集路徑壓縮】

【第二次周賽B題(POJ

HDU 3251 Being a Hero

HDU_3251    這個題目可以用最小割來做,原圖上的邊的費用當成容量,另外將每個可以選擇的點和T連起來,容量為點權,這樣做完最小割之後就會將點分成兩個集合,一部分是S出發能到達的,記作S集合,另一部分是能夠到達T的點,記作T集合。這樣如果可以選擇的點屬於了S集合,那麼就必然要斷開和T連的邊,表示如果不選這個點那麼相對與最大收益來講就要減去這個點的點權,另外連通S集合和T集合的邊也都要斷開,表示為了從1出發不能到達T集合中選擇的點,所需要付出的代價。   

POJ 3686 The Windy’s

POJ_3686    看到這個題目後,首先一個思路就是相當於安排每個東西是第幾次交給哪個機器做,這樣就可以把每個機器拆成N個點當成二分圖匹配的題目來做了。但是遇到的最大的問題就是,每個東西的總製造時間會依賴與前面製造的東西,這樣每個東西的製造時間就不能獨立計算,也就不能用二分圖匹配去做了。   

POJ 2989 All Friends

POJ_2989    求極大團的數量,我的程式是參照維基上的虛擬碼寫的http://en.wikipedia.org/wiki/Bron%E2%80%93Kerbosch_algorithm。#include<stdio.h>#include<string.h>#define MAXN 130int N, M, a[MAXN], g[MAXN][MAXN];void input(){ memset(g, 0, sizeof(g)); for(int i =

UVA 11806 Cheerleaders

UVA_11806    這個題目直接計算不大好算,但是反過來去計算不符合要求的局面則容易很多。    我們不妨設A[i]表示我們規定其中i條邊上不能放,而其他的地方隨便放,所得的一個結果(比如i=2,我們要枚舉是哪2條邊沒有放,然後其他地方隨便放,可以用組合數求得結果,最後將每次枚舉所得的結果加起來作為A[2]的值)。再設a[i]表示有且僅有i條邊上沒有放的情況數(比如i=2,同樣是枚舉哪2條邊沒有放,最後C(4,2)種枚舉所得的情況之和才是a[2]的值)。   我們想要的顯然是a[1]+a[

POJ 1988 Cube Stacking(並查集)

Cube StackingTime Limit: 2000MS Memory Limit: 30000KTotal Submissions: 15900 Accepted: 5419Case Time Limit: 1000MSDescriptionFarmer John and Betsy are playing a game with N (1 <= N <= 30,000)identical cubes labeled 1 through N. They start with

UVA 11426 GCD – Extreme (II)

UVA_11426    假設a、b(a<b)互質,那麼gcd(a,b)=1,這樣當i迴圈到a、j迴圈到b時就會向結果中+1,而i迴圈到2*a、j迴圈到2*b時就會向結果中+2(gcd(2*a,2*b)=2)...迴圈到k*a和k*b時就會向結果中+k。這樣實際上引起結果變化的根源就在於各對互質的數,當i、j迴圈到他們自身或者自身的倍數時就會引起結果的改變,那麼我們不妨先將每對互質的數對結果的貢獻值算出來,最後將各對互質的數對結果的貢獻累加起來就可以了。   

UVA 10905 Children’s Game

UVA_10905    我們不妨先定義一個大於符號“》”:對於字串a,b,如果有a》b就表示ab的字典序要大於ba的字典序。    假設:如果有a》b,且b》c,那麼就有a》c。    如果這個假設滿足,那麼N個字串就可以按》的關係排成一排,這時拼成的字串就是字典序最大的(同時也是值最大的,因為最終拼成的字串的長度是一定的,所以值的大小關係和字典序的大小關係是相同的)。   

ACM HDU 1257 最少攔截系統 (貪心) by kuangbin

最少攔截系統Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 9039    Accepted Submission(s): 3514Problem Description某國為了防禦敵國的飛彈襲擊,發展出一種飛彈攔截系統.但是這種飛彈攔截系統有一個缺陷:雖然它的第一發炮彈能夠到達任意的高度,但是以後每一發炮彈都不能超過前一發的高度.某天,

HEU 8004 Human Gene Functions

Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->/**//**************************************Problem: HEU 8004 Human Gene FunctionsTime: 0.0090 sMemory: 580 k Accepted Time: 2009-05-21 14:57:55Tips: DP 

POJ 3415 Common Substrings (尾碼數組,長度不小於k的公用子串的個數)

Common SubstringsTime Limit: 5000MS Memory Limit: 65536KTotal Submissions: 5495 Accepted: 1822DescriptionA substring of a string T is defined as: T(i, k)=TiTi+1...Ti+k-1, 1≤i≤i+k-1≤|T|. Given two strings A, B and one integer K, we define S, a set of

HDU 1033 Edge (水題)

EdgeTime Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 886    Accepted Submission(s): 576Problem DescriptionFor products that are wrapped in small packings it is necessary that the sheet of paper

總頁數: 61357 1 .... 8772 8773 8774 8775 8776 .... 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.