比赛链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=27374#overview
选了一套 Andrew Stankevich's Contest #8,zoj2670-2678,
在hust上已经被做烂了的一套题目,
A:Nonoptimal Assignments,贪心法构造即可。签到题,
B:Cryptography,模r意义下的矩阵乘法,n个2*2的矩阵A1、A2....An,m次询问,每次询问l<=r,Al * Al+1 * ...* Ar,线段树即可。
C: Fibonacci Subsequence , 给定n<=3000个数A1...An,求一个最长的子序列满足Fibonacci序列,Fn = Fn-1 + Fn-2。dp[i][j]表示,在第i个数时,考虑前一个数为第j个数,的最长序列长度,根据Fibonacci性质可知,前一个数一定为X = Ai - Aj,并且一定为第j个数以前最靠后的数。那么维护一种数据结构,查找A1.....Aj-1里最后一个X,位置为k,那么dp[i][j] = dp[j][k] + 1,否则dp[i][j] = 2。使用线段树、树状数组,离散化处理即可。总复杂度O(N*N*lgN)。。。这个题目卡常数,空间也特别卡,各种MLE\TLE。。。最后处理路径也比较容易。
D: Hexagon and Rhombic Dominoes , 表示不会。状态压缩可以搞,目测很多UESTC的都是打表。。。不知道数据哪里来的???
E: Strange Limit ,题意比较好理解,可以化为bn+1 = p^bn % M,M = m!,因为总是有极限,可以模拟枚举,总可以在O(M)求出来。然后打表即可
F:Little Mammoth , 给定一个圆(x,y,r),矩形(x1,y1,x2,y2),求相交的面积。。。不难,但是没人做呢??
G: Network Wars , 《最小割及其应用》论文里的例题,分数规划,二分+网络流。没写,,,值得好好学学这种方法。
H:Oil Deal , 给定N个点,M条边,有边权的一个无向图。求去掉尽量多的边,使得剩下的图仍然连通,并且所选边权和不超过给定数S。。。贪心,首先保证图的连通性确定最大生成树,然后在剩下的边里从小到大选择即可。。。因为要输出边,使用Kruskal算法。
I: Bishops on a Toral Board , 题意描述很麻烦。。。。结论:答案就是gcd(N,M),找规律或者YY吧。。使用java秒过。
总结:
1、这次数据输出较麻烦,多次PE...
2、UESTC 4个队伍AK,我们太弱。
3、A、E、H、I,理应全部做出来的,,但是。。。
4、所有AC的代码在hust上都可以查看,建议以后做比赛都分享自己的代码吧。。。相互学习ing.
5、我们还是太弱了,加油吧,OUC ACMer。