SRM460 DIV2
Easy::TheQuestionsAndAnswersDivTwo
public class TheQuestionsAndAnswersDivTwo { public int find(string[] questions) { List<string> q = new List<string>(); foreach (String s in questions) { if (q.Contains(s)) { continue; } else { q.Add(s); } } return (int)Math.Pow(2.0, (double)q.Count); } }
Medium::TheFansAndMeetingsDivTwo
public class TheFansAndMeetingsDivTwo { public double find(int[] minJ, int[] maxJ, int[] minB, int[] maxB) { double[] J = new double[51]; double[] B = new double[51]; int size = minJ.Length; for (int i = 0; i < size; i++) { int tmp = maxJ[i] - minJ[i] + 1; int tmp2 = maxB[i] - minB[i] + 1; double p = 1.0 / (double)(size * tmp); double p2 = 1.0 / (double)(size * tmp2); for (int j = minJ[i]; j <= maxJ[i]; j++) { J[j] += p; } for (int j = minB[i]; j <= maxB[i]; j++) { B[j] += p2; } } double ret = 0.0; for (int i = 0; i <= 50; i++) { ret += J[i] * B[i]; } return ret; } }
こんな感じですか?