摘要: 个人赛连秃两场了。。。不过今天见识到了Python的威力。。。还是有点欣慰的。。。Python:a=1Ln=input()for i in range(1,n+1): b=a+1 a*=b print bVSC++:/************************************************************************* > File Name: A.cpp > Author: Chierush > Mail: qinxiaojie1@gmail.com > Created Time: 2013年07月31日... 阅读全文
posted @ 2013-07-31 13:03 Chierush 阅读(236) 评论(0) 推荐(0) 编辑
摘要: 题意比较简单,状态转移方程也比较容易得出:f[i]=max{ f [ j ] }+p[i],(j的结束时间在i开始时间之前)若i开始之前没有结束的j,则f[i]=p[i];因数据量太大(n File Name: A.cpp > Author: Chierush > Mail: qinxiaojie1@gmail.com > Created Time: 2013年07月26日 星期五 10时52分21秒 ************************************************************************/#include #incl. 阅读全文
posted @ 2013-07-27 13:13 Chierush 阅读(745) 评论(0) 推荐(0) 编辑
摘要: 以为很水的一道题,花了大半天的时间才搞定,比赛的时候卡在这题上了,伤不起啊。。。题意:给一棵树,每个结点中有礼物,每个礼物有一个权值,某些结点中会有陷阱,你可以从任何一点出发,每个结点最多只能经过一次,最多掉进陷阱C次,求出可获得的礼物的最大值。思路:典型的树形DP ,状态可用dp[x][y][z]来表示,x代表以x为根结点的子树,y代表恰好经过了几个陷阱,z代表方向(0,1),表示从此子树进来或是出去。dp[x][y][0]的含义是从子树x中出来,恰好经过y个陷阱所能获得的最大礼物值,dp[x][y][1]的含义是进入子树x,恰好经过y个陷阱所能获得的最大礼物值。状态转移方程:如果结点x有. 阅读全文
posted @ 2013-07-26 19:56 Chierush 阅读(1012) 评论(1) 推荐(0) 编辑
摘要: 题意:1~n的一个排列,两两互换,每个位置每天只能做一次交换,问最多几天能交换成1~n,并且输出交换步骤。解法:把该置换中所有的循环节找出,各循环节之间的交换是并行的,两两不相关,每天只需在循环节内部交换。 若循环节长度为1,则无需交换,若循环节长度为2,则只需交换一次,若循环长度>2,则只需要交换2次。 置换方法:每个循环节中的第一个和最后一个交换,第二个和倒数第二个交换... 至于为什么只需两次,可以在纸上模拟一下置换过程,按上述置换方法一次交换后,一个循环节变成了(n-1)/2个长度为2的循环节,可以一次并行交换。代码如下:/**************************** 阅读全文
posted @ 2013-07-24 14:39 Chierush 阅读(534) 评论(0) 推荐(0) 编辑
摘要: 这学期的大作业,数据库课程设计,SQL语句解析,主要是实现SQL中select语句的功能,还包括where限制语句和order by语句。虽然写的有点挫,但还是第一次写这么长的代码,纪念一下吧。/************************************************************************* > File Name: sql.cpp > Author: Chierush > Mail: qinxiaojie1@gmail.com > Created Time: 2013年06月21日 星期五 10时48分42秒 **** 阅读全文
posted @ 2013-06-27 20:52 Chierush 阅读(1077) 评论(2) 推荐(0) 编辑
摘要: 要使用Ubuntu前,我们一般都要先做好工具!特别是对于安装这一块~~~~ 1、配置前,先做个配置文件的备份: $sudo cp /etc/apt/sources.list /etc/apt/sources.list_bak 2、然后就可以添加新的源了 $sudo vim /etc/apt/sources.list加入源地址【下面列出163的源,主要是速度与更新得快!!!推荐使用】deb http://mirrors.163.com/ubuntu/ maverick main restricted universe multiversedeb http://mirrors.16... 阅读全文
posted @ 2013-06-25 16:55 Chierush 阅读(1351) 评论(0) 推荐(0) 编辑
摘要: 有时候Ubuntu中无法安装软件,具体信息是:正在读取软件包列表... 有错误!E: Encountered a section with no Package: headerE: Problem with MergeList /var/lib/apt/lists/mirrors.163.com_ubuntu_dists_quantal_universe_binary-i386_PackagesE: 无法解析或打开软件包的列表或是状态文件。=============================================================================原 阅读全文
posted @ 2013-06-25 15:41 Chierush 阅读(1015) 评论(0) 推荐(0) 编辑
摘要: 在ubuntu下,系统就自带一个压缩包管理软件,但是,它默认是不支持rar和7zip格式的。因此,我们可以给它直接“增强”一下。就成了万能的了。安装方法,终端里面:sudo apt-get install rar unrar p7zip p7zip-rar p7zip-full 阅读全文
posted @ 2013-06-25 15:25 Chierush 阅读(446) 评论(0) 推荐(0) 编辑
摘要: 题目大意:给出n个数,每相邻两个数求平均数,得到n-1个数,再求平均数,得到n-2个数,......一直到最后一个数,输出这个数。题目很简单,就是中间数据会比较大有点复杂,超过double的范围,而结果又比较小,这时候可以考虑只存储中间数据的log值,改乘除运算为对数的加减运算,然后对结果求幂即可,需要注意的一点是负数不能取对数,先提取负号。很容易得到:ans=sum(C(n-1,i)*a[i])/(2^(n-1)) , i=0~n-1;提前将c(n-1,i)的值求出,log_C存储对数:log_C[i]=log_C[i-1]+log10(n-i)-log10(i);由于无法将log(sum( 阅读全文
posted @ 2013-06-19 13:16 Chierush 阅读(777) 评论(0) 推荐(0) 编辑
摘要: 问m~n之间的数中共有多少个0,过程稍稍麻烦了一些,半天的时间才搞定。直接上码吧/************************************************************************* > File Name: 11038_数位DP.cpp > Author: Chierush > Mail: qinxiaojie1@gmail.com > Created Time: 2013年06月16日 星期日 16时13分54秒 *****************************************************. 阅读全文
posted @ 2013-06-17 00:32 Chierush 阅读(410) 评论(0) 推荐(0) 编辑