EPFL's ICPC ACM
Advices
français | english
Navigation
Home
Sitemap
This wiki
This page
Advices
  • Make a heterogenous team - people that know Java (has Bigint and JFC), and C; you should be able to cover to a very great degree, the possible problems
  • Start with easiest implementable problem
  • Precompute data
  • Use the multi-tasking of the machine - run another problem in the background while coding a problem
  • coNP intersected NP is mostly P
  • Robust design is important in the sense that all cases have to be thought of
  • Good OO design doesn't matter. Don't try to implement complicated design patterns
  • Remember that time is very precious
  • Imperative programming should suffice

Reguli de aur pentru mine:
  • de verificat sample input-urile cu output-urile
  • atentie la introducerea input-urilor!!!!
  • sa acopar toate raspunsurile cu cazuri de test
  • avut grija la limite i8,i16,u8,u16
  • sa citesc corect enuntul  
  • ma gandesc la limite timp --> ce complexitate ar trebui sa aiba programul (nu merita acceptat mai mult de 5 sec pe test)
  • ma gandesc la limite spatiu
  • sa am f.f.f clar in minte cum anume sa rezolv problema, preferabil sa am o schita serioasa a ei pe hartie
  • in timp ce gandesc algoritmul scot cazuri speciale de test care pot sa-mi buseasca programul
  • de testat algoritmul pe cateva seturi de date, pe hartie
  • teste mai multe decat cele scrise pe hartie - sa aleg vreo 2 teste medii si vreo 2 critice!!!!!!!
  • nu cumva am facut niste modificari de debug si submitez problema cu modificarile respective? Mare atentie inainte de a submita problema
  • nu sta prea mult sa cauti greseala la o problema. E posibil sa fie o problema usoara nefacuta.


Algos

    * Exact, normally polynomial solutions
    * Sorting, recursion, Greedy, dynamic programming
    * Min-max search, A*-search


Types of problems

    * Graph algorithms
          o Minimum Spanning Tree (MST)
          o Dijkstra's shortest path
          o Max flow, bipartite matching
    * combinatorial
          o Longest increasing subsequence
          o Binpacking
          o 2SAT
    * Use mathematical properties
          o Linear algebra
          o Viete's relations for polinomials
          o Big numbers - more than 32 bit ints
          o Inversions in a permutation (merge-sort like)
          o kth order statistic
    * Computational Geometry
          o Convex hull
          o Line intersection
          o Closest points in 2D. Also Voronoi diagram
          o Polygon intersection
          o Pyramid reaches equilibrium - mass center computation, 3D rotations
    * Parsing mathematical expression and evaluating them
    * Data structures - Hashing, Binary heaps, trees
    * Non-standard
          o Optimize an iteration inside a function


About contest:

    * Input data might be non-trivial in some cases
    * Solutions are tested extensively by the jury
    * Errors:
          o Wrong output
          o Presentation error
          o Time limit exceeded à efficient algorithms
Search
Share