andre_joy

导航

2013年6月1日

hdu 1863

摘要: 地址:http://acm.hdu.edu.cn/showproblem.php?pid=1863题意:中文。。。mark:继续看题解。。神奇的最小生成树+并查集,算法名字叫Kruskal。听起来很高深的样子,但是算法理解起来不难,就是遇到这类型的题目,首先存放的是每条边的起点,终 点和权值,然后将所有边按权值的升序排序,然后从最小权值开始查找,用到并查集的方法,只须修改一下并查集里面merge函数,当发现当前边的起点和终点已经可以直接 或间接连在一起的时候,就不用管它,否则就将这两个点通过当前边连接起来,最后判断一下是否所有点都已经连接起来。代码:#include <cstdio... 阅读全文

posted @ 2013-06-01 20:33 andre_joy 阅读(371) 评论(0) 推荐(0) 编辑

2013年5月31日

hdu 1233

摘要: 地址:http://acm.hdu.edu.cn/showproblem.php?pid=1233题意:中文。。mark:这就是传说中的最小生成树。。。第一次做最小生成树,看别人题解说是很裸的,思路也很简单。 第一次随便取一个点,比如a1,则集合变成{a1}, {a2, a3, ...},然后从右边的集合找到一个距离左边集合最近的点加入左边,以此重复n-1次。代码:#include <cstdio>#include <cstring>#include <cstdlib>#include <cmath>#include <iostream&g 阅读全文

posted @ 2013-05-31 22:37 andre_joy 阅读(325) 评论(0) 推荐(0) 编辑

2013年5月27日

Jobdu 1005

摘要: 地址:http://ac.jobdu.com/problem.php?pid=1005题意:n个学生,m个学校,每个学校q[i]个名额。主旨是学生选学校。每个学生有k个选择,选择优先权是从高到低,每个学生有两个分数ge和gi,如果(ge+gi)/2比较高,则排名 高,如果相等则比较ge,如果仍然相等,则排名相等。学生按照排名先后选择学校,轮到该学生选择学校时,如果当前选择的学校名额已满,就看选择的下一个学校,以此类 推,如果所有学校都满,则无学校可选。特殊情况:当同等排名的学生且选到相同学校,如果该学校名额不够分配给同等排名的学生,会破格录取这些学生。mark:该题用C++STL的... 阅读全文

posted @ 2013-05-27 23:57 andre_joy 阅读(285) 评论(0) 推荐(0) 编辑

2013年5月5日

hdu 4512

摘要: 地址:http://acm.hdu.edu.cn/showproblem.php?pid=4512题意:中文。。mark:最长升序公共子序列(LCIS)的一个小变形,最长公共子序列具体可以百度。 假设两个字符串为a,b,状态dp[i][j]代表a的前i个字符和b的前j个字符的最大匹配 当a[i] == b[j]时,dp[i][j] = max(dp[i-1][k])+1,k是[0 ... j-1]。 当a[i] != b[j]时,dp[i][j] = dp[i-1][j]。 dp[i-1][k]可以通过维护一个变量实现O(1)的算法,所以时间复杂度优化后是O(n^2),... 阅读全文

posted @ 2013-05-05 11:22 andre_joy 阅读(239) 评论(2) 推荐(0) 编辑

2013年5月4日

hdu 4521

摘要: 地址:http://acm.hdu.edu.cn/showproblem.php?pid=4521题意:中文。。mark:看网上大部分解题报告都是用线段树,我又不是很懂线段树,后来突然发现有一个人用变种的LIS做的,顿时来了兴致~ 普通的LIS要求O(nlgn)的算法的时候,需要维护一个栈,每次元素比较当前栈顶元素,如果大,直接放入栈顶,否则二分查找到第一个大于它的数,替换它,具体证明就不说了。。。本题有一个限定条件是,LIS里面的序列在原数组里面的位置是要大于d的,那么解决办法就是延缓入栈(我自己随便取的名字),就是你每次计算当前元素能够组成的最长子串的时候,二分到它之前所能组成的最大... 阅读全文

posted @ 2013-05-04 10:58 andre_joy 阅读(312) 评论(0) 推荐(0) 编辑

2013年5月3日

这算复出吗?

摘要: 我那颗想要ac的心怎么能够沉寂了,看着别人刷题,我的心很痒,但是生活总是有舍有得的,哥哥一开始就给我警告了,不要重蹈他的覆辙,为了acm耽误考研,是不明智的选择,于是我一直憋着不去想acm的事,专心复习考研,但是我忍不了啊,实在不能忍受自己的弱小,现在我决定每天刷一题,当然做cf除外了,好吧,就从今天开始,继续我喜欢的ac之路~ 阅读全文

posted @ 2013-05-03 22:49 andre_joy 阅读(122) 评论(0) 推荐(0) 编辑

2013年4月6日

C字符串分隔

摘要: 描述Alice和Bob还有其他几位好朋友在一起玩传话游戏。这个游戏是这样进行的:首先,所有游戏者按顺序站成一排,Alice站第一位,Bob站最后一位。然后,Alice想一句话悄悄告诉第二位游戏者,第二位游戏者又悄悄地告诉第三位,第三位又告诉第四位……以此类推,直到倒数第二位告诉Bob。两位游戏者在传话中,不能让其他人听到,也不能使用肢体动作来解释。最后,Bob把他所听到的话告诉大家,Alice也把她原本所想的话告诉大家。由于传话过程中可能出现一些偏差,游戏者越多,Bob最后听到的话就与Alice所想的越不同。Bob听到的话往往会变成一些很搞笑的东西,所以大家玩得乐此不疲。经过几轮游戏后,Ali 阅读全文

posted @ 2013-04-06 11:31 andre_joy 阅读(362) 评论(0) 推荐(0) 编辑

2013年2月28日

python获取当前时间

摘要: 我有的时候写程序要用到当前时间,我就想用python去取当前的时间,虽然不是很难,但是老是忘记,用一次丢一次,为了能够更好的记住,我今天特意写下python 当前时间这篇文章,如果你觉的对你有用的话,可以收藏下。取得时间相关的信息的话,要用到python time模块,python time模块里面有很多非常好用的功能,你可以去官方文档了解下,要取的当前时间的话,要取得当前时间的时间戳,时间戳好像是1970年到现在时间相隔的时间。你可以试下下面的方式来取得当前时间的时间戳:import timeprint time.time()输出的结果是:1279578704.6725271但是这样是一连串 阅读全文

posted @ 2013-02-28 22:52 andre_joy 阅读(494) 评论(0) 推荐(0) 编辑

字典(dict)按键/值排序之lambda函数

摘要: 偶然在网上看到lambda函数,觉得很赞~比如:>>>d={“ok”:1,”no”:2}对字典按键排序,用元组列表的形式返回>>>sorted(d.items(),key=lambdad:d[0])[('no',2),('ok',1)]对字典按值排序,用元组列表的形式返回>>>sorted(d.items(),key=lambdad:d[1])[('ok',1),('no',2)] 阅读全文

posted @ 2013-02-28 22:44 andre_joy 阅读(334) 评论(0) 推荐(0) 编辑

2012年12月11日

12.11

摘要: 好久不写博客了。。。一个多月没做题了,有点惭愧……周六参加校赛,希望能取得好成绩吧。。能否用宝刀未老来形容自己?嘿嘿! 阅读全文

posted @ 2012-12-11 08:50 andre_joy 阅读(88) 评论(0) 推荐(0) 编辑