1. Problem Statement
As part of dissertation, the University professor has decided to ask the students about their preferences of topic before assigning the problem statements to each one of them. The topics available are:
There are 11 students working with the Professor. Each student can have more than 1 topic which he/she prefers. You job is to help the professor calculate the number of unique allocation of topics to the students such that everybody gets exactly one topic of their liking and no two students get the same subject allocated.
1. Formulate an efficient algorithm using dynamic programming to perform the above task.
2. Analyse the time complexity of your algorithm.
3. Implement the above problem statement using Python.
• Do not use inbuilt data structures available in Python. The purpose of these assignments is for you to lean how these data structures and algorithms work.
• It is compulsory to use Python for implementation.
• Ensure that all data structure insert and delete operations throw appropriate messages when their capacity is empty or full.
• For the purposes of testing, you may implement some functions to print the data structures or other test data. But all such functions must be commented before submission.
• Make sure that your read, understand, and follow all the instructions
• Ensure that the input and output file guidelines are adhered to. Deviations from the mentioned formats will not be entertained.
• Run time analysis is provided in asymptotic notations and not timestamp based runtimes
in sec or milliseconds.