2014年3月9日

【HDOJ】2045 不容易系列之(3)—— LELE的RPG难题

摘要: 着色问题,递推,当超过3个块时,规律明显,此时可以是n-2的头尾重复+与头尾不同颜色,也可以是n-1+与头尾均不相同眼色情况。经典递推。注意long long。#include #define MAXNUM 52long long kinds[MAXNUM] = {0,3,6,6};int main() { int n; int i; for (i=4; i<MAXNUM; ++i) kinds[i] = kinds[i-2]*2 + kinds[i-1]; while (scanf("%d", &n) != EOF) { printf("%... 阅读全文

posted @ 2014-03-09 11:59 Bombe 阅读(179) 评论(0) 推荐(0) 编辑

2014年3月8日

【算法导论】学习笔记——第16章 贪心算法

摘要: 贪心算法是使做出的选择看起来都是当前最佳的,期望通过所做的局部最优选择来产生一个全局最优解。其实,这个定义旨在说明贪心算法必须伴随做出最优选择,如moving table,我们选择最大重叠数等等。当然,很多情况下,并不一定局部最优解就是全局最优解。与DP类似,很多贪心算法设计时都很容易想到递归的形式,然而由于深度太深,很容易stack overflow。因此,这时候,大多我们都需要将递归变为递推。以前,不是很会转化。现在,觉得很容易。递归是自顶向下求解,而递推则是自底向上求解。一般递推都需要伴随着表来实现。1. 在开发一个贪心算法时,我们一般要遵循如下几个步骤:(1)设计问题的最优子结构(2) 阅读全文

posted @ 2014-03-08 21:54 Bombe 阅读(449) 评论(0) 推荐(0) 编辑

【DataStructure In Python】Python模拟栈和队列

摘要: 用Python模拟栈和队列主要是利用List,当然也可以使用collection的deque。以下内容为栈:#! /usr/bin/env python# DataStructure Stackclass Stack: def __init__(self, data=None): if data is not None: self.stk = [data] self.top = 0 else: self.stk = [] self.top = -1 def _... 阅读全文

posted @ 2014-03-08 12:49 Bombe 阅读(553) 评论(0) 推荐(0) 编辑

2014年3月7日

【HDOJ】2054 A == B ?

摘要: 这道题目起初看,so easy。再看一下ac率,注意到没有说明变量类型。显然是一道字符串的题。需要考虑+/-符号位,+.1、-.1、00010.0、+0、-00.00等情况,同时数组开到100000以上。wa了两次,第二次是才发现输出的是YES/NO,我一直输出的是yes/no,测了很多数据都是对的才发现是大小写错误,巨坑,而且代码写的也挺乱。#include #define MAXNUM 110000char a[MAXNUM];char b[MAXNUM];void chg(char a[]) { int i, beg, end, tmp; tmp = strlen(a); ... 阅读全文

posted @ 2014-03-07 18:40 Bombe 阅读(259) 评论(0) 推荐(0) 编辑

【DataStructure In Python】Python模拟链表

摘要: 最近一直在学习Python和Perl这两门语言,两者共同点很多,也有不多。希望通过这样的模拟练习可以让自己更熟悉语言,虽然很多时候觉得这样用Python或者Perl并没有体现这两者的真正价值。#! /usr/bin/env python# DataStructure Linkedlistclass Node: """ Member Variable: 1. next 2. data """ def __init__(self, data): self.data = data self.next = None ... 阅读全文

posted @ 2014-03-07 14:42 Bombe 阅读(336) 评论(0) 推荐(0) 编辑

2014年3月6日

【HDOJ】1050 Moving Tables

摘要: 贪心问题,其实我觉得贪心就是合理的考虑最优情况,证明贪心可行即可。这题目没话多久一次ac。这道题需要注意房间号的奇偶性。1 3、2 4的测试数据。答案应该为20。#include #include #define MAXNUM 505int moves[MAXNUM][2];int visit[MAXNUM];int comp(const void *a, const void *b) { return *(int *)a - *(int *)b;}int main() { int case_n, n; int i, j, k, tmp; scanf("%d", & 阅读全文

posted @ 2014-03-06 20:26 Bombe 阅读(170) 评论(0) 推荐(0) 编辑

2014年3月5日

【HDOJ】1009 FatMouse' Trade

摘要: 这道题目是一道非常简单的贪心,但是我却修改了1h+。原因就是qsort的comp有bug。其实还是题目中的数据可以为0。除数为0真的要慎重啊。后来改为结构体,加一层循环选取最大值,果然ac啊。wa了几次,测试数据都过,还是wa。无语。这道题目一定要注意数据类型,double型。#include #include #define MAXNUM 10050typedef struct { int js, fs; double rate;} JF_st;JF_st JF[MAXNUM];int visit[MAXNUM];int main() { int n; int i, ... 阅读全文

posted @ 2014-03-05 21:41 Bombe 阅读(192) 评论(0) 推荐(0) 编辑

【HDOJ】1069 Monkey and Banana

摘要: DP问题,我是按照边排序的,排序既要考虑x也要考虑y,同时在每个面中,长宽也要有序。还有注意状态转移,当前高度并不是之前的最大block叠加的高度,而是可叠加最大高度+当前block高度或者是当前block高度。最后,n^2的复杂度。#include #include #define MAXTYPE 33#define MAXNUM 3*MAXTYPEtypedef struct { int x, y, z;} rect;rect rects[MAXNUM];int heights[MAXNUM];int comp(const void *a, const void *b) { ... 阅读全文

posted @ 2014-03-05 13:59 Bombe 阅读(201) 评论(0) 推荐(0) 编辑

2014年3月4日

【PythonChallenge】Level 4

摘要: 如题,是一个链表,N多数据,其中还有其它操作,比较麻烦,也是刚学python网络编程。对于Perl的RE很熟悉,还没有学python的,还是啃手册吧。其中在读出16044时,并没有找到匹配项,如下图所示:意思是除2,因此将8022作为参数,继续跑。又跑了段时间,跑到82682时,内容如下:There maybe misleading numbers in the text. One example is 82683. Look only for the next nothing and the next nothing is 63579。真是万恶啊。最开始没理解,以为是跑错了,才发现原来前面的 阅读全文

posted @ 2014-03-04 23:22 Bombe 阅读(162) 评论(0) 推荐(0) 编辑

2014年3月3日

【POJ】1160 Post Office

摘要: 还是DP,这题最开始想复杂了。移位前i个邮局确立后,想要再添加个邮局无法保证刚好在余下的部分。其实这道题,可以简单理解为先确立后i个邮局,则在确立i+1个邮局时,最后一个邮局是新添加线段的重点。而且,数组略开大点儿,否则RE。这还是第一次RE,还以为RE是要把cin/cout替换为scanf/printf呢,结果搞到现在。ACM和算法还得继续研究啊,DP的题目现在自己可以动手做很多了,水题wa几次也可以ac。下周继续。#include using namespace std;#include #define MAXNUM 305#define MAXVAL 0x7fint mymin(int 阅读全文

posted @ 2014-03-03 04:44 Bombe 阅读(347) 评论(0) 推荐(0) 编辑

导航