Adding words to DFA, maintaining minimality
For number 2, I think you would just check if the DFA ever enters an accept state, instead of just checking if it ends in an accept state.  So just run the algorithm as normal, but halt and accept as soon as the automation transitions to an accept state, instead of waiting until the end of the input.  (The number of times the automation enters an accept state is the number of substrings of the language contained in the input string) 

Not sure about number 1 though.  I am not sure what operations (if any) minimal DFAs are closed under, but I think the number of operations required by a slightly modified version of Hopcraft's algorithm would be proportional to the size of a word you add via union.