摘要:
Chapter 3:例3-1 makeTextFile.py#!/usr/bin/env python'makeTextFile.py'import osls = os.linesep#get File namewhile True: fname = raw_input("Enter file name: ") if os.path.exists(fname): print "ERROR: '%s' already exists" % fname else: break#get file contents linesall 阅读全文
摘要:
实际上是一个扩展维度的矩形嵌套问题。一个物体能嵌入另一个物体中,当且仅当这个物体的所有维度的长度都小于另外一个(本题是小于等于),又因为可以旋转等变换,所以干脆将每个箱子的边从小到大排序,以便于判断是否能够嵌套。然后将箱子按第一维度从小到大排序,然后就是求一个“严格上升子序列”了。代码:#include #include #include #include #include using namespace std;#define N 47struct Box{ int w[12]; int ind;}box[34];int dp[N],little[N],ans[N];int cm... 阅读全文
摘要:
题意:n个士兵站成一排,求去掉最少的人数,使剩下的这排士兵的身高形成“峰形”分布,即求前面部分的LIS加上后面部分的LDS的最大值。做法:分别求出LIS和LDS,枚举中点,求LIS+LDS的最大值。。注意一点,有可能最中间的值重复,也有可能不重复,所以要考虑这两种情况:(假设中点为K)1)不重复的情况,求LIS(K) + LDS(K+1)的最大值2)重复的情况,这时K既包含在LIS当中,也包含在LDS中,计算了两次,最终结果要减掉1复杂度:O(n^2)代码:#include #include using namespace std;#define N 1007int dpi[N],dpd[N] 阅读全文