I'm currently in the process of writing a contest for my school (not public). Since I don't have a lot of experience with writing problems, I wanted to see if problem setters or others with writing experience have any advice or procedures they like to follow when organizing contests. Do you think to yourself "I want to write a DP problem here" and work backwards or do you first brainstorm a scenario and work from there? Let me know in the comments, I'm curious.
Note: I don't need help with using polygon, writing testers, or anything like that. I just want to spark discussion about coming up with creative ideas for the problems themselves. I think it will be interesting to see if people take different approaches.
You might be interested by these blogs: part 1 / part 2
Note that the first part contains links to other interesting blogs.
Ah I was looking for something like this... Thanks a bunch!
I generally try to think of some interesting process or condition, and come up with different problem ideas involving it. Some ideas are too obvious, so I mutate it to make it harder. Some ideas are too hard and I can't figure it out, so I mutate it to make it easier.
I think the more willing you are to recognize some ideas you have are bad and not get too attached to one thing, the better.
I also recognize flaws in previous problems I wrote, and try to learn from it and move on.
I find my favorite problems usually arise out of a joke. I come up with something that I find funny, and then I use that as inspiration for some problem. Some common ideas for jokes that I have used are:
Idioms like "in a jam", "special snowflake", or "cutting corners", but interpreted literally
Backronyms for the name of the contest is is written for (Huge Super Perfect Track for a High School Programming Contest, for instance)
Some common data structure / codeforces user / algorithm name made into a pun like the "Ben Queue" or the "Grim Treaper"
A series of puns neatly arranged into the flavortext of a mostly otherwise easy problem, like in the problem Funny Pairs.
Here is a list of many of the problems I referenced there, btw.