A题:暴力
题目数据量很小,所以可以用暴力。
1题的分数的取值可能是a, a - da, a - da * 2, a - da * 3,……, a - da * (n - 1);或者0
2题的分数的取值可能是b, b - db, b - db * 2, b - db * 3, ……, b - db * (n - 1);或者0
然后暴力。
复杂度:O (n^2)
code:略
B题:模拟
链接:http://codeforces.com/contest/203/problem/B
思路:每染黑一个点,判断此点是否构成了一个黑色3×3的框框。
复杂度:O(n)
C题:排序+贪心
链接:http://codeforces.com/contest/203/problem/C
思路:按照内存先排序后进行贪心。
复杂度:O(n*log(n))
D题:模拟+几何
链接:http://codeforces.com/contest/203/problem/D
思路:有一段关键代码,就是确定小球碰撞的最终位置,如果采用推公式的方法很容易错,故采取公式 + 计算的方法:
code:
double func(double mod, double x){
int n = (int)(x / (2.0 * mod));
x -= n * 2.0 * mod;
while(x < 0.0) x += 2.0 * mod;
while(x > 2.0 * mod) x -= 2.0 * mod;
if(x > mod) x = 2.0 * mod - x;
return x;
}
复杂度:O(1)