add a column to the cart to store the category
then create a shipping rule using the trigger "number of columns with a specific column value"
If the total number of items where "category" has a value of "1" is ">" a value of "0"
OR
If the total number of items where "category" has a value of "2" is ">" a value of "0"
etc....
and use a flat rate change of 10.