<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel>
        <link xmlns="http://www.w3.org/2005/Atom" rel="hub" href="https://overblog.superfeedr.com"/>
        <link xmlns="http://www.w3.org/2005/Atom" rel="self" href="https://nickfpt.over-blog.com/rss" type="application/rss+xml"/>
        <title><![CDATA[Diary of a wimpy algorithmist]]></title>
        <link>https://nickfpt.over-blog.com/</link>
        <generator>Overblog - https://www.over-blog.com</generator>
        <description><![CDATA[hihi hehe hoho :*]]></description>
                    <item>
    <title><![CDATA[10 thuật toán đang chế ngự thế giới chúng ta [part 1]]]></title>
    <link><![CDATA[https://nickfpt.over-blog.com/2015/08/10-thu-t-toan-dang-ch-ng-th-gi-i-chung-ta-part-1.html]]></link>
    <guid>https://nickfpt.over-blog.com/2015/08/10-thu-t-toan-dang-ch-ng-th-gi-i-chung-ta-part-1.html</guid>
    <pubDate>Wed, 26 Aug 2015 14:26:38 +0200</pubDate>
    <description><![CDATA[Thuật toán là gì? Về mặt lí thuyết, thuật toán là một thủ tục tính toán, nhận đầu vào là một tập các giá trị được gọi là input và tạo ra một tập các giá trị được gọi là output. Vì vậy thuật toán là một chuỗi các bước biến đổi input thành output. -Nguồn:... ]]></description>
        <dc:creator><![CDATA[Nick]]></dc:creator>
    </item>
                    <item>
    <title><![CDATA[Chiến thuật ACM [3x1=4]]]></title>
    <link><![CDATA[https://nickfpt.over-blog.com/2015/06/chi-n-thu-t-acm-3x1-4.html]]></link>
    <guid>https://nickfpt.over-blog.com/2015/06/chi-n-thu-t-acm-3x1-4.html</guid>
    <pubDate>Thu, 25 Jun 2015 13:40:58 +0200</pubDate>
    <description><![CDATA[Điều căn bản: Luyện tập, Luyện tập, Luyện tập! Để chiến thuật được thực hiện hiệu quả, bạn không cần phải là thiên tài bởi vì việc luyện tập có thể đưa bạn đi đủ xa. Trong triết lí của chúng tôi, có 3 đặc điểm mấu chốt để tạo nên 1 team xuất sắc: Kiến... ]]></description>
        <dc:creator><![CDATA[Nick]]></dc:creator>
    </item>
                    <item>
    <title><![CDATA[[OOP] const char *p vs char const *p]]></title>
    <link><![CDATA[https://nickfpt.over-blog.com/2015/03/oop-const-char-p-vs-char-const-p.html]]></link>
    <guid>https://nickfpt.over-blog.com/2015/03/oop-const-char-p-vs-char-const-p.html</guid>
    <pubDate>Tue, 17 Mar 2015 16:04:33 +0100</pubDate>
    <description><![CDATA[const char* p kí tự mà p trỏ tới là hằng => có ko thể thay đổi giá trị của kí tự đó nhưng có thể có thể trỏ p tới ô nhớ khác char const* p pointer p là hằng => có thể thay đổi dữ liệu mà nó trỏ tới mà ko thể thay đổi ô nhớ mà p trỏ tới. char a = 'x';... ]]></description>
        <dc:creator><![CDATA[Nick]]></dc:creator>
    </item>
                    <item>
    <title><![CDATA[UVA 12526 - Cellphone Typing]]></title>
    <link><![CDATA[https://nickfpt.over-blog.com/2014/08/uva-12526-cellphone-typing.html]]></link>
    <guid>https://nickfpt.over-blog.com/2014/08/uva-12526-cellphone-typing.html</guid>
    <pubDate>Thu, 28 Aug 2014 07:18:53 +0200</pubDate>
    <description><![CDATA[Một nhóm nghiên cứu đang tìm cách phát triển 1 phần mềm giúp gõ bàn phím nhanh hơn bằng cách phát triển 1 tập từ điển gồm n xâu, giả sử khi gõ 1 xâu P, ta đã gõ đến vị trí i, c1c2...ci, phần mềm sẽ kiểm tra xem nếu tồn tại 1 kí tự c sao cho tất cả các... ]]></description>
        <dc:creator><![CDATA[Nick]]></dc:creator>
    </item>
                    <item>
    <title><![CDATA[[Latin America 2011] Diccionário Portuñol]]></title>
    <link><![CDATA[https://nickfpt.over-blog.com/2014/08/latin-america-2011-diccionario-portunol.html]]></link>
    <guid>https://nickfpt.over-blog.com/2014/08/latin-america-2011-diccionario-portunol.html</guid>
    <pubDate>Thu, 28 Aug 2014 07:07:48 +0200</pubDate>
    <description><![CDATA[Cho 2 tập xâu S, P (|S|, |P| <=1000, mỗi xâu có độ dài <=1000, tổng độ dài mỗi tập <=10^5) Đếm số xâu khác nhau tạo được bằng cách nối 1 prefix khác rỗng của S với 1 suffix khác rỗng của P. Sample Input 3 3 mais grande mundo mas grande mundo 1 5 a aaaaa... ]]></description>
        <dc:creator><![CDATA[Nick]]></dc:creator>
    </item>
                    <item>
    <title><![CDATA[UVA 12506 Shortest Names]]></title>
    <link><![CDATA[https://nickfpt.over-blog.com/2014/08/uva-12506-shortest-names.html]]></link>
    <guid>https://nickfpt.over-blog.com/2014/08/uva-12506-shortest-names.html</guid>
    <pubDate>Thu, 28 Aug 2014 06:59:24 +0200</pubDate>
    <description><![CDATA[Trong 1 ngôi làng, mọi người đều có tên rất dài. Để thuận tiện họ gọi nhau = prefix của tên. Một prefix của tên 1 người có thể được dùng để gọi người đó nếu nó ko fai là prefix của tên 1 người khác. Cho tên của n người trong làng (n<=1000, tổng độ dài... ]]></description>
        <dc:creator><![CDATA[Nick]]></dc:creator>
    </item>
                    <item>
    <title><![CDATA[Spoj SEC]]></title>
    <link><![CDATA[https://nickfpt.over-blog.com/2014/08/spoj-sec.html]]></link>
    <guid>https://nickfpt.over-blog.com/2014/08/spoj-sec.html</guid>
    <pubDate>Thu, 28 Aug 2014 06:34:57 +0200</pubDate>
    <description><![CDATA[Bessie định dẫn đàn bò đi trốn. Để đảm bảo bí mật, đàn bò liên lạc với nhau bằng cách tin nhắn nhị phân. Từng là một nhân viên phản gián thông minh, John đã thu được M (1 <= M <= 50,000) tin nhắn mật, tuy nhiên với tin nhắn i John chỉ thu được b_i (1... ]]></description>
        <dc:creator><![CDATA[Nick]]></dc:creator>
    </item>
                    <item>
    <title><![CDATA[Spoj Chain2]]></title>
    <link><![CDATA[https://nickfpt.over-blog.com/2014/08/spoj-chain2.html]]></link>
    <guid>https://nickfpt.over-blog.com/2014/08/spoj-chain2.html</guid>
    <pubDate>Thu, 28 Aug 2014 06:29:24 +0200</pubDate>
    <description><![CDATA[Chuỗi từ có độ dài n là một dãy các từ w1, w2, ..., wn sao cho với mọi 1 ≤ i < n, từ wi là tiền tố của từ wi+1. Nhắc lại từ u có độ dài k là tiền tố của từ v có độ dài l nếu l > k và các ký tự đầu tiên của v trùng với từ u. Cho tập hợp các từ S={s1, s2,... ]]></description>
        <dc:creator><![CDATA[Nick]]></dc:creator>
    </item>
                    <item>
    <title><![CDATA[[Hashing 2 dimensions] UVA 11019 Matrix Matcher ]]></title>
    <link><![CDATA[https://nickfpt.over-blog.com/2014/08/hashing-2-dimensions-uva-11019-matrix-matcher.html]]></link>
    <guid>https://nickfpt.over-blog.com/2014/08/hashing-2-dimensions-uva-11019-matrix-matcher.html</guid>
    <pubDate>Tue, 26 Aug 2014 23:08:34 +0200</pubDate>
    <description><![CDATA[Given an N * M matrix, your task is to find the number of occurences of an X * Y pattern (N,M<=1000, X,Y<=100) Algorithm: Hashings trên ma trận 2 chiều: ull hash() { ull res=0; FOR(i,0,x-1) { ull u=0; FOR(j,0,y-1) u=u*base1+b[i][j]; res=res*base2+u; }... ]]></description>
        <dc:creator><![CDATA[Nick]]></dc:creator>
    </item>
                    <item>
    <title><![CDATA[[Manacher] Codechef TACHEMIS]]></title>
    <link><![CDATA[https://nickfpt.over-blog.com/2014/08/manacher-codechef-tachemis.html]]></link>
    <guid>https://nickfpt.over-blog.com/2014/08/manacher-codechef-tachemis.html</guid>
    <pubDate>Tue, 26 Aug 2014 10:08:47 +0200</pubDate>
    <description><![CDATA[http://www.codechef.com/problems/TACHEMIS Algorithm: Áp dụng manacher cho n compressed string Do nếu các các compressed string ghép lại đk thành 1 PS thì độ dài của PS đó chắc chắn lẻ nên ta ko cần bước thêm các "#" như Manacher nguyên bản int C = 1,... ]]></description>
        <dc:creator><![CDATA[Nick]]></dc:creator>
    </item>
                    <item>
    <title><![CDATA[[Manacher] Spoj Paliny ]]></title>
    <link><![CDATA[https://nickfpt.over-blog.com/2014/08/manacher-spoj-paliny.html]]></link>
    <guid>https://nickfpt.over-blog.com/2014/08/manacher-spoj-paliny.html</guid>
    <pubDate>Tue, 26 Aug 2014 09:44:27 +0200</pubDate>
    <description><![CDATA[Tìm substring dài nhất là palindrome của 1 xâu S |S|<=50000 Manacher: Đầu tiên biến đổi xâu S bằng cách thêm xen giữa các kí tự của S kí tự #, thêm vào đầu S kí tự ^, cuối S kí tự $ Ví dụ S=abba => S=^#a#b#b#a#$ Như vậy mọi Palin Substring (PS) bây giờ... ]]></description>
        <dc:creator><![CDATA[Nick]]></dc:creator>
    </item>
                    <item>
    <title><![CDATA[[Jakarta 2013] Pasti Pas!]]></title>
    <link><![CDATA[https://nickfpt.over-blog.com/2014/08/jakarta-2013-pasti-pas.html]]></link>
    <guid>https://nickfpt.over-blog.com/2014/08/jakarta-2013-pasti-pas.html</guid>
    <pubDate>Tue, 26 Aug 2014 05:57:35 +0200</pubDate>
    <description><![CDATA[UMột xâu có thể được viết thành dạng palindrom nếu ta thay 1 hoặc 1 số substring của nó = 1 biểu tượng khá. Ví dụ Let S = ‘ABCADDABCA’. There are several derivations of S, e.g.: • Let α = ‘ABCA’, β = ‘DD’, then S′ = ‘αβα’ which has a length of 3. • Let... ]]></description>
        <dc:creator><![CDATA[Nick]]></dc:creator>
    </item>
                    <item>
    <title><![CDATA[[Jakarta 2008] Greatest K-Palindrome Substring]]></title>
    <link><![CDATA[https://nickfpt.over-blog.com/2014/08/jakarta-2008-greatest-k-palindrome-substring.html]]></link>
    <guid>https://nickfpt.over-blog.com/2014/08/jakarta-2008-greatest-k-palindrome-substring.html</guid>
    <pubDate>Tue, 26 Aug 2014 05:51:47 +0200</pubDate>
    <description><![CDATA[Một xâu được gọi là k-palin nếu ta có thể sửa k kí tự của nó để biến nó thành palin. Cho xâu S (|S|<=1000) và số K. Tìm substring dài nhất của S là k-palin. Algorithm Xây dựng Fx[i][j] là kí tự ít nhất cần sửa để đoạn (i,j) của S là palin FOR(k,3,n) FOR(i,0,n-1)... ]]></description>
        <dc:creator><![CDATA[Nick]]></dc:creator>
    </item>
                    <item>
    <title><![CDATA[CF79C Beaver]]></title>
    <link><![CDATA[https://nickfpt.over-blog.com/2014/08/cf79c-beaver.html]]></link>
    <guid>https://nickfpt.over-blog.com/2014/08/cf79c-beaver.html</guid>
    <pubDate>Tue, 26 Aug 2014 05:45:14 +0200</pubDate>
    <description><![CDATA[Cho n xâu b1,b2,..,bn được xem là boring và xâu S. Tìm substring dài nhất của S ko chứa n xâu boring như là substring (n<=10, |S|<=10^5) Sample test(s) input Go_straight_along_this_street 5 str long tree biginteger ellipse output 12 4 input IhaveNoIdea... ]]></description>
        <dc:creator><![CDATA[Nick]]></dc:creator>
    </item>
                    <item>
    <title><![CDATA[CF126B Password]]></title>
    <link><![CDATA[https://nickfpt.over-blog.com/2014/08/cf126b-password.html]]></link>
    <guid>https://nickfpt.over-blog.com/2014/08/cf126b-password.html</guid>
    <pubDate>Tue, 26 Aug 2014 05:37:22 +0200</pubDate>
    <description><![CDATA[Cho xâu S |S|<=1000.000. Tìm substring P dài nhất của S sao cho P vừa là prefix vừa là suffix vừa xuất hiện ở giữa S (không trùng prefix, suffix) Sample test(s) input fixprefixsuffix output fix input abcdabc output Just a legend Dùng Z-algorithm xấy dựng... ]]></description>
        <dc:creator><![CDATA[Nick]]></dc:creator>
    </item>
                    <item>
    <title><![CDATA[[Europe Southeastern 2004] Period]]></title>
    <link><![CDATA[https://nickfpt.over-blog.com/2014/08/europe-southeastern-2004-period.html]]></link>
    <guid>https://nickfpt.over-blog.com/2014/08/europe-southeastern-2004-period.html</guid>
    <pubDate>Tue, 26 Aug 2014 05:28:19 +0200</pubDate>
    <description><![CDATA[Với mỗi prefix P của S nếu có thể viết được dưới dạng A^K (ghép liên tiếp K xâu A lại, K>1) thì in ra K Sample Input 3 aaa 12 aabaabaabaab 0 Sample Output Test case #1 2 2 3 3 Test case #2 2 2 6 2 9 3 Algorithm Xây dựng mảng prefix function của S Với... ]]></description>
        <dc:creator><![CDATA[Nick]]></dc:creator>
    </item>
                    <item>
    <title><![CDATA[Spoj VPalin POI 2006 ]]></title>
    <link><![CDATA[https://nickfpt.over-blog.com/2014/08/spoj-vpalin-poi-2006.html]]></link>
    <guid>https://nickfpt.over-blog.com/2014/08/spoj-vpalin-poi-2006.html</guid>
    <pubDate>Tue, 26 Aug 2014 05:17:00 +0200</pubDate>
    <description><![CDATA[Cho n xâu palindrome, đếm số lượng cặp xâu sao cho khi ghép chúng lại ta được 1 xâu palindrome. Tổng độ dài của n xâu <= 2.000.000 Input: 3 1 a 2 bb 2 aa Output: 5 The 5 palindromes are: aa aaa aaa bbb aaaa Algorithms: Nhận xét: 1 xâu palindrome <=> period... ]]></description>
        <dc:creator><![CDATA[Nick]]></dc:creator>
    </item>
                    <item>
    <title><![CDATA[SRM 433 MagicWord]]></title>
    <link><![CDATA[https://nickfpt.over-blog.com/2014/08/srm-433-magicword.html]]></link>
    <guid>https://nickfpt.over-blog.com/2014/08/srm-433-magicword.html</guid>
    <pubDate>Tue, 26 Aug 2014 02:58:33 +0200</pubDate>
    <description><![CDATA[Xét xâu T gồm L kí tự. T(i) là xâu xoay vòng của T được định nghĩa như sau: |T(i)|=L T(i)[j]=T[(i+j)%L] ví dụ: T=abcde => T(1)=bcdea T được gọi là MagicWord nếu có chính xác K vị trí i sao cho T(i)=T Cho mảng S gồm N từ. Với mỗi hoán vị p[0],p[1]..,p[N-1]... ]]></description>
        <dc:creator><![CDATA[Nick]]></dc:creator>
    </item>
                    <item>
    <title><![CDATA[CF 432D Prefixes and Suffixes]]></title>
    <link><![CDATA[https://nickfpt.over-blog.com/2014/08/cf-432d-prefixes-and-suffixes.html]]></link>
    <guid>https://nickfpt.over-blog.com/2014/08/cf-432d-prefixes-and-suffixes.html</guid>
    <pubDate>Tue, 26 Aug 2014 02:20:39 +0200</pubDate>
    <description><![CDATA[Cho xâu S, nhiệm vụ là với mỗi xâu con vừa là prefix vừa là suffix in ra số lần nó xuất hiện trong S. |S|<=10^5 Algorithm: Để làm được bài này cần hiểu sâu sắc ý nghĩa của prefix function trong phần khởi tạo của KMP F[0] = F[1] = 0; for(int i = 2;i<=n;i++){... ]]></description>
        <dc:creator><![CDATA[Nick]]></dc:creator>
    </item>
                    <item>
    <title><![CDATA[[MST] UVA 10600 - ACM Contest and Blackout]]></title>
    <link><![CDATA[https://nickfpt.over-blog.com/2014/08/mst-uva-10600-acm-contest-and-blackout.html]]></link>
    <guid>https://nickfpt.over-blog.com/2014/08/mst-uva-10600-acm-contest-and-blackout.html</guid>
    <pubDate>Tue, 12 Aug 2014 18:56:46 +0200</pubDate>
    <description><![CDATA[Tìm cây khung nhỏ nhất và cây khung nhỏ thứ 2 Algorithms: Tìm cây khung nhỏ nhất rồi đánh dấu các cạnh thuộc cây khung nhỏ nhất Với mỗi cạnh đã đánh dấu tìm cây khung nhỏ nhất ko chứa cạnh đó: - Union tất cả các cạnh đk đánh dấu ngoại trừ cạnh đang xét... ]]></description>
        <dc:creator><![CDATA[Nick]]></dc:creator>
    </item>
                    <item>
    <title><![CDATA[[MST] Kaohsiung 2006 The Bug Sensor Problem]]></title>
    <link><![CDATA[https://nickfpt.over-blog.com/2014/08/mst-kaohsiung-2006-the-bug-sensor-problem.html]]></link>
    <guid>https://nickfpt.over-blog.com/2014/08/mst-kaohsiung-2006-the-bug-sensor-problem.html</guid>
    <pubDate>Tue, 12 Aug 2014 09:07:03 +0200</pubDate>
    <description><![CDATA[Đề khó hiểu vc. Tóm tắt Cho n cột wifi trên mặt phẳng và m thiết bị thu phát. Hai cột wifi có thể trao đổi thông tin nếu khoảng cách giữa chúng <= D. M thiết bị thu phát sẽ được lắp vào m cột wifi (m<=n) , thiết bị này sẽ truyền thông tin về căn cứ. Tìm... ]]></description>
        <dc:creator><![CDATA[Nick]]></dc:creator>
    </item>
                    <item>
    <title><![CDATA[[MST] Jakarta 2008- Anti Brute Force Lock]]></title>
    <link><![CDATA[https://nickfpt.over-blog.com/2014/08/mst-jakarta-2008-anti-brute-force-lock.html]]></link>
    <guid>https://nickfpt.over-blog.com/2014/08/mst-jakarta-2008-anti-brute-force-lock.html</guid>
    <pubDate>Tue, 12 Aug 2014 09:00:32 +0200</pubDate>
    <description><![CDATA[What's done is done. But in order to slow down future robbers' attack, Panda Security Agency (PSA) has devised a new safer lock with multiple keys. Instead of using only one key combination as the key, the lock now can have up to N keys which has to be... ]]></description>
        <dc:creator><![CDATA[Nick]]></dc:creator>
    </item>
                    <item>
    <title><![CDATA[[Nim game] CF 15C. Industrial Nim]]></title>
    <link><![CDATA[https://nickfpt.over-blog.com/2014/08/nim-game-cf-15c-industrial-nim.html]]></link>
    <guid>https://nickfpt.over-blog.com/2014/08/nim-game-cf-15c-industrial-nim.html</guid>
    <pubDate>Mon, 11 Aug 2014 06:35:12 +0200</pubDate>
    <description><![CDATA[Có n mỏ đá. Mỏ đá i có mi xe đá: xe 1 chứa xi viên đá xe 2 chưa xi+1 viên đá ... xe mi chứa xi+mi-1 viên đá Ở mỗi lượt chơi, người chơi sẽ được chọn 1 xe đá bất kì và lấy ra 1 lượng đá bất kì từ nó. Người lấy đk những viên đá cuối cùng sẽ chiến thắng.... ]]></description>
        <dc:creator><![CDATA[Nick]]></dc:creator>
    </item>
                    <item>
    <title><![CDATA[[Nim game] Jakarta 2010 - Playing With Stones]]></title>
    <link><![CDATA[https://nickfpt.over-blog.com/2014/08/nim-game-jakarta-2010-playing-with-stones.html]]></link>
    <guid>https://nickfpt.over-blog.com/2014/08/nim-game-jakarta-2010-playing-with-stones.html</guid>
    <pubDate>Sun, 10 Aug 2014 05:53:14 +0200</pubDate>
    <description><![CDATA[Cho n đống sỏi, đống i chưa a[i] viên. Ở mỗi lượt đi, mỗi người phải lấy ra ít nhất 1 viên từ 1 đống, nhưng số sỏi lấy ra phải <= 1/2 số viên sỏi trong đống đó. Người chơi nào ko thể lấy sỏi ra sẽ thua. Xác định xem người đi trước có thể thắng ko? (n<=100,... ]]></description>
        <dc:creator><![CDATA[Nick]]></dc:creator>
    </item>
                    <item>
    <title><![CDATA[[LCA] Jakarta 2010 - Lightning Energy Report]]></title>
    <link><![CDATA[https://nickfpt.over-blog.com/2014/08/lca-jakarta-2010-lightning-energy-report.html]]></link>
    <guid>https://nickfpt.over-blog.com/2014/08/lca-jakarta-2010-lightning-energy-report.html</guid>
    <pubDate>Sun, 10 Aug 2014 05:31:44 +0200</pubDate>
    <description><![CDATA[Cho 1 cây n đỉnh (2N50, 000) và Q thao tác (Q<=50000). Mỗi truy vấn có dạng (u v c) : cộng vào mỗi nút trên đường đi từ u đến v 1 giá trị c (<=100). Ban đầu mỗi nút có giá trị = 0. Yêu cầu: tìm giá trị mỗi nút sau khi thực hiện Q thao tác Sample Input... ]]></description>
        <dc:creator><![CDATA[Nick]]></dc:creator>
    </item>
            </channel>
</rss>

