[uva 10642] Can You Solve It? – hwchang0417



[uva 10642] Can You Solve It? – hwchang0417

給定source和destination的座標,試計算中間必須經過多少次邊界,座標走訪必須試沿+x, +y座標上的Z字形走訪。

Programming Language: C

Solution: 

列出(0, 0)到(4, 0)的所有邊界次數

(0, 0) => 0
(0, 1) => 1
(1, 0) => 2
(0, 2) => 3
(1, 1) => 4
(2, 0) => 5
(0, 3) => 6
(1, 2) => 7
(2, 1) => 8
(3, 0) => 9
(0, 4) => 10

發現當y等於3時,3 * 2 = 6,當y等於4,4 * 2.5=10,其距離間距呈現下列關係:

(倍率 = 1 + 0.5f * (y – 1)),爾後x每增加一個座標,邊界次數加一,故公式改為:

steps(n, x) = (1 + 0.5f * (n – 1)) * n + x,其中n為x+y

於是可以用下列方式求得source到destination的邊界走訪次數

n1 = x1 + y1; n2 = x2 + y2;

ans = steps(n2, x2) – steps(n1, x1);

steps(n, x) = (1 + 0.5f * (n – 1)) * n + x


Read full article from [uva 10642] Can You Solve It? – hwchang0417


No comments:

Post a Comment

Labels

Algorithm (219) Lucene (130) LeetCode (97) Database (36) Data Structure (33) text mining (28) Solr (27) java (27) Mathematical Algorithm (26) Difficult Algorithm (25) Logic Thinking (23) Puzzles (23) Bit Algorithms (22) Math (21) List (20) Dynamic Programming (19) Linux (19) Tree (18) Machine Learning (15) EPI (11) Queue (11) Smart Algorithm (11) Operating System (9) Java Basic (8) Recursive Algorithm (8) Stack (8) Eclipse (7) Scala (7) Tika (7) J2EE (6) Monitoring (6) Trie (6) Concurrency (5) Geometry Algorithm (5) Greedy Algorithm (5) Mahout (5) MySQL (5) xpost (5) C (4) Interview (4) Vi (4) regular expression (4) to-do (4) C++ (3) Chrome (3) Divide and Conquer (3) Graph Algorithm (3) Permutation (3) Powershell (3) Random (3) Segment Tree (3) UIMA (3) Union-Find (3) Video (3) Virtualization (3) Windows (3) XML (3) Advanced Data Structure (2) Android (2) Bash (2) Classic Algorithm (2) Debugging (2) Design Pattern (2) Google (2) Hadoop (2) Java Collections (2) Markov Chains (2) Probabilities (2) Shell (2) Site (2) Web Development (2) Workplace (2) angularjs (2) .Net (1) Amazon Interview (1) Android Studio (1) Array (1) Boilerpipe (1) Book Notes (1) ChromeOS (1) Chromebook (1) Codility (1) Desgin (1) Design (1) Divide and Conqure (1) GAE (1) Google Interview (1) Great Stuff (1) Hash (1) High Tech Companies (1) Improving (1) LifeTips (1) Maven (1) Network (1) Performance (1) Programming (1) Resources (1) Sampling (1) Sed (1) Smart Thinking (1) Sort (1) Spark (1) Stanford NLP (1) System Design (1) Trove (1) VIP (1) tools (1)

Popular Posts