A
题意:给2n个数,分别是1,2,…2n。让你分成元素数量相等的两个集合{A}和{B},满足每个集合中所有数的i次方和相等(i从1到n-1)。
知识点:数学
解法:观察到n等于2时,分为{1,4}和{2,3}。n等于3时,分为{1,4,6,7}和{2,3,5,8}。猜想每次n自增时,后面续2n-1个数,分别是另外一个集合所有数增加2n-1的值。
交了一发直接过了。后面听题解得知可以用数学归纳法证明。
B
题意:给一个井字棋的残局,问是否有必胜策略。
知识点:博弈/dfs
解法:我的解法是每一步按最优策略模拟下棋。所谓最优策略是:直接获胜步优先,防守直接获胜次之,2步必胜再次之。然后按中间>角>边的策略。跑了一些样例之后把走过1步的一些特解也加进去了。
最后因为把小写的“yes”打成了大写导致wa了,真的太可惜了。
官方给出的题解是O(n!)的dfs爆搜法,tqlxbl
C
题意: 每个点染色对区间(x-bi,x+bi)的点全部染色,并产生连锁反应(直到连锁不了为止)。第i个点染色点数量ai。求Σai*i
知识点:图论
不会做。。
D
题意:给定一个数组a[n],对于排列{k+1,k+2,…,k+n},改变其顺序(第i项记为b[i