algorithm/problem solving
acmicpc.net 10827, 11060(DP), 1699(DP)
qkqhxla1
2016. 10. 8. 14:33
https://www.acmicpc.net/problem/10827
a^b를 어떻게 정확하게 구현할수 있을까? 소숫점을 없애고 큰 수 상태로 곱셈을 한다.
그 이후에 문자열로 만들어서 소수점 처리를 해주면 된다.
# -*- encoding: cp949 -*- a,b=raw_input().split() p = len(a[a.index('.')+1:]) a = a.replace('.','') result = str(int(a)**int(b)) p=str((10**p)**int(b)) index = len(result)-len(p)+1 if index >=0: print result[:index]+'.'+result[index:] else: print '0.'+'0'*(-index)+result
https://www.acmicpc.net/problem/11060
# -*- encoding: cp949 -*- n=input() ju=map(int,raw_input().split()) dp=[9999999999 for i in xrange(1500)] dp[0] = 0 for i in xrange(n): if ju[i]!=0: for j in xrange(i+1,i+1+ju[i]): dp[j] = min(dp[i]+1, dp[j]) #print dp[:n] print dp[n-1] if dp[n-1]!= 9999999999 else -1
https://www.acmicpc.net/problem/1699
# -*- encoding: cp949 -*- from math import sqrt n=input() dp=[i for i in xrange(100001)] for i in xrange(2,n+1): for j in xrange(2,i): if j*j>i:break dp[i] = min(dp[i], 1+dp[i-j*j]) #print dp[:n+4] print dp[n]