看板 ott
作者 ott (寶貝)
標題 Online Judge System
時間 2012年03月21日 Wed. AM 10:18:51

   
 
http://www.csie.ntnu.edu.tw/~u91029/oj.html

源起


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

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

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



UVa Online Judge解題資訊




中山大學「高等程式設計與實作」課程
2003200420062007200820102011
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/


這個網站專門提供能用程式計算出答案的數學問題。每個問題都有固定一個答案,自己撰寫程式計算出解答後,只要在題目下方的表單中將答案輸入進去、上傳答案,就可以看到解題結果了。




 
 

--
※ 編輯: ott 時間: 2012-03-21 10:31:30
※ 看板: ott 文章推薦值: 0 目前人氣: 0 累積人氣: 607 
分享網址: 複製 已複製
guest
x)推文 r)回覆 e)編輯 d)刪除 M)收藏 ^x)轉錄 同主題: =)首篇 [)上篇 ])下篇