uva 工具网站 顶 顶!!!

来源:互联网 发布:前端工程师 程序员 编辑:程序博客网 时间:2024/04/29 23:01

Online Judge System

源起

「Association for Computing Machinery (ACM) 」是一個致力於電腦科學教育的協會,出版大量專業期刊、文獻,舉辦重大的計算機科學會議,在資訊界舉足輕重、名聞遐邇。
ACM 每年度都會舉辦一次「The ACM-ICPC International Collegiate Programming Contest (ACM-ICPC) 」,是一個給全世界大專院校學生參加的演算法程式設計比賽,比賽目的在於考驗選手臨場時的演算法設計能力、程式編寫能力。 ACM 首先在世界各地舉辦初賽,然後從各個賽區選拔出表現優秀的隊伍,角逐世界總決賽。台灣主要大專院校近十幾年來不遺餘力,積極爭取到台灣賽區的舉辦權和承辦權,並鼓勵學生參與比賽。另外台灣教育部也創辦了類似的「全國大專電腦軟體設計競賽」,藉此發掘優秀的選手,賦予為國爭光的使命。
ACM-ICPC 帶動了演算法程式設計的風氣。世界上許多大專院校的資訊系所,仿照 ACM-ICPC 的比賽模式,紛紛自行開發出即時線上比賽系統,能夠自動批改、評分、計時、統計。學生不必齊聚一堂,藉由網際網路,就可以相互切磋程式設計技巧。比賽結束之後,便將比賽題目編列題庫,並開放線上批改程式的功能,供學生賽後練習檢討。這套系統大家一般稱之為「 Online Judge System 」,或直接稱為「 Online Judge 」、「 OJ 」。
最古老、也是最有知名度的 OJ ,是由西班牙知名的瓦雅多利大學「Universidad de Valladolid (UVa) 」開發的「UVa Online Judge 」。 UVa Online Judge 是台灣人最熟悉的一個 OJ :資訊相關科系的學生,常利用它來磨鍊程式設計技巧;教師將它當作課程教材使用;有許多個人網站從事題目翻譯,提供測試資料集等等。
UVa Online Judge 亦和 ACM 合作,成為 ACM 推廣的一個 OJ ,藉此向大眾提倡程式設計。因此, UVa Online Judge 除了收集自行舉辦的比賽的題目,也嘗試收錄世界各地重大程式設計比賽的題目,以臻豐富完整。有趣的是,歷年來大家口耳相傳、以訛傳訛,便將 UVa Online Judge 誤植為 ACM 了,把 UVa Online Judge 的題庫稱作「 ACM 題目」,利用 UVa Online Judge 訓練程式設計技巧時稱作「寫 ACM 」,約定俗成。
知名的 Online Judge

UVa Online Judge,UVa Online Judge: Electronic Board
西班牙Valladolid大學的Online Judge。
是最古老也是全世界最知名的Online Judge,題庫目前約有3000+題。
題目類型非常廣泛。絕大部分的題目難度偏易,適合初學者磨練程式設計功力。
有專業的審題團隊。另外也有許多工具網站、相關書籍。

ACM-ICPC Live Archive
與ACM協會合作,專門收集ACM-ICPC的比賽題目,
依照年份與賽區進行編目,可惜的是題庫尚未收集完整。
很久以前,ACM-ICPC Live Archive的題庫,
是跟UVa Online Judge的題庫捆在一起的,共用一套OJ。
後來在2003年的聖誕節,站方決定將ACM-ICPC Live Archive獨立出來成為一個網站。
雖然現在兩個網站各自運作,但實際上兩者都是UVa Online Judge的小組在維護的。

PKU JudgeOnline
中國北京大學的Online Judge,是中國規模最大的一個Online Judge,
題目類型偏向演算法競賽,可以找到比賽常見題型。
好處是可以在網路上輕鬆找到中文的解題資訊。

Timus Online Judge
俄國Ural大學的Online Judge,是俄國最大的Online Judge。
有比較進階的演算法題目,難度偏高。
有專業的審題團隊。

Sphere Online Judge
波蘭Sphere實驗室建立的Online Judge,是波蘭最大的Online Judge。
會員可自創題目,題目很有特色,但是品質良莠不齊。
支援多種程式語言。

Polish Olympiad in Informatics
波蘭用來訓練國際資訊奧林匹亞競賽選手的網頁。
收錄近年來IOI的題目、以及培訓營隊的題目。
題型幾乎都是演算法設計,而非演算法應用。
程度很高,不是平常人能夠接觸的領域。

台灣的 Online Judge

高中生程式解題系統 ZeroJudge
由高師大附中所開發的Online Judge,
是第一個使用繁體中文介面的系統,實乃台灣人之福。
請大家記得懷著感恩的心,謝謝系統設計者。

Temporary Infor Online Judge
建國中學資訊社的Online Judge。
有很多學生自行設計的創意題目。

NTU Online Judge
台灣大學的Online Judge。
目前只用於培訓校內的ACM-ICPC參賽選手,並未對校外人士開放。

UVa Online Judge 工具網站

Lucky貓的ACM園地,Lucky貓的 ACM 中譯題目 Mirror
這個站專門提供UVa Online Judge中譯題目。非常棒!非常棒!非常棒!
我在搜尋引擎輸入過上百次的Luckycat!

Ruby兔的ACM園地
這個站也是專門提供UVa Online Judge中譯題目。後繼有人矣!

UVa Online Judge: Electronic Board
UVa Online Judge的問題討論版。
由於主頁上沒有放連結,所以可能有人不知道。
發問時請遵守板規,
善用搜尋功能,找到問題的討論串,發問時採用回覆文章方式。
讓後人可以容易找到相關討論。

UVA toolkit
站長將他寫過的UVa Online Judge的題目整理成表,
每一題都貼心的寫下了解題提示,
也提供了執行檔,供大家自行測試自己的測試資料。
是個很好用的網站!

Felix Halim .Net,UVa Hunting
這個站製作了一些網頁小工具,
讓使用者可以查詢自己在UVa Online Judge的解題進度,
以及比對自己和別人的解題清單。相當好用!
此站站長和World of Seven的站長是兄弟關係。

World of Seven: Methods to Solve
站長熱愛程設解題,在新加坡大學當學生時,憑著熱情而創立了這個網站。
站長現在已經是新加坡大學的教授,而且有在教授程式解題的課程,
最近還出版了一本程式解題的教科書:Competitive Programming。
站長也將自己寫過的題目做了清楚的分類,
留下了簡短的提示,供後人參考。

Algorithmist
這個網站屬於wiki性質,
旨在收集各個OJ的題目分類、釋意、測試資料,
另外還有一些資料結構和演算法的教學文章。

UVa Online Judge 解題資訊

中山大學「高等程式設計與實作」課程
2003,2004,2006,2007,2008,2010,2011
2008集訓,2009集訓,2010集訓
歷年的課程主頁裡面,可以找到一些解題報告。

Waterloo Programming Contests
加拿大滑鐵盧大學所舉辦的線上比賽,題目於賽後都歸入UVa Online Judge的競賽題庫。
可以找到UVa Online Judge競賽題庫中許多題目的測試資料、解答程式碼。

Bal4u
一位日本人Bal4u的個人部落格。
過去曾有許多強大的演算法教學文章,以及UVa Online Judge一些難題的解法。
Bal4u曾在UVa Online Judge排名第三名。

UVa Online Judge 題目分類

Programming Challenges 的習題

歸類方式、難度高低都是十分詭異。不過這些題目相當有特色,值得一試。
New Comer

        ★ 100 The 3n + 1 problem
        ★ 10189 Minesweeper
        ★ 10137 The Trip
        ★ 706 LCD Display
        ★ 10267 Graphical Editor
      ★★ 10033 Interpreter
        ★ 10196 Check The Check
        ★ 10142 Australian Voting

Data Structure

        ★ 10038 Jolly Jumpers
      ★★ 10315 Poker Hands
      ★★ 10050 Hartals
      ★★   843 Crypt Kicker
        ★ 10205 Stack 'em Up
      ★★ 10044 Erdos Numbers
        ★ 10258 Contest Scoreboard
    ★★★ 10149 Yahtzee

String

        ★ 10082 WERTYU
      ★★ 10010 Where's Waldorf?
        ★ 10252 Common Permutation
      ★★ 850 Crypt Kicker II
        ★ 10188 Automated Judge Script
      ★★ 10132 File Fragmentation
    ★★★ 10150 Doublets
      ★★ 848 Fmt

Sorting

        ★ 10041 Vito's Family
      ★★   120 Stacks of Flapjacks
    ★★★ 10037 Bridge
        ★ 10191 Longest Nap
      ★★ 10026 Shoemaker's Problem
      ★★ 10138 CDVII
      ★★ 10152 ShellSort
        ★ 10194 Football (aka Soccer)

Arithmetic and Algerba

        ★ 10035 Primary Arithmetic
        ★ 10018 Reverse and Add
        ★   701 The Archeologists' Dilemma
      ★★ 10127 Ones
    ★★★   847 A Multiplication Game
        ★ 10105 Polynomial Coefficients
        ★ 10077 The Stern-Brocot Number System
  ★★★★ 10202 Pairsumonious Numbers

Combinations

        ★ 10183 How Many Fibs?
      ★★ 10213 How Many Pieces of Land ?
      ★★ 10198 Counting
      ★★ 10157 Expressions
      ★★ 10247 Complete Tree Labeling
      ★★ 10254 The Priest Mathematician
      ★★ 10049 Self-describing Sequence
      ★★   846 Steps

Number Theory

        ★ 10110 Light, More Light
      ★★ 10006 Carmichael Numbers
        ★ 10104 Euclid Problem
      ★★ 10139 Factovisors
      ★★ 10168 Summation of Four Primes
        ★ 10042 Smith Numbers
        ★ 10090 Marbles
      ★★ 10089 Repackaging

Backtracking

      ★★ 861 Little Bishops
    ★★★ 10181 15-Puzzle Problem
      ★★ 10128 Queue
      ★★ 10160 Servicing Stations
      ★★ 10032 Tug of War
      ★★ 10001 Garden of Eden
    ★★★ 704 Colour Hash
    ★★★ 10270 Bigger Square Please...

Graph Traversal

        ★ 10004 Bicoloring
      ★★ 10067 Playing with Wheels
    ★★★ 10099 The Tourist Guide
      ★★   705 Slash Maze
    ★★★ 10029 Edit Step Ladders
    ★★★ 10051 Tower of Cubes
    ★★★ 10187 From Dusk Till Dawn
    ★★★ 10276 Hanoi Tower Troubles Again!

Graph Algorithm

      ★★ 10034 Freckles
    ★★★ 10054 The Necklace
      ★★ 10278 Fire Station
    ★★★ 10039 Railroads
    ★★★ 10158 War
    ★★★ 10199 Tourist Guide
  ★★★★ 10249 The Grand Dinner
    ★★★ 10092 The Problem with the Problem Setter

Dynamic Programming

      ★★ 10131 Is Bigger Smarter?
    ★★★ 10069 Distinct Subsequences
    ★★★ 10154 Weights and Measures
    ★★★   116 Unidirectional TSP
      ★★ 10003 Cutting Sticks
    ★★★ 10261 Ferry Loading
    ★★★ 10271 Chopsticks
    ★★★ 10201 Adventures in Moving - Part IV

Grid

        ★ 10161 Ant on a Chessboard
    ★★★ 10047 The Monocycle
      ★★ 10159 Star
      ★★ 10182 Bee Maja
    ★★★   707 Robbery
      ★★ 10177 (2/3/4)-D Sqr/Rects/Cubes/Boxes?
      ★★ 10233 Dermuba Triangle
    ★★★ 10075 Airlines

Geometry

        ★ 10310 Dog and Gopher
      ★★ 10180 Rope Crisis in Ropeland!
      ★★ 10195 The Knights Of The Round Table
    ★★★ 10136 Chocolate Chip Cookies
      ★★ 10167 Birthday Cake
      ★★ 10215 The Largest/Smallest Box ...
    ★★★ 10209 Is This Integration ?
    ★★★ 10012 How Big Is It?

Computational Geometry

      ★★ 10135 Herding Frosh
      ★★ 10245 The Closest Pair Problem
    ★★★ 10043 Chainsaw Massacre
    ★★★ 10084 Hotter Colder
    ★★★ 10065 Useless Tile Packers
      ★★   849 Radar Tracking
    ★★★ 10088 Trees on My Island
  ★★★★ 10117 Nice Milk

USACO 論壇上有人提供的題單

-----------------------------------
Flood Fill:
-----------------------------------
352 - The Seasonal War
469 - Wetlands of Florida
572 - Oil Deposits
657 - The die is cast
705 - Slash Mazes
776 - Monkeys in a Regular Forest
782 - Contour Painting
784 - Maze Exploration
785 - Grid Colouring
830 - Shark
852 - Deciding victory in Go
10279 - Mine Sweeper
10336 - Rank the Languages
10592 - Freedom Fighter
10946 - You want what filled?
-----------------------------------
Max Flow / Max Bipartite Matching:
-----------------------------------
259 - Software Allocation
563 - Crimewave
663 - Sorting Slides
670 - The Dog Task
753 - a plug for unix
820 - Internet Bandwidth
10080 - Gopher II
10092 - The Problem with the Problem Setter
10122 - Mysterious Mountain
10249 - the grand dinner (Max Flow too slow for TLE)
10330 - Power Transmission
10380 - Shogi Tournament
10511 - Councilling
10746 - Crime Wave - The Sequel
10779 - Collectors Problem
10804 - Gopher Strategy
-----------------------------------
Games:
-----------------------------------
847 - Multiplication Game
10368 - Euclids Game
10404 - Bachet's Game
10578 - The Game of 31
-----------------------------------
Dynamic Programming:
-----------------------------------
108 - Maximum Sum
111 - History Grading
116 - Unidirectional TSP
147 - Dollars
164 - String Computer
231 - Testing the CATCHER
348 - Optimal Array Multiplication Sequence
357 - Let Me Count The Ways
442 - Matrix Chain Multiplication
481 - What Goes Up
497 - Strategic Defense Initiative
507 - Jill Rides Again
526 - String Distance and Edit Process
531 - Compromise
562 - Dividing Coins
674 - Coin Change
711 - Dividing Up
836 - Largest Submatrix
10003 - Cutting Sticks
10032 - Tug Of War
10051 - Tower of Cubes
10066 - The Twin Towers
10069 - Unidirectional TSP
10081 - Tight Words
10100 - Longest Match
10130 - SuperSale
10131 - Is Bigger Smarter?
10154 - Weights and Measures
10192 - Vacation
10201 - Advantures in Moving Part IV
10259 - Hippity Hopscotch
10261 - Ferry Loading
10280 - Old Wine into New Bottles
10304 - Optimal Binary Search Tree
10379 - Pit Stop Strategy
10400 - Game Show Math
10405 - Longest Common Subsequence
10465 - Homer Simpson
10482 - The Candyman Can
10529 - Dumb Bones
10549 - Russian Dolls
10558 - A Brief Gerrymander
10559 - Blocks
10593 - Kites
10599 - Robots (II)
10604 - Chemical Reaction
10617 - Again Palindrome
10635 - Prince and Princess
10645 - Menu
10664 - Luggage
10690 - Expression Again
10721 - Bar Codes
10723 - Cyborg Genes
10739 - String to Palindrome
10755 - Garbage Heap
10759 - Dice Throwing
10817 - Headmaster's Headache
10819 - Trouble of 13-Dots
10827 - Maximum Sum on a Torus
10860 - Many a Little Makes a Mickel
10874 - Segments
10898 - Combo Deal
10912 - Simple Minded Hashing
10913 - Walking on a Grid
-----------------------------------
Graphs:
-----------------------------------
117 - The Postal Worker Rings Once
125 - Numbering Paths
280 - vertex
709 - Formatting Text (the shortest path)
793 - Network Connections
10239 - The Book-shelver's Problem (the shortest path)
10265 - Toroidal Chess Queens' Problem (tree rounds ???)
10266 - Surveying (connected components)
10054 - euler problem
10178 - count the faces
10608 - Friends
10731 - Test
-----------------------------------
Connectivity:
-----------------------------------
459 - Graph Connectivity
10147 - Highways
10397 - Connect the Campus
-----------------------------------
Big Integer:
-----------------------------------
324 - Factorial Frequencies
424 - Integer Inquiry
495 - Fibonacci Freeze
623 - 500!
713 - Adding Reversed Numbers
10013 - Super long sums
10018 - Reverse and Add
10035 - Primary Arithmetic
10106 - Product
10220 - I Love Big Numbers !
10515 - Powers Et Al.
-----------------------------------
Counting:
-----------------------------------
357 - Let Me Count The Ways
369 - Combinations
10219 - Find the ways !
10338 - Mischievous Children
-----------------------------------
Josephus:
-----------------------------------
151 - Power Crisis
440 - Eeny Meeny Moo
-----------------------------------
Math:
-----------------------------------
106 - Fermat vs. Pythagoras
113 - Power of Cryptography
579 - ClockHands
834 - Continued Fractions
847 - A Multiplication Game
10071 - Back to High School Physics
10079 - Pizza Cutting
10161 - Ant on a Chessboard
10302 - Summation of Polynomials
10408 - Farey sequences
-----------------------------------
Matrix:
-----------------------------------
108 - Maximum Sum
348 - Optimal Array Multiplication Sequence
541 - Error Correction
836 - Largest Submatrix
10189 - Minesweeper
-----------------------------------
Number Conversion:
-----------------------------------
344 - Identifying Concurrent Events
446 - Kibbles ``n'' Bits ``n'' Bits ``n'' Bits
575 - Skew Binary
10469 - To Carry or not to Carry
-----------------------------------
Number Theory:
-----------------------------------
136 - Ugly Numbers
138 - Street Numbers
160 - Factors and Factorials
256 - Quirksome Squares
294 - Divisors
350 - Pseudo-Random Numbers
382 - Perfection
406 - Prime Cuts
408 - Uniform Generator
543 - Goldbach's Conjecture
686 - Goldbach's Conjecture (II)
10200 - Prime Time
-----------------------------------
Simulation:
-----------------------------------
10346 - Peter's Smoke
10409 - Die Game
-----------------------------------
Sorting & Searching:
-----------------------------------
299 - Train Swapping
331 - Mapping the Swaps
499 - What's The Frequency, Kenneth?
10008 - What's Cryptanalysis?
10107 - What is the Median?
10295 - Hay Points
10327 - Flip Sort
-----------------------------------
String:
-----------------------------------
272 - TEX Quotes
401 - Palindromes
444 - Encoder and Decoder
458 - The Decoder
483 - Word Scramble
490 - Rotating Sentences
492 - Pig-Latin
494 - Kindergarten Counting Game
576 - Haiku Review
739 - Lost in Space
10082 - WERTYU
10222 - Decode the Mad man
10260 - Soundex
10293 - Word Length and Frequency
10340 - Peter's Smoke
10361 - Peter's Smoke
10424 - Love Calculator
10508 - Word Morphing
-----------------------------------
Tree:
-----------------------------------
536 - Tree Recovery
10223 - How many nodes ?
10410 - Tree Reconstruction
-----------------------------------
Variable Range:
-----------------------------------
10055 - Hashmat the Brave Warrior
-----------------------------------
Greedy:
-----------------------------------
10020 - Minimal Coverage
10382 - Watering Grass
10440 - Ferry Loading (II)
10563 - Least Squares
10665 - Diatribe

不知道是誰整理的題單

http://webdocs.cs.ualberta.ca/~contest/club/class.txt
------------------------------------------------------------
Graph Theory:
------------------------------------------------------------
- Topological Sorting:
  00200 Rare Order  Find the correct ordering of an alphabet     
  10305 Ordering Tasks  Provide some ordering of tasks

- Trees
  00112 Tree Summing  Navigate through a LISP encoded binary tree
  00115 Climbing Trees  Figure out the relationships between people
  00122 Trees on the level Produce level-order traversals of binary trees
  00615 Is It A Tree?  Determine whether or not the graph is a tree
  10308 Roads in the North Find the longest distance (diameter) of a tree. 
 
- Eulerian Graphs
  00117 The Postal Worker... Minimize a cost tour for a postman
    (Simplified Chinese Postman problem)
- Cycles
  00125 Numbering Paths  Count number of paths in a directed graph
  00626 Ecosystem  Find/Print all cycles of size 3

- Polygon Intersection
  00137 Polygons  Find the XOR of two polygon areas

- Maximum Flow
  00563 Crimewave  Solve the escape problem

- Minimum Spanning Trees
  10307 Killing Aliens in Bor.. Find least cost way to assimilate all

------------------------------------------------------------
Dynamic Programming:
------------------------------------------------------------

- Memotization
  00101 The 3n + 1 Problem  Find the size of the longest sequence
  00371 Ackermann Functions  Find the size of the longest sequence
  00547 DDF    Output the longest Decimal-Digit Factor

- Longest Asc/Desc Subsequence
  00103 Stacking Boxes   Find the longest desc. subsequence in n-dims.
  00111 History Grading   Find marks for a chronologic ordering question

- Longest Common Subsequence  
  00531 Compromise   Find the LCS for two texts

- 1D Minimize/Maximize
  00222 Budget Travel   Minimize the cost of a road trip

- 2D Minimize/Maximize
  00104 Arbitrage   Find a successful arbitrage sequence
  00108 Maximum Sum   Find the sub-rectangle with largest sum
  00116 Unidirectional TSP  Find the minimal path through a 2D field
  00585 Triangles   Find the largest triangle in a trianglular field
  00590 Always on the run  Find the minimum cost for flying city to city
  00526 String Distance & Transform...  Find the string distance and path
  10285 Longest Run on a Snowboard Find the longest snowboarding path in a 2D field
  10306 E-coins    Find minimum number of 2D coins to get certain sum

- Change Making
  00147 Dollars    Count # of ways to make change

------------------------------------------------------------
Modelling/Simulation:
------------------------------------------------------------
- Object State Modelling
  00102 The Blocks Problem  Manipulation of blocks with robot arm
 
- Planar World Modelling
  00114 Simulation Wizardry  Simulate a idealized pinball machine
  00118 Mutant Flatworld Explorers Simulate robots moving on a plane
  00407 Gears on a Board  Simulate gears on a plane
  00411 Centipede Collisions  Simulate centipedes on a plane
  00824 Coast Tracker   Simulate coastal robots on a plane

- Geometric Structure Modelling
  00201 Squares    Count the number of squares in a grid
  00209 Triangular Vertices  Model triangular coordinates

- Record Keeping / Bookkeeping
  00119 Greedy Gift Givers  Keep track of everyone's net gain/loss
  00123 Searching Quickly  Keep track of keywords in titles of books
  00139 Telephone Tangles  Keep track of telephone bill
  00145 Gondwanaland Telecom  Keep track of telephone bill
  00405 Message Routing   Keep track of where routing goes
  00603 Parking Lot   Keep track of cars in a parking lot
  00645 File Mapping   Print out a file directory
 
- Josephus Rings
  00130 Roman Roulette   Find the survivor
  00133 The Dole Queue   Find the order of selected people
  00144 Student Grants   Find the order of students getting grants
  00151 Power Crisis   Find the step such that a certain region survives

- Card Games
  00127 "Accordian" Patience  Simulate Accordian Patience (Solitaire)
  00131 The Psychic Poker Player Determine the best Poker hand
  00451 Poker Solitaire   Evaluate some Poker hands
  00462 Bridge Hand Evaluator  Evaluate some Bridge hands and suggest a move
  00635 Clock Solitaire   Count winning Clock solitaire games

- Board Games
  00141 The Spot Game   Figure out who wins the Spot game
  00633 A Chess Knight   Figure out how many moves for a dynamic knight
  00647 Chutes and Ladders  Figure out who wins a game of Chutes and Ladders
  10284 Chessboard in FEN  Figure out number of unattacked squares
 
- Parsing:
  00134 Loglan-A logical Language Check to see if sentences are in the grammar
  00171 Car Trialling   Check to see if sentence is valid instruction
  00620 Cellular Structure  Identify the type of organism.
  00622 Grammar Evaluation  Evaluate/Parse a [+,*,(,)] math expression

- Calendar/Time Modelling
  00150 Double Time   Convert between two calendars
  00419 Matching Meetings  Find suitable meeting times for department 

- Sports Games
  00584 Bowling    Calculate a bowling game score

- Data Type Modelling
  00540 Team Queue   Implement a efficient TeamQueue (buddy system)

- Print/Font Formatting    
  00403 Postscript   Implement "fonts" with formatting
  00416 LED Test   Determine if there is a valid LED countdown
  00426 Fifth Bank of Swamp County Output the bank record sorted in 3 columns
  00433 Bank (Not Quite O.C.R)  Check LED version of bank number

- Text Manipulation
  00373 Romulan Spelling  Fix some spelling mistakes
  00444 Encoder and Decoder  Encode/Decode according to certain rules
  00464 Sentence/Phrase Generator Generate phrases according to grammar rules
  00625 Compression   Compress some source code
  00628 Passwords   Rule replacement
  00641 Do the Untwist   Untwist an encrypted string

- Assembler Modelling
  00448 OOPS!    Convert hexcode to assembly code

------------------------------------------------------------
Arithmetic:
------------------------------------------------------------
- Fractions
  00202 Repeating Decimals  Figure out length of repeat period of fraction
  00834 Continued Fractions  Convert fraction to a continued fraction

- Pythagorean Triples
  00106 Fermat vs. Pythagoras  Generating/Counting Pythagorean triples

- Additive/Multiplicative Series
  00107 The Cat in the Hat  Calculate the number of cats in the hat 
  00138 Street Numbers   Find special house numbers
  10302 Summation of Polynomials Find the sum of the first N cubes

- Exponentiation/Logarithms
  00113 Power of Cryptography  Find integer roots of large numbers
  00545 Heads    Find 2^-n = x.xxxE-y for large n

- Polynomials
  00126 The Errant Physicist  Multiply polynomials of x and y
  00586 Instant Complexity  Calculate the complexity of a program

- Long Division/Multiplication
  00128 Software CRC   Calculate the CRC value for a string of text(divide)
  00550 Multiplcation by Rotation Find shortest factor with rotamult-property
  00465 Overflow   Determine whether numbers overflow an int

- Combinatorics:
  00135 No Rectangles   Find a suitable block design
  00146 ID Codes   Find the next permutation
  00153 Permalex   Convert between indices and words sorted in lex. order
  00580 Critical Mass   Count number of binary strings with 3 consecuive 1's
  00527 The partition of a cake  Count the number of partitions made by cake cutting
  10294 Arif in Dhaka (First Love pt2)  Count the number of necklace/bracelets of size N with T colors
  10303 How Many Trees?   Count the number of binary trees (Catalan numbers)

- Primes/Factorization
  00136 Ugly Numbers   Find the 1500th ugly number factors(2,3,5)
  00583 Prime Factors   List the prime factorization of a number efficiently
  10311 Goldbach and Euler  Determine if a number is sum of 2 primes

- Probability
  00542 France '98   Figure out the probability that a team will win 
  10288 Coupons    Figure out probability that you will win
 
- Number Bases
  00619 Numerical Speaking  Convert between words and numeric index

- Partitioning
  00668 Parliament   Find maximum distinct partition product

------------------------------------------------------------
Direct:
------------------------------------------------------------
- Counting:
  00102 Ecological Bin Packing  Find minimum number of bottles to move
  00154 Recycling   Find station that minimizes items moving
  00278 Chess    Count number of non attacking pieces
  00413 Up and Down Sequences  Count the number of up and down runs
  00613 Numbers that Count  Find out if numbers are self-inventorying
  00637 Booklet Printing  Figure out which pages go where in a fold-over booklet
  00696 How Many Knights  Find max # of knights to place on n*m board
  10293 Word Length and Frequency Count length and freq of words
  10300 Ecological Premium  Count premiums for farmers
 

- Sorting:
  00110 Meta-Loopless Sorts  Produce Pascal programs that do sorting
  00120 Stacks of Flapjacks  Sort a stack of flapjacks using flips
  00514 Rails    Sort a train using a station
  00538 Balancing Bank Accounts  Figure out who owes who what 
  00612 DNA Sorting   Sort some DNA based on some trait
  00632 Compression (II)  Perform a Burrows Wheel Transform
 
- Recursion
  00155 All Squares   Count number of squares surrounding a point
  00432 Modern Art   Generate some modern triangular art

- Palindromes
  00401 Palindromes   Determine the type of the word

- String manipulation/comparision
  00644 Immediate Decodability  Determine if the code set is immediately decodable

------------------------------------------------------------
Geometry:
------------------------------------------------------------
- Z-Buffering
  00105 The Skyline Problem  Construct a skyline vector
  00142 Mouse Clicks   Determine which windows was clicked

- Convex Hulls
  00109 SCUD Busters   Determine regions with power after a war
  00132 Bumpy Objects   Find a stable position for shapes

- Circles   
  00121 Pipe Fitters   Calculate the most pipes that can fit
  00149 Forests    Determine viewable trees in an infinite forest
  10301 Rings and Glue   Determine number of intersecting circles

- Points in Polygons
  00143 Orchard Trees   Determine numbers of points in triangles
  00634 Polygon    Determine if a point is in a polygon

- Distance
  00152 Tree's a Crowd   Generate a histogram of tree distances
  10310 Dog and Gopher   Find out if the golpher can get to hole

- Art Gallery Problem 
  00588 Video Surveillance  Determine if a camera can see all walls

- Spheres/Globes
  00535 Globetrotter   Find distance between two points on earth

- Polar/Azimuth Coordinates
  00404 Radar Scopes   Figure out warnings for planes using radar

- Area of polygons
  00428 Swamp County Roofs  Calculate area of trapezoidal roof tiles

- Pure Geometry
  10283 The Kissing Circles  Determine areas associated with circles in circles
  10286 Trouble with a Pentagon  Find the length of largest square in a pentagon
  10287 Gifts in a Hexagon Box  Fit circles inside a regular hexagonal box

- Center of gravity
  10291 Cut the Legs   Cut a table so that it balances

- Line intersection
  00834 Water Falls   Figure out where water will land

----------------------------------------------------------------------
Searching:
----------------------------------------------------------------------
- Constraint Satisfaction
  00124 Following Orders  Find all consistent orderings
  00129 Krypton Factor   Find special "hard" sequences
 
- Brute Force Searching (no pruning)
  00140 Bandwidth   Check all 8! sequences
  00418 Molecules   Find the largest molecule that can be made
  00565 Pizza Anyone?   Satisfy all topping requests if possible
  00616 Coconuts, Revisited  Find the maximum number of people on island.
  00629 Test    Find all "non different" sets
  00638 Finding Rectangles  Find all rectangles in alphabetical order

- Search with pruning
  00624 CD    Find set of songs which fit best on tape
  10309 Turn the Light Off  Find min. # of pushes to turn off lights

- Anagrams
  00148 Anagram Checker   Find possible anagram sentences from dictionary
  00630 Anagrams(II)   Find possible anagrams for words 
  00642 Word Amalgamation  Find possible anagrams for words

- Word Searches
  00581 Word Search Wonder  Find words in a grid
  00409 Excuses, Excuses!  Find key "excuses" in a sentences
  00425 Enigmatic Encryption  Find the password from a text
  00604 The Boggle Game   Find matching words in 2 Boggle boards

- Greedy Algorithms
  00410 Balance Station   Minimize Imbalance for a centrifuge

USACO

USACO Training Program Gateway

http://train.usaco.org
 USACO = USA Computing Olympiad 美國資訊奧林匹克。這個網頁是美國用來訓練國際資訊奧林匹亞競賽選手的網頁,同時亦開放給大眾使用。
這個網站非常有趣!首先註冊一個帳號,進入網站後,會看到一個任務表,完成前面的任務,才會開啟後面的任務──循序漸進,學習更精深的課題。有些任務是只是一些文字資料,講述方法或概念,只要讀完,就算是解決了任務。讀完資料後,接下來的任務,通常都是一連串程式設計的題目,正好學以致用。
有些困難的題目,都會貼心的附帶提示,讓使用者不至於無所適從。每當解決了一個問題之後,便可以觀看該題的解析、解法、解答,讓自己有檢討和進步的空間。這個網站可說是一個非常完整的教學網站!
USACO Contest Gateway

http://ace.delos.com/contestgate
USACO的活動時間是每年十月到隔年三月。十月好像是新生入學,而四月就是資訊奧林匹克競賽的時間(一個全世界天才高中生參與的資訊競賽)。USACO過了三月之後就會沉寂,一直到十月才又有新一季的活動。
每一季開始時,USACO會舉辦資格賽,以鑑定新人的實力。接下來每個月都會舉辦月賽,參訓選手依照實力,獲邀參加對應等級的賽事。月賽的用意,一方面當作是成效驗收,一方面也是在激勵選手邁向更高的等級。USACO也不藏私,所有月賽都對外界開放,也因此USACO也就成了全世界天才高中生相互較勁與成長的場所,而一般民眾也有了動動腦的時間。
比賽說明

USACO的比賽區分為金銀銅三種等級。每個人預設都是銅等級,隨時都可以參加銅等級的比賽。通過金、銀等級的資格賽,鑑定為金、銀等級的人,每個月才能獲邀參加金、銀等級的比賽。
如果沒有參加資格賽,又想要晉升等級,就必須在賽事中有傑出表現。每次月賽結束後,USACO會主動寄送升級的邀請函,給表現優異的選手。
金等級滿困難的,水準相當於ACM-ICPC區賽的中上題目。銀等級是基礎演算法的應用。銅等級是只要懂得寫程式就行了。
每次月賽會提供48小時的緩衝期,期間內隨時都可以參加比賽,開啟題目後,才開始計時。比賽時間是兩小時三題,作題時間相當充裕。每一題都有約十組的測試資料,途中可以不斷上傳解答程式碼進行測試,以最後一次上傳的程式碼為正式解答。評分方式採部分給分,每答對一組測試資料都會得到分數。
賽後兩天左右,會公佈成績,提供題目講評與解答。講評與解答都是開放給所有的人,是一個非常好的學習資源。想要提升自我實力的人,一定要多看金、銀等級的講評。
最後是小叮嚀。USACO的題目是有版權的,請不要隨便在公眾網路上張貼題目、張貼解答程式碼,這會讓管理員很頭痛。USACO也嚴禁比賽作弊,被抓到作弊者,將會永久停權,並且成為國際之恥。曾有國家因為不遵守規矩而被禁賽,請各位三思。
TopCoder

TopCoder

http://www.topcoder.com/
這個網站是現下最流行的程式相關網站。網站功能眾多,其中有一個部分是競賽,競賽的其中一個部分是演算法競賽。在這裡舉行的演算法競賽十分多,平均每個禮拜就有一次比賽,Google Code Jam剛開始也是在這裡舉行的。在這裡舉行的演算法競賽也有很多類型,最常舉辦的比賽類型就是Single Round Match,簡稱SRM,至今已舉辦過450+場,是最簡易的競賽類型,其他還有馬拉松競賽、多回合競賽等等。某些大型比賽是有獎金的,例行賽的出題者也有獎金,因而吸引很多網民在TopCoder出沒。
比賽說明

http://www.topcoder.com/wiki/display/tc/Algorithm
大致上分為三個階段:第一個階段是程式解題,自己寫好解答程式碼,自己測試後沒問題就可以上傳,等候批改;第二個階段是找別人程式碼的漏洞,自己擬好測試資料去測別人寫的程式碼,測出漏洞後自己可得到分數、別人會降低分數,但是實施測試卻測不出漏洞,自己就會被扣分;第三個階段是由系統幫大家批改程式碼,並且統計分數。
通常比賽題目會有兩套,分別叫做DIV1和DIV2,積分比較高的使用者會以DIV1進行比賽,積分比較低的使用者則以DIV2進行比賽,想當然 DIV1的題目比DIV2的題目難得多了。兩套題目分別都是三題,但是三題的難度是不同的,有不同的給分,解出難題則會得到比較高的分數。比賽結束後會依該場比賽的答題情況以及排名名次,重新計算個人的積分。大家平時在練習時,可以直接做DIV1分數最高的題目,沒必要做分數低的題目,如此學習效果較好。
演算法競賽的部分,可以從TopCoder網站左邊的選單中找到,路徑是Competition下面的Algorithm。第一個選項Launch Arena是打開TopCoder用於演算法線上競賽的一套軟體,這套軟體叫做Arena,是一支Java程式。Arena跑起來之後,以個人的帳號密碼登入,就會出現一個介面,在上面可以直接參加比賽,也可以瀏覽過去的比賽題庫,也可以進行解題練習,就跟一般的Online Judge提供的功能差不多。另外Arena還有聊天系統,還有一些個人環境設定等等的功能。
Arena還有一套寫程式的介面,使用者也可以直接在Arena上面編寫程式、執行程式、設計測試資料並測試程式。比較麻煩的一點是,解答程式碼必須包裝成class的形式,程式進入點的member function需按照題目規定來撰寫,系統才有辦法幫你批改和測試。也因此有很多人幫Arena寫了外掛,自動幫你處理這些繁瑣的問題,讓這個寫程式的介面更好用。
第二個選項Statistics,有很多關於比賽的資訊,第一個選項Match Archive會列出亙古迄今舉行過的演算法競賽,另外有一個Promblem Arcive則是列出亙古迄今的所有比賽題目。另外還有一個重要的選項是Match Editorial,可以觀看賽後講評,大部分的比賽都會提供詳細的解法以及解答程式碼,是個很好的學習教材。
這裡僅做些拋磚引玉,詳細情形大家可以自行去了解一下。
Project Euler

Project Euler

http://projecteuler.net/
這個網站專門提供能用程式計算出答案的數學問題。每個問題都有固定一個答案,自己撰寫程式計算出解答後,只要在題目下方的表單中將答案輸入進去、上傳答案,就可以看到解題結果了。
回到首頁
Online Judge System
UVa Online Judge工具網站
UVa Online Judge解題資訊
UVa Online Judge題目分類
USACO
TopCoder
Project Euler