0
1

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 1 year has passed since last update.

0.はじめに
 解説を見るとA問題からループが必要な問題にしている等
 運営方針の変更があったようですね。

1.A - Integer Sum
 提供されたリストの合計を算出する問題。
 sum関数をつかってすんなり解きました。

 https://atcoder.jp/contests/abc272/submissions/35476728

2.B - Everyone is Friends
 B問題の割に条件が複雑で、おもわず
 C問題に逃げそうになりました。

 考え方
  1)N人の全組み合わせをキーとした辞書を作る。(値は0)
  2)各舞踏会に参加した人の組を調べ
   辞書に該当組み合わせがあったら、値を1にする
  3)辞書の値を全部参照し、0が一つでもあったら、No
   すべて1だったらYesを表示する。

 実装
  1)N人の全組み合わせをキーとした辞書を作る。(値は0)

d={}
for i in range(1,N):
    for j in range(i+1,N+1):
        d[i*1000+j]=0

   一人目(1~N-1)*1000(Nが100までなので)+2人目(2~N)を
   キーに辞書を構成(キーをペアとかにもできた気がしますが私は
   ペアを数字に変換する方法がなじんでしまってます。)

  2)各舞踏会に参加した人の組を調べ
   辞書に該当組み合わせがあったら、値を1にする

L=[]
for i in range(M):
    X=list(map(int,input().split()))
    L.append(X)
for i in range(M):
    r=L[i][0]
    #print("2",d,r)
    for j in range(1,r):
        #print("3",L[i][j])
        for k in range(j+1,r+1):
            p=L[i][j]*1000+L[i][k]
            #print("4",p)
            d[p]=1

  チェックする際も、一人目*1000+2人目で辞書を検索し
  フラグを立てていきました。
  列ごとの繰り返しの添え字設定を失敗しててこずりましたが
  考え方自体は間違っていませんでした。

  3)辞書の値を全部参照し、0が一つでもあったら、No
   すべて1だったらYesを表示する。

flg=0
for d_val in d.values():
    if(d_val==0):
        flg=1
if(flg==1):
    print("No")
else:
    print("Yes")

  答えの求め方はもっとスマートな方法ありそうでしたが
  愚直にチェック。
  
  TLEが出なかったので良しとしました。

 https://atcoder.jp/contests/abc272/submissions/35490300

3.C - Max Even
 問題の意図はすぐわかりましたが実装にてこずりました。

 考え方
  1)2要素の和=奇数+奇数or偶数+偶数
  2)思いついた場合分け
   リストを降順に並べ替えて
   2-1)1番目と2番目の偶奇が同じ
     1番目と2番目を足した値が答え
   2-2)1番目と2番目の偶奇が異なる
     3番目以降の数で初めに出てきた偶奇それぞれをもとに
     偶数最大ペア、奇数最大ペアを求め
     比較して大きい方が答え
   2-3)リストの最後まで偶奇ペアが出来なかった場合
     2-3-1)偶奇どちらかのペアが完成していた場合
      どちらか完成しているペアが答え
     2-3-1)偶奇どちらかのペアも完成していない場合
      -1を表示

 考え方自体は難しくないですが、少々無駄に複雑になってしまいました。
 解説にあった、偶奇それぞれ違うリストに格納して計算する方法は
 わかりやすくスマートだなと思いました。

 https://atcoder.jp/contests/abc272/submissions/35496733

4.D以降
 Dは一目見てちょっと無理そうとなり
 Eに挑戦しましたが、TLEとなる実装方式しか思いつかず
 時間切れになりました。

0
1
0

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
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?