ややこしい問題設定。
https://yukicoder.me/problems/no/2121
問題
有限集合V(n)を以下のように定める。
- V(0)は空集合
- V(n)はV(n-1)の冪集合
正整数Nと、2以下の非負整数A(0)~A(5)が与えられる。
を満たすV_nの要素m0、m1、m2が存在するか判定せよ。
解法
∧以降の条件より、
m(A(1)) != m(A(2))
m(A(3)) != m(A(2))
m(A(4)) != m(A(3))
m(A(5)) != m(A(0))
でなければならない。
また最初の条件より
m(A(5)) ∈ m(A(1)) ∈ m(A(2))
なので、Nが3以上かつ
m(A(5)) != m(A(1))
m(A(5)) != m(A(2))
m(A(1)) != m(A(2))
でなければならない。
これらを愚直に判定しよう。
int N; int A[6]; void solve() { int i,j,k,l,r,x,y; string s; cin>>N; FOR(i,6) cin>>A[i]; if(N>=3&&A[1]!=A[2]&&A[3]!=A[2]&&A[4]!=A[2]&&A[5]!=A[0]&&A[5]!=A[1]&&A[5]!=A[2]&&A[0]!=A[2]) { cout<<"YES"<<endl; } else { cout<<"NO"<<endl; } }
まとめ
考察中心な問題。