Fork me on GitHub

04 2014 档案

摘要:这章演示了一些最基本的Django开发动态网页的实例,由于版本不一样,我用的是Django 1.,6.3,有些地方按书上的做是不行的,所以又改了一些,写出来让大家参考。这是一个用python写的一个显示当前时间的网页。1.开始一个项目.在命令行中(指定要保存项目代码的盘或文件夹下)输入 python... 阅读全文
posted @ 2014-04-29 11:07 whatbeg 阅读(322) 评论(0) 推荐(0)
摘要:背包问题。思路:如果m=5: 求出背包容量为m-5,买前n-1样便宜的菜(排个序)的最大价值(即最大消费,即消费完后剩余值最接近5)最后减去最大的那个菜的价格,就得到最小的余额。代码:#include #include #include #include #include using namespa... 阅读全文
posted @ 2014-04-27 15:17 whatbeg 阅读(278) 评论(0) 推荐(0)
摘要:这题有些巧妙,看了别人的题解才知道做的。因为按常规思路的话,背包容量为浮点数,,不好存储,且不能直接相加,所以换一种思路,将背包容量与价值互换,即令各银行总值为背包容量,逃跑概率(1-P)为价值,即转化为01背包问题。此时dp[v]表示抢劫到v块钱成功逃跑的概率,概率相乘。最后从大到小枚举v,找出概... 阅读全文
posted @ 2014-04-27 14:49 whatbeg 阅读(211) 评论(0) 推荐(0)
摘要:01背包的变形。先算出硬币面值的总和,然后此题变成求背包容量为V=sum/2时,能装的最多的硬币,然后将剩余的面值和它相减取一个绝对值就是最小的差值。代码:#include #include #include #include #include using namespace std;#define... 阅读全文
posted @ 2014-04-27 13:34 whatbeg 阅读(160) 评论(0) 推荐(0)
摘要:这种01背包的裸题,本来是不想写解题报告的。但是鉴于还没写过背包的解题报告。于是来一发。这个真的是裸的01背包。代码:#include #include using namespace std;#define N 1007int c[N],w[N],dp[N];int main(){ int ... 阅读全文
posted @ 2014-04-27 11:13 whatbeg 阅读(186) 评论(0) 推荐(0)
摘要:题意:给定两个NxN的棋盘,每个棋盘都有一个‘车’的摆放状态,问进行若干次交换,能否使棋盘1变为棋盘2.交换规则:每次选两个‘车’,坐标分别为(r1,c1),(r2,c2),如果r1c2,则可以将两个点分别移到(r1,c2),(r2,c1)。做法:BFS,从状态Y1广搜,每次选两行r1,r2(r1#... 阅读全文
posted @ 2014-04-25 14:06 whatbeg 阅读(301) 评论(0) 推荐(0)
摘要:很多时候,我们需要对List进行排序,Python提供了两个方法对给定的List L进行排序,方法1.用List的成员函数sort进行排序方法2.用built-in函数sorted进行排序(从2.4开始)这两种方法使用起来差不多,以第一种为例进行讲解:从Python2.4开始,sort方法有了三个可... 阅读全文
posted @ 2014-04-23 21:23 whatbeg 阅读(359) 评论(0) 推荐(0)
摘要:问题:对于一颗线段树,每次询问[L,R],求此区间中任意一段连续序列,此连续序列和最大。解法:每个节点维护4个值:max:此区间内的最大连续和sum:该节点以下的节点值得总和lmax:此区间的从左端开始的最大连续和rmax:此区间的从右端开始的最大连续和合并区间时,该区间的最大连续和为:max(左子... 阅读全文
posted @ 2014-04-21 19:16 whatbeg 阅读(1618) 评论(0) 推荐(1)
摘要:Python中的strip用于去除字符串的首尾字符串,同理,lstrip用于去除左边的字符,rstrip用于去除右边的字符。这三个函数都可传入一个参数,指定要去除的首尾字符。需要注意的是,传入的是一个字符数组,编译器去除两端所有相应的字符,直到没有匹配的字符,比如:theString ='saaaay yes no yaaaass'printtheString.strip('say')theString依次被去除首尾在['s','a','y']数组内的字符,直到字符在不数组内。所以,输出的结果为:yes no比较简 阅读全文
posted @ 2014-04-13 11:59 whatbeg 阅读(357) 评论(0) 推荐(0)
摘要:第三章3-10 交换异常处理方式代码:#makeTextFile.py#!/usr/bin/env python'makeTextFile.py'import osls = os.linesep#get File namewhile True: fname = raw_input("Enter... 阅读全文
posted @ 2014-04-13 11:13 whatbeg 阅读(744) 评论(0) 推荐(0)
摘要: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 阅读全文
posted @ 2014-04-12 23:47 whatbeg 阅读(1147) 评论(0) 推荐(0)
摘要:实际上是一个扩展维度的矩形嵌套问题。一个物体能嵌入另一个物体中,当且仅当这个物体的所有维度的长度都小于另外一个(本题是小于等于),又因为可以旋转等变换,所以干脆将每个箱子的边从小到大排序,以便于判断是否能够嵌套。然后将箱子按第一维度从小到大排序,然后就是求一个“严格上升子序列”了。代码:#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... 阅读全文
posted @ 2014-04-12 20:53 whatbeg 阅读(186) 评论(0) 推荐(0)
摘要:题意: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] 阅读全文
posted @ 2014-04-12 17:51 whatbeg 阅读(297) 评论(0) 推荐(0)
摘要:最长公共子序列,经典问题。算是我的DP开场题吧。dp[i][j]表示到s1的i位置,s2的j位置为止,前面最长公共子序列的长度。状态转移:dp[i][j] = 0 (i == 0 || j == 0)dp[i][j] = dp[i-1][j-1] + 1 (s1[i] == s2[j]) (此字符相等,说明此时最长公共子序列的长度等于他们之前的LCS(简称)长度加上这个相等的字符(长度为1))dp[i][j] = max(dp[i-1][j],dp[i][j-1]) (s1[i] != s2[j]) (此字符不相等,说明此时LCS为i... 阅读全文
posted @ 2014-04-07 20:30 whatbeg 阅读(266) 评论(0) 推荐(0)
摘要:最近在看《鲜活的数据:数据可视化指南》,学习一些数据可视化与数据分析的技术,本例是该书第一章的一个例子衍伸而来。实例内容:从www.wunderground.com收集美国纽约州布法罗市(水牛城)2014年3月份每天最高气温,并导入Excel或WPS表格,制做成折线图。工具准备:安装好的Python... 阅读全文
posted @ 2014-04-04 13:10 whatbeg 阅读(5989) 评论(0) 推荐(2)
摘要:题意:求一幅无向图的最小生成树与最小生成树,不存在输出-1解法:用Kruskal求最小生成树,标记用过的边。求次小生成树时,依次枚举用过的边,将其去除后再求最小生成树,得出所有情况下的最小的生成树就是次小的生成树。可以证明:最小生成树与次小生成树之间仅有一条边不同。不过这样复杂度有点高,可达O(m^... 阅读全文
posted @ 2014-04-03 20:36 whatbeg 阅读(309) 评论(0) 推荐(0)
摘要:由于次短路一定存在,则可知次短路一定是最短路中某一条边不走,然后回到最短路,而且只是一条边,两条边以上不走的话,就一定不会是次短路了(即以边换边才能使最小)。所以可以枚举每一条边,算出从起点到这条边起点的最短距离,以及从终点到这条边终点的最短距离,再加上这条边的权值,看是否是次短路(比最短路总权值大... 阅读全文
posted @ 2014-04-03 09:44 whatbeg 阅读(248) 评论(0) 推荐(0)
摘要:转自https://www.byvoid.com/blog/2-sp-mst posted by byvoid[次短路径]次短路径可以看作是k短路径问题的一种特殊情况,求k短路径有Yen算法等较为复杂的方法,对于次短路径,可以有更为简易的方法。下面介绍一种求两个顶点之间次短路径的解法。我们要对一个有... 阅读全文
posted @ 2014-04-02 20:25 whatbeg 阅读(579) 评论(0) 推荐(0)
摘要:今天看了一下《计算机网络:自顶向下方法》,也就是计算机网络的教材的应用层一章,决定实现以下后面的Java C/S应用程序的例子,用来演示TCP和UDP套接字编程。程序流程如下:1.一台客户机从其标准输入(键盘)读入一行字符,并通过其套接字将该行发送到服务器。2.服务器从其连接套接字读取一行字符。3.服务器将该行字符转换成大写。4.服务器将修改后的字符串(行)通过连接套接字再发回给客户机。5.客户机从其套接字中读取修改后的行,然后将该行在其标准输出(监视器)上打印出来。下面是应用程序客户机端的代码:TCPClient.javaimport java.io.*;import java.net.*; 阅读全文
posted @ 2014-04-02 20:10 whatbeg 阅读(1537) 评论(2) 推荐(1)