codeforces 292E Copying Data(線段樹)

http://codeforces.com/problemset/problem/292/E題目大意:兩個數組,a和b,兩種操作:1:將數組a的區間[x,x+k-1]複製給數組b的區間[y,y+k-1]。2:問當前b[x]的值。 思路:這道題可以用線段樹做,線上段樹中維護以下值:sta,stb,這兩個值只有線上段樹的葉子節點才有意義,對於一個位置po,(也就是線段[po,po],它是線段樹的葉子節點),sta為0表示這個位置還沒有被a覆蓋,保持原來的值,否則,sta表示位置po已被覆蓋,且是被a

codeforces 187 (div2)題解

http://codeforces.com/problemset/problem/315/A這兩天做了兩場CF的題(div2),沒事補個題解吧。A題:題目很水,但是有些噁心的trick,比如有的罐子可以開啟沒有出現的編號的罐子,還有自己不能開啟自己,題目沒看清,WA了一堆,最後直接O(n^2)暴力水過。。。#include <iostream>#include <stdio.h>#include <algorithm>#include

codeforces 178C3 – Smart Beaver and Resolving Conflicts 線段樹

       題目大意:這道題用到了hash表處理衝突的一種辦法,給你一個大小為h的hash表標號從0到h-1,記為hash[0]~hash[h-1]有兩種操作:1:"+ id ha":表示向雜湊表中插入一個

poj2387-最短路dijkstra演算法

題目串連分析:這題是道典型的最短路程問題,用dijkstra演算法就行了。題目中說過它是雙向邊,所以輸入的時候要選最小的邊。注意這裡就是模板題了。代碼:#include<stdio.h>#include<string.h>#define INF 1<<29int N,T;int graph[1005][1005];int visit[1005],d[1005];void dijkstra(){ int i,j,dis,k; memset(visit,0

spoj 1811 LCS (尾碼自動機 SAM)

http://www.spoj.com/problems/LCS/題意:求兩個字串A,B的最長公用子串。字串長度不超過250000。 思路:這應該算是尾碼自動機的經典應用了吧,我們先構造A的SAM,然後用A的SAM一次讀入B的每一個字元,初始時狀態在root處,此時最大匹配數為tmp=0,(這裡的最大匹配數是指以當前讀入的字元結尾,往前能匹配的最大長度),設當前到達的狀態為p,最大匹配數為tmp,讀入的字元為x,若p->go[x]!=NULL,則說明可從目前狀態讀入一個字元x到達下一個狀態

hdu 2896 病毒侵襲 (AC自動機)

題目大意:給你一堆病毒串,再給你一些網站,問每個網站是否包含病毒串,若包括,包括哪幾個病毒串,還有一共有幾個網站包含病毒串。啊啊,自己第一道AC自動機的題,還是比較簡單的模板題吧,過幾天要總結一下AC自動機呀。思路很簡單了,將所有病毒串構成trie樹,然後求AC自動機,再用每個網站在AC自動機上跑就行了。跑的時候開一個數組記錄每個網站包含的病毒串。每經過一個節點由失敗指標向上移,看是否有病毒串(即flag為1的節點)。應該還可以最佳化的,不過資料量不大,跑的還是挺快的,呵呵。過幾天研究下AC自動

poj1847-單源路徑dijkstra演算法

題目串連題意:有n個交叉點,每個交叉點有一個開關,開關能指向其它的交叉點。告訴你n個交叉點,初始位置,和目標位置。要你改變開關的總次數最小。接下n行輸入裡,每行代碼第i個交叉點,一行中,第一個代表,開關指向的另一個交叉點的個數,後面的代表開關能指向的交叉點的編號。(開關指向第一交叉的編號為初始狀態)分析:這題看起來給路徑沒什麼聯絡,其實,它還是個路徑問題,只不過問題的方式不同,把開關指向的初始權值賦值為零,其他的賦值為1就行了。不需要考慮後面開關改變,因為計算最短路徑時,不會出現兩次或多次經過同

spoj 1812 LCS2 (尾碼自動機)

http://www.spoj.com/problems/LCS2/題意:求多個串的最長公用子串。每個字串不超過100000 思路:也是SAM的經典應用了,基本思路和LCS一樣(如果不太清楚的可以先看看這裡http://blog.csdn.net/dyx404514/article/details/8718963)首先還是構造第一個字串的SAM,我們在SAM的每個狀態裡多維護幾個值:mi表示不同的字串在該狀態匹配長度的最小值(為什麼是最小值這個留給大家思考),ma表示當前正在與A進行匹配的字串在

codeforces round 169 div2 題解

http://codeforces.com/problemset/problem/276/AA:題意:有n家餐館,a[1]~a[n],在每家餐館有一個歡樂度fi和時間ti,給你一個常數k,對於每家餐館若ti>k,則獲得fi-(ti-k)點歡樂度,否則增加fi點歡樂度,問在哪家餐館吃飯獲得的歡樂度最大。。。。思路:SB題,直接枚舉不解釋。。。http://codeforces.com/contest/276/problem/BB:題意:首先給一個字串,博弈,兩個人輪流從字串中隨意刪除一個元素

POJ1035-Spell checker

 轉載請註明出處:優YoU http://user.qzone.qq.com/289065406/blog/1309051410 大致題意:輸入一部字典,輸入若干單詞1、  若某個單詞能在字典中找到,則輸出corret2、  若某個單詞能通過 變換 或 刪除 或 添加一個字元後,在字典中找得到,則輸出這些單詞,輸出順序根據  輸入的那部字典的字典序3、  若某個單詞無論操作與否都無法在字典中找得到,則輸出空 解題思路:沒難度的字串處理,1次AC暴力吧!類比吧! 基本思路就是逐個比較 待查單詞

POJ2586-Y2K Accounting Bug

 轉載請註明出處:優YoU

POJ2965-The Pilots Brothers’ refrigerator

 轉載請註明出處:優YoU  http://user.qzone.qq.com/289065406/blog/1299077378 提示:這題和POJ1753翻轉棋的思想是一致的,需要注意的是要求輸出翻轉過程,因此不能用BFS,必須用DFS(找到目標後,還要過程回溯)與POJ1753相比,這題還要注意翻棋的方法,若不注意會大大浪費時間導致逾時,因為是整行整列翻轉,在邊界處會出現很多多餘操作。代碼中詳細說明同樣本題有兩種方法,Enum和Bit

POJ1276-Cash Machine

 轉載請註明出處:優YoU  http://user.qzone.qq.com/289065406/blog/1299341477 提示:動態規劃,多重背包 題目大意:有各種不同面值的貨幣,每種面值的貨幣有不同的數量,請找出利用這些貨幣可以湊成的最接近且小於等於給定的數字cash的金額。 初始思路:多重背包問題,第i種面額d[i]有 n[i]+1種選擇方案可以轉化為01背包問題處理轉化的大概思路就是把

POJ3080-Blue Jeans

 轉載請註明出處:優YoU http://user.qzone.qq.com/289065406/blog/1309012790 大致題意:就是求k個長度為60的字串的最長連續公用子串,2<=k<=10規定:1、  最長公用串長度小於3不輸出2、  若出現等長的最長的子串,則輸出字典序最小的串 解題思路:糾結了幾個月放著沒做的題目。。一直以為要用KMP或者尾碼數組來做。。。然後我就拚命學尾碼。。。今天偶然發現直接 暴力 能夠達到0ms的效果= =所以。。。暴力吧。。。不愧為初級的題。

POJ1459-Power Network

 轉載請註明出處:優YoU http://user.qzone.qq.com/289065406/blog/1299339754 提示:BFS找增廣鏈 + 壓入重標法解題思路:多源多匯最大流問題 題目給出很多都是廢話,特別是符號s(u),d(u),Con還有那條公式都別管,混淆視聽痛點在於構圖 電站p(u)均為源點,使用者c(u)均為匯點,中轉站當普通點處理 第一個誤區是例圖, 結點 和 邊 都有x/y(流量和容量),這個很容易使人產生矛盾(因為學習最大流問題是,只有 邊 才有流量和容量。   

POJ3267-The Cow Lexicon

 轉載請註明出處:優YoU

POJ1328-Radar Installation

 轉載請註明出處:優YoU http://user.qzone.qq.com/289065406/blog/1299228061 提示:簡單的貪心正確的演算法是:要考慮把雷達站放到哪個位置使得包含雷達的區間最多! 寫演算法的時候要注意,按海島的橫座標排序(縱座標是跟隨橫座標,但不能對排序構成任何影響)後,第一個雷達建立在區間的右端,然後依次判斷每個區間的左端點,如果在最建立立的雷達右面,那麼肯定需要一個雷達,而且也建在區間右端。如果左端點在雷達左面,這個時候要考慮區間的右端在雷達的左面還是右面,

POJ1129-Channel Allocation

 轉載請註明出處:優YoU http://user.qzone.qq.com/289065406/blog/1303954302題目翻譯:當一個廣播電台在一個非常大的地區,廣播站會用中繼器來轉播訊號以使得每一個接收器都能接收到一個強烈的訊號。然而,每個中繼器必須謹慎選擇使用,使相鄰的中繼器不互相干擾。如果相鄰的中繼器使用不同的頻道,那麼就不會相互幹擾。由於無線電頻道是一有限的,一個給定的網路所需的中繼頻道數目應減至最低。編寫一個程式,讀取一個中繼網路,然後求出需要的最低的不同頻道數。 建模:一個

POJ3020-Antenna Placement

 轉載請註明出處:優YoU

poj1062-dijkstra演算法

點擊開啟連結題目分析:最短路徑,用dijkstra演算法可一個實現。就是多了限制條件。用枚舉方法。代碼;#include<stdio.h>#include<cstring> #define max 1000000int n,m;int graph[105][105];int value[105],level[105],d[105];bool used[105],limit[105];int dijkstra(){int sum=max;int i,j;int k,dis;

總頁數: 61357 1 .... 19208 19209 19210 19211 19212 .... 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.