BOJ 1182部分数列の和
3219 ワード
https://www.acmicpc.net/problem/1182
時間1秒、メモリ128 MB
input : N S(1 ≤ N ≤ 20, |S| ≤ 1,000,000) 整数(整数の節値は100000を超えない). output :
出力 Sの部分数列数 条件:プログラムは、1つの整数列のすべての要素の整数がSのときの整数を求めるために使用される.
2つのポインタを利用したり、組み合わせを利用したりする方法があるようです.
私はただ組み合わせるだけで、Sならans値を一つ一つ増やします.
正数のすべての値を加えて、コストを表示します.逆も同様です.
でもこれは完全に探求しているので、ハハハは大丈夫でしょう...
時間1秒、メモリ128 MB
input :
出力
2つのポインタを利用したり、組み合わせを利用したりする方法があるようです.
私はただ組み合わせるだけで、Sならans値を一つ一つ増やします.
import sys
from itertools import combinations
n, s = map(int, sys.stdin.readline().split())
data = list(map(int, sys.stdin.readline().split()))
ans = 0
for i in range(1, n + 1):
for item in combinations(data, i):
if sum(item) == s:
ans += 1
print(ans)
ダブルポインタを使う場合は、正数リストと負数リストに分けます.正数のすべての値を加えて、コストを表示します.逆も同様です.
でもこれは完全に探求しているので、ハハハは大丈夫でしょう...
Reference
この問題について(BOJ 1182部分数列の和), 我々は、より多くの情報をここで見つけました https://velog.io/@jsin2475/BOJ-1182-부분수열의-합テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol