2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

PythonでABC159を解きたかった

Last updated at Posted at 2020-03-22

はじめに

今回は問題が簡単だったのでA~Cは解けましたが、Dまで解けるべきでした。

A問題

問題

考えたこと
偶数を作るには、偶数+偶数、奇数+奇数しかないのでNとMのそれぞれで$_nC _r$、$_mC _r$しています。コンビネーションの計算は自分で実装してもいいですが、scipyにあるのでそれを使いました。

from scipy.misc import comb
n, m = map(int,input().split())

ans = comb(n,2,exact=True) + comb(m,2,exact=True) #exact=Trueで整数値が返される
print(ans)

B問題

問題

考えたこと
回文の問題が苦手でA解いた後に放置していました。Sが回文であるのなら、s.reverse()==sになることを利用して解きました。強い回文の条件はsをスライスして、上と同じことをしました。n

s = list(str(input()))

checker = 0
n = len(s)
new_s = list(reversed(s))
if s == new_s:
    checker += 1


split_s = s[0:(n-1)//2]
new_s = list(reversed(split_s))
if new_s == split_s:
    checker += 1


split_s = s[(n+2)//2:n]
new_s = list(reversed(split_s))
if new_s == split_s:
    checker += 1
if checker == 3:
    print('Yes')
else:
    print('No')

C問題

問題

考えたこと
体積が最大になるのは、立方体になるときなので$(L/3)^3$で終わり。精度が怖かったけどなにもしなくても通った。

l = int(input())
print((l/3)**3)

D問題

問題
1WA、4TLE

考えたこと
解けなかった
for文で$A_i$を抜いたAでコンビネーションを計算しようとしたけど、TLEが出て死んだ。

from scipy.misc import comb

n = int(input())
a = list(map(int,input().split()))
a_s = set(a)
for i in range(n):
    l = a[i]
    a[i] = 'X'
    ans = 0
    for j in a_s:
        ans += comb(a.count(j),2,exact=True)
    print(ans)
    a[i] = l

まとめ

勉強不足なのとBを解くことをあきらめてしまったことが敗因。
おやすみなさい。

2
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?