做了几套题,先来总结一套题。 NEERC2002 题目链接:http://codeforces.com/gym/100002 A 题意:N个数,按照字典序进行排列。Q(N,K)表示数K的位置。 现在给出K,M。 求最小的N,使得 Q(N,K)=M. 不存在输出0. 很明显进行二分答案。然后求Q(N,K) 和 M去比较。 我是用了数位DP的方法去算的Q(N,K)。也可以直接去求。
1 | /* *************** |
B: 题意:一个A*B*C的长方体。有一个D*E的口,深度无穷大的洞。 问这个长方体能不能放进洞里面。 其实很容易去发现放的最优方案肯定是直着放下去的。因为倾斜会导致增大。 所以取出最小的两条边。然后转化为二维的判断。就是A*B的矩形能不能放在D*E的矩形里面。 我的做法是让他们中心对齐,然后进行旋转放进去。 简单粗暴做法是枚举转的角度。然后乱搞判断。
1 | /* *************** |
C: 题意:在W*H的格点中,有一些格点有树。要找一个最大的正方形,不包含树。 点比较少,可以进行离散化,得到一些关键的x坐标和y坐标。 然后枚举每个点作为左下角, 然后枚举每个点就可以了。 水题。
1 | /* *************** |
D: 题意很长。就是进行了异或编码。然后前面加了一个32,要求密匙。 直接搞就是了。阅读理解题。
1 | /* *************** |
E: 题意:题意很长。其实就是一个最小费用最大流的模型。 然后给了一组方案,问是不是最优方案,如果不是,给我一组更优的方案就可以了。 这题我是直接粗暴地用最小费用最大流去搞,得到的最小费用和给出方案的最小费用进行比较。 其实可以直接在残留网络里面找一个负环,然后负环上面都+1就可以了。
1 | /* *************** |
F: 题意:给了一个字符串。要把字符串进行压缩。 长度不超过100,直接进行区间DP求解。
1 | /* *************** |
G: 题意:三维空间里面,有一些球。这些球都在x>= 0,y>=0,z >=0 里面的。要求原点发射一个射线。最最多可以碰到多少个球。接触到一点就算碰到。 很明显,只需要去判断一些关键的射线。一个是射向每个球球心的射线。还有就是射向两个求交点的射线。 求两个交点时候,推了下向量的公式。 比较好的三维计算几何题目。
1 | /* *************** |
H: 直接进行DP。 写了个记忆化。记录路径,很简单。
1 | /* *************** |
I: 题意:就是网格上交了一些垂直或者水平的线,还有一些45度的线。问可以分割出多少个等腰直接三角形。 枚举每个直角,往外扩展去判断。
1 | /* *************** |