I grew up in PR.China, and was quite disappointing with the pre-university education in mathematics. I am very happy to see one educator like you posting such a question here.
Combinatorics, graph theory and number theory, in my opinion, are proper fields you can choose materials from. By choosing some topics relating to "big theorems" such as Fermat's last theorem (of course in relatively naive ways) can surly attract young students.
I think this could be done topic by topic, instead of stucking in only one small field. I believe one major problem in mathematical education in China is that there are too many restrictions on different branches. There are too many questions such as "what field does this problem belongs to?"
A book to recommend is "proofs from the book" written by Martin Aigner and Günter M. Ziegler (with illustrations by Karl H. Hofmann). Although this is wriiten as a graduate level book. One can find materials suiatble for high school students. More importanly, it can greatly enhance the students' taste in modern mathematics.
Let me try to answer this.
I think that one of the most important things you have to teach your students is the intuition behind problem-solving. The art of problem-solving, in my opinion, consists of writing down what you do/don't know, breaking down the problem in smaller, digestible pieces, and then trying to solve a simpler version of the problem first before solving the original problem. Throughout my experiences, some of the best problem solvers I've met are people who can articulate well what they do and don't know, and seek help on things that they don't know.
Writing down what you don't know is, in my opinion, a key trait commonly found among good problem solvers. Going back to the example, if I am to teacher, I would first ask them to do a think-aloud exercise. First, I would tell them to re-read the question and ask themselves what terminologies they do or don't understand. This can yield several insights for you, such as are most of the students struggling trying to understand what a permutation is? Are students having trouble understanding the term "exactly one..." in terms of probability? Or are students having trouble translating words in the problem into mathematical terms? Also, this can help you teach better by preventing the "theater effect", where I define it as "I've attended a great lecture, I felt like I understand what the teacher is saying, but when I solve a conceptual problem, I can't do it." Writing down what you don't know can be beneficial to both the students and the teachers because it helps identify gaps in students' conceptual understandings and how teachers can improve their teaching methods.
Once you've identified the problems that students encounter, ask the students to write down what they do know. Writing down what they do know, in my opinion, is useful because then you have a way to measure how much they understand about the background knowledge needed to solve the problem. If the students are completely oblivious about probabilities and combinatorics, then you need to review what they are. On the other hand, if the students can recite the definitions of permutations and combinatorics but don't understand how to translate them into operationalizable knowledge, then it's a mapping problem that you are dealing with.
Finally, instead of telling them that they have to solve the original problem, try to teach them how to reduce this problem to a similar problem that they've solved before. Did they solve a problem where instead of having 4 defective computers, all of the computers were defective? Teaching them problem reduction can help students understand the connections between problems they've solved before to new problems that they've never seen before.
To summarize, I think that you should conduct a think-aloud exercise where they write down what they do/don't know, and teach them how to reduce an unfamiliar problem to something that they are familiar with through recalling past exercises.
Best Answer
In my personal experience(Meritorious both years I participated), one of the more obvious but important aspects is overlooked by many teams:
Delegate.
Our team began both competitions by selecting a "Coder, Writer, and Researcher". This should play off your strengths, but essentially, the code was substantial enough that our coder did only that. The Researcher spent the first half of the competition finding out what had been done and communicating with the Writer about the introduction and direction of the report. The writer spent the first half of the competition helping write the algorithm with the Coder, and working out the mathematical models to be used. Also the Writer attempted to synthesize the work of the Researcher into the start of the report. The second half of the project was a bit more hectic, the researcher obtained as much information as possible that might be available and useful. This was particularly important for important real world data into our models. The writer spend the second half... writing. Literally just writing non-stop.
This worked fairly well for us. I also recommend spending the first 1-3 hours letting the members think individually about the problem, then spending about 30-60 minutes explaining to one another their attack. Sometimes people aren't forthcoming with really great ideas.
Another recommendation is SLEEP! The first year we hardly slept at all for the entire competition. We drank insane amounts of caffeine and worked through the weekend. The second competition, we slept about 6 hours each night. We got the same ranking both times, but we did better the second year. Looking back, the quality of the writing was better. The code had less bugs, and we managed to produce more mathematics. Don't underestimate the power of getting a good nights rest.
Another general reference is consider a spherical cow which is a fairly standard reference. It is fun to read, and somewhat enlightening.
Perhaps I will think of more later, but for now this is all.