Discuss Scratch

  • Discussion Forums
  • » 日本語
  • » Scratchで競技プログラミング!(初めての人は最初の投稿をお読みください) [RSS Feed]
00giri
Scratcher
1000+ posts

Scratchで競技プログラミング!(初めての人は最初の投稿をお読みください)

>> #278
怪しいカジノに解答します。
hirayuu1414
Scratcher
500+ posts

Scratchで競技プログラミング!(初めての人は最初の投稿をお読みください)

正解です。
akinarin
Scratcher
500+ posts

Scratchで競技プログラミング!(初めての人は最初の投稿をお読みください)

>> #280
@00giri さん、FAです!おめでとうございます!
akinarin
Scratcher
500+ posts

Scratchで競技プログラミング!(初めての人は最初の投稿をお読みください)

#279【n進循環小数】
解答例です。

教科書に載っているのとは別の方法を使っています。

10進数で 0.999… = 1
2進数で 0.1111… = 2
n進数でn-1を表す文字αをつかって 0.αααα… = 1
となる原理を使ってます。
Magentor
Scratcher
2 posts

Scratchで競技プログラミング!(初めての人は最初の投稿をお読みください)

mex sum minmax 実行時間制限: 10秒
非負整数Q,Nが与えられます。
f(x_1,x_2…x_n)を、xに含まれない最小の正整数とします。
Q=1のとき(1,2,3,4,5…N)の順列におけるスコアの最小値を、
Q=2のとき(1,2,3,4,5…N)の順列におけるスコアの最大値を求めてください。
ただし、長さnの数列aにおけるスコアを、lを1以上n以下の整数まで、rをl以上n以下の整数までの範囲で動かしたときの f(a_l,a_(l+1)…,a_r) の和と定義します。
制約
  • 入力はすべて整数である。
  • 0 < N <10^9
  • Easy:Q=1 Hard:Q=1または2
入力
入力は以下の形式で与えられる。
Q N
出力
答えを一行に出力せよ。
結果例
入力例1
1 2
出力例1
6
数列{1,2}の並び替えとしては、{1,2}と{2,1}があります。それぞれのスコアを計算すると、
{1,2}=f(1)+f(2)+f(1,2)=2+1+3=6
{2,1}=f(1)+f(2)+f(2,1)=2+1+3=6
となり、最小値も最大値も6となります。
入力例2
2 4
出力例2
23
入力例3
2 314
出力例3
2666488

memo:minの場合はとあるコンテストの没問題で、灰diffを想定していました 

Last edited by Magentor (April 4, 2023 13:00:24)

sakura_neko
Scratcher
83 posts

Scratchで競技プログラミング!(初めての人は最初の投稿をお読みください)

#285解答します。
Poteto143
Scratcher
1000+ posts

Scratchで競技プログラミング!(初めての人は最初の投稿をお読みください)

トピ主です。
実はこのトピックを作成したときからずっと、「かなり前の問題に回答されると作問者がジャッジできない」という問題が起きることを懸念していたりします。
少し前までは問題数もあまりなかったので特に対策は必要ないと踏んでいたのですが、ここ最近(おかげさまで)かなり活発に活動がされているのでそろそろ何か考えないとなぁと思った次第です。
僕自身の考えとしては「想定解が既に出された回答はそれを見て自分でジャッジする」という決まりを足そうと思っていますが、これ以外にいい案がある方は教えていただきたいです。1週間ほど何もなければそのまま適用しようと思います。
Poteto143
Scratcher
1000+ posts

Scratchで競技プログラミング!(初めての人は最初の投稿をお読みください)

↑に何も意見がなければ明日追加します。
massa-g
Scratcher
100+ posts

Scratchで競技プログラミング!(初めての人は最初の投稿をお読みください)

投稿ミス

Last edited by massa-g (April 11, 2023 18:16:53)

Magentor
Scratcher
2 posts

Scratchで競技プログラミング!(初めての人は最初の投稿をお読みください)

>> #286 Easy,Hard FAです!おめでとうございます。
hirayuu1414
Scratcher
500+ posts

Scratchで競技プログラミング!(初めての人は最初の投稿をお読みください)

(実験的な問題)インタラクティブなゲーム 実行時間制限: 5秒
赤井くんと青山くんは、公園でa個の赤い石とb個の青い石を見つけました。
なので、二人はその石を使って遊ぶことにしました。
<ルール>
・赤い石、青い石のどちらか一種類だけ、好きな数の石を取り除く(0個は禁止)
・最後の石を取り除いた方が勝ち
2種類の石を取り除いたり、一つも取り除かないことは反則です。
青山くんは赤井くんよりも偉いので、先手か後手かを好きに決めることができます。
このとき、実際に青山くんの立場になってこのゲームをし、赤井くんに勝ってください。

制約
0<A,B<200000

答え方
この問題はインタラクティブな問題(プログラムとシステムが対話する問題)です。
回答する際は、このプロジェクトをリミックスしてください。
まず、aとbが与えられます。
その後、先手でプレイしたいなら”First”と、後手でプレイしたいなら”Second”とシステムに送ってください(送る方法は後述)
後手でプレイする場合は変数「<<input」に手が入力されます。
入力される手の形式は「R+数字」or「B+数字」です。これがこちらが手を送る場合も同様です。
Rで始まっている場合は赤い石を、Bで始まっている場合は青い石を、その後の数字個取り除いたことを意味します。
先手でプレイする場合は何も送られないので、先述の手をシステムに送ってください。
その後、交互に手を送り合い、最後の石を取った場合、システムから「You win」と送られてきます。
それが送られてきたらプログラムを終了してください。
また、不正な手などを入力した場合、システムから「-1」が送られてきます。
これが送られた時点で不正解です。

注意
スプライト「Judge」のスプリクトは、重大なヒントを含んでいるため隠しています
表示させないことをお勧めします。
また、システムに送る時は、
[>>output v] を [送りたいもの] にする
[Output v] を送って待つ
としてください。
そして、Judgeシステムから
([ v] \( [Judge v] \))
を使って変数を盗み見ることを禁止します。
さらに、先手を選ぶ際は、”First”と送っても返答が返ってきませんが、それでもシステムに送ってください。
送らないとその後に-1を出力する可能性があります。

結果例
a,b…5,4が与えられたとき
>>output “First”…先手でプレイするときはこうします
<<input “”…何も送られてきません。後手の場合は何かしら手が送られてきます。
>>output “R3”…赤い石を3個取り除きます。赤い石が2個、青い石が4個になります。
<<input “B4”…青い石が4個取り除かれます。赤い石が2個、青い石は無くなります。
>>output “R2”…赤い石を2個取り除きます。石が一つもなくなります。
<<input “You win”…処理が終わります。動作を終了してください。

(このトピックでやるのがまずかったらすみません、教えてくれたら消します。)

Last edited by hirayuu1414 (May 23, 2023 02:33:50)

newmomizi_txt
Scratcher
1000+ posts

Scratchで競技プログラミング!(初めての人は最初の投稿をお読みください)

#291の、「インタラクティブなゲーム」に解答します。
https://scratch.mit.edu/projects/850949402/
hirayuu1414
Scratcher
500+ posts

Scratchで競技プログラミング!(初めての人は最初の投稿をお読みください)

正解です、FAおめでとうございます!
hirayuu1414
Scratcher
500+ posts

Scratchで競技プログラミング!(初めての人は最初の投稿をお読みください)

特異な参加者 実行時間制限: 2秒
とある世界のコンテストでは、問題1から問題Nまでが一度に出題され、10^9秒間コンテストをすることで競い合います。このコンテストに、M人が参加しました。参加者には1,2,…Mと番号が振られています。
参加者iは、コンテスト開始からAi j秒後に問題jを正解しました。(ただし、Ai jが/のとき、その問題をコンテスト中に正解できなかったことを表します)
この参加者について、以下の条件を満たす正整数kが存在する場合、その参加者は「特異な参加者」と呼ばれます。
・コンテスト開始からk秒後の時点で、問題iを正解しているのにも関わらず問題i-1を正解していないようなi(1<i≦N)が少なくとも一つ存在する
参加者の中に、「特異な参加者」は何人存在しますか。
制約
0<N,M
NM≦200000
0<Ai j≦10^9またはAi j=/(0<i≦M, 0<j≦N)
入力はAi jが/の場合を除き全て正整数
結果例
入力例1
N=4,M=3
A1 1 =5, A1 2 =9, A1 3 =7, A1 4 =11
A2 1 =12, A2 2 =18, A2 3 =50, A2 4 =/
A3 1 =/, A3 2 =/, A3 3 =/, A3 4 =1
出力例1
2
参加者1に対して、例えばk=7などで3問目を正解していますが2問目を正解していないことより条件を満たすため、この参加者は特異な参加者です。
参加者3に対して、例えばk=1729などで4問目を正解していますが3問目を正解していないことより条件を満たすため、この参加者も特異な参加者です。
参加者2には条件を満たす正整数kは存在しないため、この参加者は特異な参加者ではありません。

入力例2
N=1,M=2
A1 1 =838861
A2 1 =/
出力例2
0
sakura_neko
Scratcher
83 posts

Scratchで競技プログラミング!(初めての人は最初の投稿をお読みください)

#294 特異な参加者 に解答します
hirayuu1414
Scratcher
500+ posts

Scratchで競技プログラミング!(初めての人は最初の投稿をお読みください)

正解です。FAおめでとうございます!
nyankodaisensou-suki
Scratcher
100+ posts

Scratchで競技プログラミング!(初めての人は最初の投稿をお読みください)

最近1年ぐらい投稿が無くて、色々と忘れ去られたようなので出題します。

注文内容の多過ぎる料理店 実行時間:0.04秒以内

ここの料理店はいつも注文内容が多過ぎるので忙しいです。
そんな料理店で今日も注文内容が多過ぎる注文がやってきました。
注文されたのは、大文字と小文字を判定するプログラムを作って欲しいという内容でした。
制約
アルファベットの入った変数を使って大文字と小文字を判定してステージのScrachcat(プロジェクト作成時にに大文字か小文字を言わせるプログラムを作ってください。
ですが、以下の制約を守ってください。
  • 旗ブロック含む拡張機能(翻訳機能など)を除いた5種類の色のブロックと見た目ブロック(catに言わせるためにはこのブロックは必要)と
    アルファベットが入った変数入力となるブロックを使ってください。(全7種類の色)※ただしアルファベットの入っている変数は参照用のみに使ってください。
  • ステージは少しでもいじったりは絶対にしないでください。(背景を増やす、背景の名前変更など)
    また、コスチュームとスプライトを二つ以上にするのも禁止です。
  • コスチュームとスプライトの名前は変更してOKです
  • リストは使ってもいいですが長さは31未満です。
  • 使用できるブロックの種類は動きブロックは3種類、見た目ブロックは4種類、音ブロックは5種類、イベントブロックは6種類まで、調べるブロックは7種類、演算ブロックは8種類までです。
    また、イベントブロックの中の
    [ v] を送る

    [ v] を送って待つ
    と制御ブロック、ブロック定義の使用は禁止です。
  • JSON HackしたブロックやScratch2.0のブロックを使うのは禁止です。
  • ブロックは1列10ブロック分の幅までとさせていただきます。(ブロックの中に変数型ブロックが2つ以上入っている場合は、伸びた分も数えます。
  • 20ブロック未満で作ってください。

結果例
入力:Y
出力:大文字
入力:f
出力:小文字
9q9q9q
Scratcher
12 posts

Scratchで競技プログラミング!(初めての人は最初の投稿をお読みください)

「注文内容の多い料理店に回答します」https://scratch.mit.edu/projects/1018100914/
注文内容が多すぎてこれがOKなのかどうかわかりませんが、おそらく大丈夫だと信じたい。

Last edited by 9q9q9q (May 11, 2024 04:58:09)

nyankodaisensou-suki
Scratcher
100+ posts

Scratchで競技プログラミング!(初めての人は最初の投稿をお読みください)

#298
正解です。おめでとうございます!
nyankodaisensou-suki
Scratcher
100+ posts

Scratchで競技プログラミング!(初めての人は最初の投稿をお読みください)

注文内容の多過ぎる料理店その2 実行時間:0.04秒以内

ようやく料理ができたと思いきや、じつは注文内容を一部読んでいなかったので実はまだできていませんでした。
急いで料理を作り直さないといけないので、プログラムをまた作ってください。

制約
#297の制約の3番目にプラスして、「但し、ブロックが3ブロック以上にはスプライトとコスチュームを変更しないでください。」という文がプラスされます。

Last edited by nyankodaisensou-suki (May 13, 2024 09:37:13)

  • Discussion Forums
  • » 日本語
  • » Scratchで競技プログラミング!(初めての人は最初の投稿をお読みください) [RSS Feed]

Powered by DjangoBB