How many votes does a state get?
Clean, 263 244 222 bytes

v n s=sortBy(\(a,b)(c,d).b&gt;d)([(t,3.0)\\t&lt;-s|fst t=="DC"]++w(n-3*(length s))[(t,1.0)\\t&lt;-s|fst t&lt;&gt;"DC"])
w 0s=w 0 s=[(p,r+2.0)\\(p,r)&lt;-s]
w n s#s=sortBy(\a b.A a&gt;A b)s
#(p,r)=hd s
=w(n-1)[(p,r+1.0):tl s]
A((_,p),r)=p/sqrt(r*r+r)


Call like

Start = v 538 [("DC", 1000000.0), ("RH", 1.0)]


Ungolfed version, full program (census.icl):

module census

import StdEnv

Start = votes 538 [("DC", 1000000.0), ("RH", 1.0)]

votes n states
# dc = filter (((==)"DC")o fst) states
= sortBy (\(a,b)(c,d).b&gt;d) ([(t,3.0) \\ t &lt;- dc] ++ votes` (n-3*length states) [(t,1.0)\\t&lt;-removeMembers states dc])
where
    votes` 0 states = map (\(p,r).(p,r+2.0)) states
    votes` n states
    # states = sortBy (\a b.A a &gt; A b) states
    # (p,r) = hd states
    = votes` (n-1) [(p,r+1.0):tl states]

    A ((_,p),r) = p / sqrt(r*r+r)