Ejemplo n.º 1
0
Archivo: 5.cs Proyecto: qifanyyy/CLCDSA
    static void Main(string[] args)
    {
        using (SpaceDelimReader sr = new SpaceDelimReader(args[0]))
        {
            int tst = sr.NextInt();
            for (int cas = 1; cas <= tst; ++cas)
            {
                int  n  = sr.NextInt();
                long aa = sr.NextString().LongValue();
                long b  = sr.NextString().LongValue();
                long c  = sr.NextString().LongValue();
                long d  = sr.NextString().LongValue();
                long x0 = sr.NextString().LongValue();
                long y0 = sr.NextString().LongValue();
                long M  = sr.NextString().LongValue();
                long[,] cnt = new long[3, 3];
                cnt[x0 % 3, y0 % 3]++;
                for (int i = 1; i < n; ++i)
                {
                    x0 = (x0 * aa + b) % M;
                    y0 = (y0 * c + d) % M;
                    cnt[x0 % 3, y0 % 3]++;
                }
                var  pairs = Enumerable.Range(0, 3).SelectMany(i => Enumerable.Range(0, 3).Select(j => new { I = i, J = j })).ToArray();
                long res   = 0;
                for (int i = 0; i < pairs.Length; ++i)
                {
                    res += Comb3(cnt[pairs[i].I, pairs[i].J]);
                    for (int j = i + 1; j < pairs.Length; ++j)
                    {
                        int isu1 = pairs[i].I + pairs[j].I + pairs[i].I;
                        int jsu1 = pairs[i].J + pairs[j].J + pairs[i].J;
                        if (isu1 % 3 == 0 && jsu1 % 3 == 0)
                        {
                            res += cnt[pairs[j].I, pairs[j].J] * Comb2(cnt[pairs[i].I, pairs[i].J]);
                        }

                        int isu2 = pairs[i].I + pairs[j].I + pairs[j].I;
                        int jsu2 = pairs[i].J + pairs[j].J + pairs[j].J;
                        if (isu2 % 3 == 0 && jsu2 % 3 == 0)
                        {
                            res += cnt[pairs[i].I, pairs[i].J] * Comb2(cnt[pairs[j].I, pairs[j].J]);
                        }

                        for (int k = j + 1; k < pairs.Length; ++k)
                        {
                            int isu = pairs[i].I + pairs[j].I + pairs[k].I;
                            int jsu = pairs[i].J + pairs[j].J + pairs[k].J;
                            if (isu % 3 == 0 && jsu % 3 == 0)
                            {
                                res += cnt[pairs[i].I, pairs[i].J] * cnt[pairs[j].I, pairs[j].J] * cnt[pairs[k].I, pairs[k].J];
                            }
                        }
                    }
                }
                Console.Write("Case #{0}: ", cas);
                Console.WriteLine(res);
            }
        }
    }
Ejemplo n.º 2
0
 static void Main(string[] args)
 {
     using (SpaceDelimReader sr = new SpaceDelimReader(args[0]))
     {
         int tst = sr.NextInt();
         for (int cas = 1; cas <= tst; ++cas)
         {
             int    k   = sr.NextInt();
             string s   = sr.NextString();
             int    res = k.AllPermutations().Select(p => GetSize(s, p)).Min();
             Console.Write("Case #{0}: ", cas);
             Console.WriteLine(res);
         }
     }
 }
Ejemplo n.º 3
0
 static void Main(string[] args)
 {
     using (SpaceDelimReader sr = new SpaceDelimReader(args[0]))
     {
         int tst = sr.NextInt();
         for (int cas = 1; cas <= tst; ++cas)
         {
             int         m   = sr.NextInt();
             int         n   = sr.NextInt();
             string[]    mat = sr.NextString(m);
             MaxMatching ob  = new MaxMatching(mat, m, n);
             Console.Write("Case #{0}: ", cas);
             Console.WriteLine(ob.calc());
         }
     }
 }