fork download
  1. class Solution:
  2. def canIWin(self, maxChoosableInteger: int, desiredTotal: int) -> bool:
  3. if desiredTotal==0:
  4. return True
  5. dp=[False for _ in range(1<<maxChoosableInteger)]
  6.  
  7. for i in range((1<<maxChoosableInteger)-1,-1,-1):
  8. s=0
  9. for j in range(maxChoosableInteger):
  10. if ((i>>j)&1)==1:
  11. s+=(j+1)
  12. if s>=desiredTotal:
  13. dp[i]=False
  14. continue
  15. for j in range(maxChoosableInteger):
  16. if ((i>>j)&1)==0 and dp[i+(1<<j)]==False:
  17. dp[i]=True
  18.  
  19. return dp[0]
  20.  
  21. # your code goes here
Success #stdin #stdout 0.02s 9132KB
stdin
Standard input is empty
stdout
Standard output is empty