AOJ2274 Sequence Configuration
問題リンク Sequence Configuration
- 解法
ランダムに0と1の列を生成し続ければ解けます(!?)
- ソース
import java.util.Random; import java.util.Scanner; //Sequence Configuration public class AOJ2274 { void run(){ Scanner sc = new Scanner(System.in); int n = sc.nextInt(), k = sc.nextInt(); int[][] c = new int[k][n/2]; for(int i=0;i<k;i++)for(int j=0;j<n/2;j++)c[i][j]=sc.nextInt(); Random rand = new Random(); for(;;){ int[] a = new int[n+1]; for(int i=1;i<=n;i++)a[i]=rand.nextInt(2); boolean ok = true; for(int i=0;i<k;i++){ if(!ok)break; int s = 0; for(int j=0;j<n/2;j++){ if(a[c[i][j]]==1)s++; if(3*n/8<s)break; } if(!(n/8<=s&&s<=3*n/8))ok = false; } if(ok){ for(int i=1;i<=n;i++)System.out.print(a[i]+(i==n?"\n":"")); break; } } } public static void main(String[] args) { new AOJ2274().run(); } }