Pythonでカバーできるブロックの数を見つけるためのプログラム
パスにn個のブロックがあり、作業者がブロックに色付きのタイルを置いているとします。作業者は、パス内のブロック番号が4または/および2で割り切れるが、42では割り切れない場合に、色付きのタイルを配置するようにブロックを配置しています。彼がk個の色付きタイルから始めた場合、彼がカバーできるブロックの数を調べる必要があります。
したがって、入力がk =16の場合、出力は32になります。
これを解決するには、次の手順に従います-
- MOD =10 ^ 9 + 7
- 商:=(k / 20)のフロア値
- 剰余:=k mod 20
- 余りが0と同じ場合、
- return((42 * quotient-2)mod MOD)
- それ以外の場合、
- return((42*商+2 *剰余)mod MOD)
例
理解を深めるために、次の実装を見てみましょう-
def solve(k): MOD = 10**9 + 7 quotient = k // 20 remainder = k % 20 if remainder == 0: return ((42 * quotient - 2) % MOD) else: return ((42 * quotient + 2 * remainder) % MOD) print(solve(16))
入力
16
出力
32
-
Pythonでメッセージをデコードできるいくつかの方法を見つけるためのプログラム
a =1、b =2、...z =26のようなマッピングがあり、エンコードされたメッセージメッセージ文字列があるとすると、デコードできる方法の数を数える必要があります。 したがって、入力がmessage =222の場合、出力は3になります。これは、bbb、bv、vbの3つの方法でデコードできるためです。 これを解決するには、次の手順に従います- memo:=メッセージサイズ+1と同じサイズの0のリスト memo [0]:=1 memo [1]:=1(message [0]が「0」と同じでない場合)それ以外の場合は0 2からメッセージのサイズまでの範囲のiの場合、実
-
Pythonで収集できるコインの最大数を見つけるためのプログラム
各セルにいくつかのコインが格納されている2Dマトリックスがあるとします。 [0,0]から始めて、右または下にしか移動できない場合、右下隅で収集できるコインの最大数を見つける必要があります。 したがって、入力が次のような場合 1 4 2 2 0 0 0 5 [1、4、2、2、5] のパスをたどると、出力は14になります。 これを解決するために、次の手順に従います- 範囲1からAの行数までのrについては、次のようにします A [r、0]:=A [r、0] + A [r-1、0] 範囲1からAの列数までのcにつ