03 2014 档案

【HDOJ】1019 Least Common Multiple
摘要:gcd总是忘记,留存。 1 #include 2 3 int gcd(int a, int b) { 4 int r; 5 6 if (a<b) { 7 r = b; 8 b = a; 9 a = r;10 }11 12 while (b) {13 r = a % b;14 a = b;15 b = r;16 }17 18 return a;19 }20 21 int main() {22 int n, case_n;23 int... 阅读全文

posted @ 2014-03-31 22:51 Bombe 阅读(98) 评论(0) 推荐(0) 编辑

【HDOJ】1097 A hard puzzle
摘要:题目和1061非常相似,几乎可以复用。 1 #include 2 3 int buf[10][10]; 4 5 int main() { 6 int a, b; 7 int i, j; 8 9 for (i=0; i<10; ++i) {10 buf[i][0] = 1;11 buf[i][1] = i;12 for (j=2; j<10; ++j) {13 buf[i][j] = buf[i][j-1]*i%10;14 if (buf[i][j] == buf[i]... 阅读全文

posted @ 2014-03-31 22:36 Bombe 阅读(134) 评论(0) 推荐(0) 编辑

【HDOJ】1070 milk
摘要:题目注意性价比需要使用double类型。 1 #include 2 #include 3 4 #define NAMELEN 105 5 #define INS 9999999 6 7 typedef struct { 8 char name[NAMELEN]; 9 int price, v;10 } milkInfo_st;11 12 int main() {13 int case_n, n;14 milkInfo_st tmp, best;15 int i;16 double k, j;17 18 scanf("%d... 阅读全文

posted @ 2014-03-31 22:34 Bombe 阅读(173) 评论(0) 推荐(0) 编辑

【HDOJ】1020 Encoding
摘要:简单字符串处理。 1 #include 2 #include 3 4 #define MAXLEN 10005 5 6 char buf[MAXLEN]; 7 char des[MAXLEN]; 8 char tmp[MAXLEN]; 9 10 void myitoa(int a, char str[]) {11 int i=0, tmp=a;12 char ch;13 while (tmp) {14 ch = tmp%10+'0';15 str[i++] = ch;16 tmp = tmp / 10;17 ... 阅读全文

posted @ 2014-03-31 22:33 Bombe 阅读(112) 评论(0) 推荐(0) 编辑

【HDOJ】1048 The Hardest Problem Ever
摘要:其实这道题目可以没那么水。用状态机做的。 1 #include 2 #include 3 4 #define STARTSTR "START" 5 #define ENDSTR "END" 6 #define ENDINSTR "ENDOFINPUT" 7 #define ALPNUM 26 8 #define MAXNUM 105 9 10 char cipher[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";11 char plain[] = "VWXYZABCDEFGHIJKLM 阅读全文

posted @ 2014-03-31 22:31 Bombe 阅读(161) 评论(0) 推荐(0) 编辑

【HDOJ】1058 Humble Numbers
摘要:简单题,注意打表,以及输出格式。这里使用了可变参数。 1 #include 2 3 #define MAXNUM 5845 4 #define ANS 2000000000 5 6 int buf[MAXNUM]; 7 int min(int a, int b) { 8 return a<b ? a:b; 9 }10 11 int minn(int argc, ...) {12 int i, tmp;13 int *arg = &argc + 1;14 15 tmp = *arg;16 for (i=1; i<argc; ++i)17 ... 阅读全文

posted @ 2014-03-31 18:16 Bombe 阅读(138) 评论(0) 推荐(0) 编辑

【HDOJ】1061 Rightmost Digit
摘要:这道题目可以手工打表,也可以机器打表,千万不能暴力解,会TLE。 1 #include 2 3 #define MAXNUM 1000000001 4 5 int buf[10][10]; 6 7 int main() { 8 int case_n, n; 9 int i, j;10 11 for (i=0; i<10; ++i) {12 buf[i][0] = 1;13 buf[i][1] = i;14 for (j=2; j<10; ++j) {15 buf[i][j] = buf[i]... 阅读全文

posted @ 2014-03-31 17:37 Bombe 阅读(137) 评论(0) 推荐(0) 编辑

【原创翻译】Reducing Branch Delay to Zero in Pipelined Processors
摘要:在流水线处理器中减少分支延迟到零Antonio M. Gonzalez and Jose M. Llaberia 摘要一种减少流水处理器中分支延迟到零的机制将在本文被描述以及评估。这种机制基于多重预取、提早计算目标地址、延迟分支、并行执行分支条件。这种机制使用正如描述的分支目标指令存储器(Branch Target Instruction Memory)。下面将给出这种机制的分析模型,允许我们自己测试这套使用较低开销的机制的效率。这一模型不仅用来决定高速缓存的大小以最大化处理器性能,而且用来比较这套机制和其它策略的性能,还可以用来分析使用两种缓存体系的性能差异。关键词分支指令(Branch I 阅读全文

posted @ 2014-03-24 21:07 Bombe 阅读(391) 评论(0) 推荐(0) 编辑

【算法导论】学习笔记——第22章 图的基本算法
摘要:这两周,一直在做搜索类的题目,主要还是集中在深搜和广搜,下周将学习双广和A*。提到搜索,自然想到图,图这种数据结构,最开始学习的时候特别难。老师常说,树是特殊的图,图也比树一般化很多。深搜和广搜最开始的时候,总是搞不清楚,后来做课设的时候,总算会模拟了。现在才算系统的学习,可以运用自如。也因此,看了一下《算法导论》的搜索部分内容。1.广度优先搜索在给定图G=(V, E)和一个特定的源顶点s的情况下,广度优先搜索可以探索G中的边,从而发现s可到达的所有顶点,并计算s到各个可达顶点的距离,并生成以s为顶点、包含所有s可达顶点的最短路径。很多acm题目正是基于广搜的这样的特点而选择使用广搜而不是深搜 阅读全文

posted @ 2014-03-24 20:24 Bombe 阅读(632) 评论(0) 推荐(0) 编辑

【HDOJ】1253 胜利大逃亡
摘要:经典的BFS,需要注意的是当前时间超过最小时间,输出-1。同时,队列为空时还未返回,证明并未找到终点(可能终点为墙)。此时也应该输出-1,这个部分容易wa。 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 7 #define MAXNUM 50 8 #define SETPOS(pos,xx,yy,zz,tt) pos.x=xx;pos.y=yy;pos.z=zz;pos.t=tt; 9 10 typedef struct {11 int x, y, z;12 int t;13 ... 阅读全文

posted @ 2014-03-24 16:00 Bombe 阅读(196) 评论(0) 推荐(0) 编辑

【Python】代码行数统计
摘要:两级目录,可扩展为N级。 1 # Count the line of dir or file 2 3 import os, fnmatch, fileinput 4 5 def ChkFileType(lst): 6 tmp = lst 7 FileType = ['asm', 'c', 'cpp', 'h', 'ucf', 'v', 'java', 'm'] 8 for filename in tmp: 9 flg = 110 for types in FileTy 阅读全文

posted @ 2014-03-24 14:31 Bombe 阅读(374) 评论(0) 推荐(0) 编辑

【HDOJ】1264 Counting Squares
摘要:说这道题目是hash,但是我是暴力解的。 1 #include 2 #include 3 4 #define MAXNUM 101 5 #define ALLEQU(x1,y1,x2,y2) x1==y1 && y1==x2 && x2==y2 6 7 int array[MAXNUM][MAXNUM]; 8 9 int main() {10 int x1, y1, x2, y2;11 int begx, endx, begy, endy;12 int i, j, cnt=0;13 14 memset(array, 0, sizeof(array));... 阅读全文

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

【HDOJ】1260 Tickets
摘要:水DP,不过这道题目的数据好像有问题。24时制可表示范围是0~23,12时制可表示范围应为1~12。也就是说24点(即0点)其实表示为12:00:00am,而中午12:00:00其实表示为12:00:00pm,而且从12:00:00~12:59:59都是12:xx:xx pm,而13点开始则应该表示为01:xx:xx pm。题目数据比较小,虽然貌似不考虑这个也可以ac。但是,我个人是按规范做的。 1 #include 2 3 #define MAXNUM 2005 4 5 int times[MAXNUM]; 6 int adjacent[MAXNUM]; 7 int dp[MAXNUM... 阅读全文

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

【HDOJ】1261 字串数
摘要:这道题目居然是大数。。。最开始审题,发现公式为(sum{A1...An})! / (A1!*A2*...AN!)。所以需要处理乘法大数,显然不会,看了一下别人的模板。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 using namespace std;11 12 13 #define INF 9999999914 #define MAX 2715 16 short s[MAX];17 int sub[100];18 19... 阅读全文

posted @ 2014-03-23 16:41 Bombe 阅读(174) 评论(0) 推荐(0) 编辑

【HDOJ】1263 水果
摘要:hash,使用stl map ac。学了find_if等强大的东西,第一次使用stl模板。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 9 #define NAMENUM 2510 11 typedef struct fruit_st {12 char name[NAMENUM];13 char produce[NAMENUM];14 bool operator 0 ? false : true;17 e... 阅读全文

posted @ 2014-03-23 16:03 Bombe 阅读(330) 评论(0) 推荐(0) 编辑

【HDOJ】1258 Sum It Up
摘要:典型的深搜,剪枝的时候需要跳过曾经搜索过的相同的数目,既满足nums[i]=nums[i-1]&&visit[i-1]==0,visit[i-1]==0可以说明该点已经测试过。 1 #include 2 #include 3 4 #define MAXNUM 1005 5 6 int nums[MAXNUM]; 7 int visit[MAXNUM]; 8 int t, n; 9 10 void output() {11 int i, j=0;12 13 for (i=0; i=t || visit[index] || sum+nums[index]>n)26 ... 阅读全文

posted @ 2014-03-23 11:49 Bombe 阅读(303) 评论(0) 推荐(0) 编辑

【HDOJ】1262 寻找素数对
摘要:典型的二分决策树。而且本身两数和是偶数。 1 #include 2 #include 3 4 #define MAXNUM 10001 5 6 int isPrime[MAXNUM]; 7 8 int main() { 9 int i, j, tmp, sum;10 char ch;11 12 memset(isPrime, 1, sizeof(isPrime));13 isPrime[0] = isPrime[1] = 0;14 15 for (i=2; i=2 && j=2 && isPrime[i]==0)27 ... 阅读全文

posted @ 2014-03-23 11:47 Bombe 阅读(257) 评论(0) 推荐(0) 编辑

【HDOJ】1265 Floating Point Presentation
摘要:浮点数表示法,IEEE754标准,其实不用管,联合体搞定。但此题scanf有bug,需要进行强制类型转换。 1 #include 2 3 typedef union { 4 float a; 5 unsigned char ch[4]; 6 } fl_un; 7 8 int main() { 9 int case_n;10 int i;11 fl_un tmp;12 double d;13 14 scanf("%d", &case_n);15 16 while (case_n--) {17 tmp.a = 1... 阅读全文

posted @ 2014-03-23 11:45 Bombe 阅读(262) 评论(0) 推荐(0) 编辑

【HDOJ】1234 开门人和关门人
摘要:大水题,没想到还有人错。 1 #include 2 #include 3 #include 4 5 #define MAXNUM 1005 6 7 typedef struct { 8 char id[20]; 9 char in_t[15];10 char out_t[15];11 } person_st;12 13 person_st persons[MAXNUM];14 15 typedef struct {16 int index;17 int secs;18 } secs_st;19 20 secs_st in_secs[MAXNUM... 阅读全文

posted @ 2014-03-22 22:12 Bombe 阅读(155) 评论(0) 推荐(0) 编辑

【HDOJ】1225 Football Score
摘要:这种结构体排序的题,十分容易考上机题,qsort+结构体解决。马上就要机考了,多练习一下这样的题目也好。 1 #include 2 #include 3 #include 4 5 #define MAXNUM 100 6 #define NAMENUM 20 7 #define WIN 3 8 #define DRAW 1 9 10 typedef struct {11 char name[NAMENUM];12 int in, lost;13 int score;14 } team_st;15 16 team_st teams[MAXNUM];... 阅读全文

posted @ 2014-03-22 14:27 Bombe 阅读(238) 评论(0) 推荐(0) 编辑

【HDOJ】1222 Wolf and Rabbit
摘要:最大公约数,辗转相除。 1 #include 2 3 long long gcd(long long a, long long b) { 4 if (a<b) return gcd(b, a); 5 if (!b) 6 return a; 7 else 8 return gcd(b, a%b); 9 }10 11 int main() {12 int case_n;13 long long m, n;14 15 scanf("%d", &case_n);16 17 while (case_n--) {1... 阅读全文

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

【HDOJ】1248 寒冰王座
摘要:简单背包问题。水题。其实题目还可以不考虑350,因为350=200+150。 1 #include 2 3 #define MAXNUM 10001 4 #define TOOLNUM 3 5 6 int prices[TOOLNUM] = {150,200,350}; // order asc 7 int left[MAXNUM]; 8 9 int main() {10 int i, j, min;11 int case_n, n;12 13 for (i=0; i<MAXNUM; ++i) {14 min = i;15 f... 阅读全文

posted @ 2014-03-22 14:21 Bombe 阅读(153) 评论(0) 推荐(0) 编辑

【HDOJ】1249 三角形
摘要:数学题,与两条射线分割平面的题目很类似,也是使用递推求解。公式为f(n) = 6*(i-1)+f(n-1)。需要考虑,每次增加三角形会将三角形的边分割成多少分,从而增加多少个平面。 1 #include 2 3 #define MAXNUM 10001 4 5 int sep[MAXNUM] = {1,2}; 6 7 int main() { 8 int t, n; 9 int i;10 11 for (i=2; i<MAXNUM; ++i)12 sep[i] = 6*(i-1) + sep[i-1];13 14 scanf("%d", ... 阅读全文

posted @ 2014-03-22 14:20 Bombe 阅读(132) 评论(0) 推荐(0) 编辑

【HDOJ】1256 画8
摘要:这道题目居然wa了一次,注意划横线行末不再需要输出空格。 1 #include 2 3 int main() { 4 int case_n; 5 int i, j; 6 int height, width, up, down; 7 char ch; 8 9 scanf("%d", &case_n);10 11 while (case_n--) {12 getchar();13 scanf("%c %d", &ch, &height);14 width = height/6 + 1;15 ... 阅读全文

posted @ 2014-03-22 14:17 Bombe 阅读(136) 评论(0) 推荐(0) 编辑

【HDOJ】1211 RSA
摘要:按照公式推导可求。 1 #include 2 3 char power(int a, int b, int n) { 4 long long val = 1; 5 int i; 6 for (i=0; i<b; ++i) 7 val = (val*a)%n; 8 return (char)val; 9 }10 11 int main() {12 int p, q, e, l;13 int n, d, fn, num, tmp;14 char ch;15 16 while (scanf("%d%d%d%d", &... 阅读全文

posted @ 2014-03-21 18:22 Bombe 阅读(141) 评论(0) 推荐(0) 编辑

【HDOJ】1237 简单计算器
摘要:数据结构经典习题了,可以仅用一个栈,因为符号优先级很明显。 1 #include 2 3 #define MAXNUM 205 4 5 double stack[MAXNUM]; 6 7 int main() { 8 int top; 9 double m, n;10 char ch;11 12 while (scanf("%lf", &m) != EOF) {13 ch = getchar();14 if (ch=='\n') {15 if (m) {16 prin... 阅读全文

posted @ 2014-03-21 18:17 Bombe 阅读(171) 评论(0) 推荐(0) 编辑

【HDOJ】1233 还是畅通工程
摘要:并查集的典型应用——最小生成树,kruskal算法。#include #include #define MAXNUM 5000#define MAXN 1005typedef struct { int from, to; int val;} info_st;info_st path[MAXNUM];int root[MAXN];int num;int comp(const void *a, const void *b) { return ((info_st *)a)->val - ((info_st *)b)->val;}int find(int a) { int ... 阅读全文

posted @ 2014-03-21 17:26 Bombe 阅读(142) 评论(0) 推荐(0) 编辑

【HDOJ】1230 火星A+B
摘要:个人觉得这道题没那么水,wa了几次,才发现自己居然没有给srcb数组reset,打错了。搞死啊。 1 #include 2 #include 3 4 #define MAXNUM 26 5 int srca[MAXNUM]; 6 int srcb[MAXNUM]; 7 int isPrime[MAXNUM] = {2, 3, 5, 7, 11,13,17,19,23,29,31,37,41, 8 43,47,53,59,61,67,71,73,79,83,89,97,101}; 9 10 11 void reverse(int a[], in... 阅读全文

posted @ 2014-03-21 16:30 Bombe 阅读(282) 评论(0) 推荐(0) 编辑

【HDOJ】1232 畅通工程
摘要:并查集Union-Find,经典题目。而且也真的感受到了并查集提高的效率,之前写的O(n^3)的遍历,果然TLE。换并查集后,测试998 0数据时感受到了明显的快。 1 #include 2 3 #define MAXNUM 1005 4 5 int path[MAXNUM]; 6 7 int _find(int a) { 8 int i = a; 9 while (i != path[i])10 i = path[i];11 return i;12 }13 14 void _union(int a, int b) {15 int i =... 阅读全文

posted @ 2014-03-20 22:08 Bombe 阅读(132) 评论(0) 推荐(0) 编辑

【原创翻译】The Case for the Reduced Instruction Set Computer
摘要:RISC机的例子David A. Patterson加州大学伯克利分校计算机科学系David R. Ditzel贝尔实验室计算科学研究中心介绍计算机体系结构最主要的目标之一就是设计比之前产品具有更高成本效益的计算机。成本效益包括用于制造计算机的硬件成本、软件花费、在初始硬件和随后程序调试及测试所需的费用。如果我们回顾计算机家族的过往历史,我们会发现最常见的体系结构的变化倾向于朝向更复杂的机器。假设这一额外的复杂性对于新型产品的成本效益产生积极的平衡作用。在这篇论文中我们认为这一趋势并不总是有益于成本效益的,事实上,弊大于利。我们将针对RISC机和CISC机就成本效益进行验证。这篇论文将讨论下一 阅读全文

posted @ 2014-03-20 19:25 Bombe 阅读(790) 评论(0) 推荐(0) 编辑

【HDOJ】1231 最大公共子序列
摘要:经典DP。#include #define MAXNUM 10005int array[MAXNUM];int dp[MAXNUM];int main() { int n, beg, end, max; int i, k; dp[0] = 0; while (scanf("%d", &n)!=EOF && n) { k = 0; for (i=1; i= 0) k = 1; } if (k == 0) { printf("0 %d %d\n", array[1],... 阅读全文

posted @ 2014-03-20 10:45 Bombe 阅读(123) 评论(0) 推荐(0) 编辑

【HDOJ】1045 Fire Net
摘要:经典深搜。注意满足条件。 1 #include 2 #include 3 4 #define MAXNUM 5 5 6 char map[MAXNUM][MAXNUM]; 7 int visit[MAXNUM][MAXNUM]; 8 9 int chk(int row, int col, int n) {10 int i, k;11 12 if (row=n || col=n )13 return 0;14 if (visit[row][col] || map[row][col]!='.')15 return 0;16 17 ... 阅读全文

posted @ 2014-03-19 19:14 Bombe 阅读(249) 评论(0) 推荐(0) 编辑

【HDOJ】1033 Edge
摘要:题目英文太多,简单翻译了一下:1. For products that are wrapped in small packings it is necessary that the sheet of paper containing the directions for use is folded until its size becomes small enough. 对于那些使用小包包裹的产品,包含所使用方向的包装纸应当折叠起来并且足够小。 2. We assume that a sheet of paper is rectangular and only folded along li. 阅读全文

posted @ 2014-03-19 16:55 Bombe 阅读(284) 评论(0) 推荐(0) 编辑

【HDOJ】1027 Ignatius and the Princess II
摘要:这道题目最开始完全不懂,后来百度了一下,原来是字典序。而且还是组合数学里的东西。看字典序的算法看了半天才搞清楚,自己仔细想了想,确实也是那么回事儿。对于长度为n的数组a,算法如下:(1)从右向左扫描,找到满足a[i]a[i]的第一个j,也就是j = max{j|a[j]>a[i]},a[j]也是满足大于a[i]的最小数;(3)交换a[i]与a[j];(4)将a[j+1]与a[n]间的数字逆转。直接实现算法: 1 #include 2 3 #define MAXNUM 1005 4 5 int array[MAXNUM]; 6 7 void chgonce(int n) { 8 ... 阅读全文

posted @ 2014-03-19 11:51 Bombe 阅读(177) 评论(0) 推荐(0) 编辑

【HDOJ】1028 Ignatius and the Princess III
摘要:DP问题,二维。 1 #include 2 3 #define MAXNUM 125 4 int dp[MAXNUM][MAXNUM] = {0}; 5 6 int main() { 7 int n, i, j; 8 9 for (i=1; ij)18 dp[i][j] = dp[i-j][j] + dp[i][j-1];19 if (i<j)20 dp[i][j] = dp[i][i];21 }22 while (scanf("%d",&n) != EOF)... 阅读全文

posted @ 2014-03-18 22:30 Bombe 阅读(112) 评论(0) 推荐(0) 编辑

【HDOJ】1026 Ignatius and the Princess I
摘要:这道题搞了很久啊。搜索非常好的一道题。昨天想了2小时,以为是深搜,但后来发现深搜怎么也没法输出正确路径。今天拿宽搜试了一下,问题就是普通的队列宽搜没法得到当前时间最小值。看了一下讨论区,发现优先级队列。好久不用了,都忘记了。各种忘记,优先级队列排序都忘掉了。搞了好半天。最后还需要注意的是格式化输出,采用栈格式输出。需要保存每个节点的移动方向。并且注意若终点是怪兽,还是需要"Fight"。这道题目感觉不是一道水题,还挺不错。 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace st. 阅读全文

posted @ 2014-03-18 11:28 Bombe 阅读(183) 评论(0) 推荐(0) 编辑

【HDOJ】1241 Oil Deposits
摘要:经典的BFS。 1 #include 2 #include 3 4 #define MAXNUM 105 5 #define MAXROW 105 6 #define MAXQUE 10005 7 8 char buf[MAXROW][MAXNUM]; 9 char visit[MAXROW][MAXNUM];10 11 typedef struct {12 int x, y;13 } pos_st;14 15 pos_st queue[MAXQUE];16 int direct[8][2] = {{0,-1},{-1,-1},{-1,0},{-1,1},{0,1},{1,1}... 阅读全文

posted @ 2014-03-17 11:36 Bombe 阅读(129) 评论(0) 推荐(0) 编辑

【HDOJ】1200 To and Fro
摘要:简单字符串练习,不用想太多,直接printf。#include #include #define MAXCHARNUM 205char buf[MAXCHARNUM];char org[MAXCHARNUM];/* * t o i o y h p k n n // n n k p h e l e a i r a h s g // g s h a r e c o n h s e m o t // t o m e s n l e w x * toioynnkpheleaigshareconhtomesnlewx * theresn oplacel ikehome onasn... 阅读全文

posted @ 2014-03-16 22:53 Bombe 阅读(166) 评论(0) 推荐(0) 编辑

【HDOJ】1207 汉诺塔II
摘要:这道题目单纯用找规律解得,自己求了很多值,发现规律。相邻dx的数,会相差2^n,需要求对dx。#include int main() { int tower[65] = {0}; int i, j=1, k=1, shift=0, n; for (i=1; ik) { j++; k = (j+1)*j/2; shift++; } tower[i] = tower[i-1] + (1<<shift); } while (scanf("%d", &n) != EOF) ... 阅读全文

posted @ 2014-03-16 22:51 Bombe 阅读(150) 评论(0) 推荐(0) 编辑

【HDOJ】1204 糖果大战
摘要:题目本身不难。类似于dp。f(i)表示手中现有i颗糖果赢的概率,则下一局赢的概率是p(1-q),下一局输的概率是q(1-p),下一句平手的概率是1-p(1-q)-q(1-p),平手包括两人均答对或答错。那么可推导状态转移方程:f(i) = p(1-q)f(i-1) + q(1-p)f(i+1) + [ 1-p(1-q)-q(1-p) ]f(i)归并相同项可以得到等比数列,p(1-q)(f(i) - f(i-1)) = q(1-p)(f(i+1) - f(i))。设定比例系数,并利用等比数列求和公式可求。其中需要注意的是,f(0)=0,f(n+m)=1,因为手中若已经有n+m颗糖果,则已经获得全 阅读全文

posted @ 2014-03-16 22:49 Bombe 阅读(324) 评论(0) 推荐(0) 编辑

【HDOJ】1408 盐水的故事
摘要:简单题,感觉非常简单,像小学奥数的植树问题。#include #include #define MAXNUM 5001int main() { double vul, d; int i, k, time, tmp; while (scanf("%lf %lf", &vul, &d) != EOF) { tmp = ceil(vul / d); k = 0; for (i=1; i= tmp) break; } time = tmp + i-1; printf("%... 阅读全文

posted @ 2014-03-14 22:26 Bombe 阅读(163) 评论(0) 推荐(0) 编辑

【HDOJ】1405 The Last Practice
摘要:简单题,感觉求素数的算法太慢了。以前在SPOJ上交的效率要高很多。注意输出格式,容易PE。 1 #include 2 #include 3 4 #define MAXNUM 65536 5 6 int array[MAXNUM]; 7 int prime[7000]; 8 int nums[MAXNUM]; 9 10 int main() {11 int case_n = 0;12 int n;13 int i, j, k;14 15 memset(array, 1, sizeof(array));16 k = 0;17 for (i=2... 阅读全文

posted @ 2014-03-14 22:25 Bombe 阅读(117) 评论(0) 推荐(0) 编辑

【DataStructure In Python】Python模拟二叉树
摘要:使用Python模拟二叉树的基本操作,感觉写起来很别扭。最近做编译的优化,觉得拓扑排序这种东西比较强多。近期刷ACM,发现STL不会用实在太伤了。决定花点儿时间学习一下STL。Boost其实也很强大。关于Python最近没什么时间搞了,忙着复试了。不过,挺喜欢这语言的。复试完继续大战PythonChallenge。 1 #! /usr/bin/env python 2 # DataStrucure Tree 3 4 import sys 5 6 class BTNode: 7 8 def __init__(self, data, lchild=None, ... 阅读全文

posted @ 2014-03-13 22:29 Bombe 阅读(555) 评论(0) 推荐(0) 编辑

【HDOJ】2093 考试排名
摘要:水题,考察结构体以及格式化输出,马上就要机试了,这道题挺好,留下来。 1 #include 2 #include 3 #include 4 5 #define MAXNUM 10005 6 7 typedef struct { 8 int ac; 9 int time;10 char name[12];11 } student_st;12 13 student_st students[MAXNUM];14 15 int comp(const void *a, const void *b) {16 student_st *p1 = (student_st... 阅读全文

posted @ 2014-03-13 13:47 Bombe 阅读(270) 评论(0) 推荐(0) 编辑

【HDOJ】2553 N皇后问题
摘要:超级经典神搜,这题以前做过,知道需要打表。没优化。#include #include #define MAXNUM 12/*int queens[MAXNUM][MAXNUM];int count;int dir[4][2] = {{-1,-1},{-1,1},{1,1},{1,-1}};void dfs(int c, int n) { int i, j, tmp; int x, y, dx, dy; for (i=1; i=1 && x=1 && y<=n) { if (queens[x][y]) { tm... 阅读全文

posted @ 2014-03-12 20:44 Bombe 阅读(145) 评论(0) 推荐(0) 编辑

【HDOJ】2062 Subset sequence
摘要:这道题目非常好,饶了点儿圈子。我的思路是,先按照组排列。例如,1 2 31 2 2 1 3 11 2 3 2 1 3 3 1 21 3 2 3 3 21 3 2 2 3 1 3 2 1分成3组,每组个数是确定的,因此可以通过m/组数获得第一个数字,然后组数因n--而减小。重新计算属于哪一组,但此时需要考虑printf的数字,因此使用visit数组保证每个数字仅遍历一次。需要注意的是m应先--,这样第1个和第5个可以保证在同一组内。组后需要注意long long,题目非常好。#include #include #define MAXNUM 25long long each_gp[MAXNUM] 阅读全文

posted @ 2014-03-12 14:09 Bombe 阅读(395) 评论(0) 推荐(0) 编辑

【HDOJ】2058 The sum problem
摘要:首先使用高斯公式,求出a,b代数式。然后就需要检验是否满足条件。注意(a+b)(b-a+1)=2*m,存在约数关系。使用蛮力遍历会TLE。注意约数关系及printf的顺序即可。#include #include int main() { int n, m, a, b; int k; while (scanf("%d %d", &n, &m)!=EOF && (n||m)) { for (k=sqrt(m*2); k>=1; --k) { if ((2*m)%k !=0) continue; ... 阅读全文

posted @ 2014-03-12 13:57 Bombe 阅读(147) 评论(0) 推荐(0) 编辑

【HDOJ】2057 A + B Again
摘要:脑残题目,这题没出好。#include int main() { long long a, b; while (scanf("%I64X %I64X", &a, &b) != EOF) { a+=b; if (a<0) { printf("-"); a = -a; } printf("%I64X\n", a); } return 0;} 阅读全文

posted @ 2014-03-12 13:55 Bombe 阅读(119) 评论(0) 推荐(0) 编辑

【HDOJ】2056 Rectangles
摘要:水题,比较烦,搞清楚计算公式即可。#include double mymax(double a, double b) { return a>b ? a:b;}double mymin(double a, double b) { return a=x1 && y2>=y1) printf("%.2lf\n",tmp); else printf("0.00\n"); } return 0;}View Code 阅读全文

posted @ 2014-03-12 13:54 Bombe 阅读(211) 评论(0) 推荐(0) 编辑

【HDOJ】2053 Switch Game
摘要:注意提示,水题。#include int main() { int n; int i, tmp; while (scanf("%d", &n) != EOF) { tmp = 0; for (i=1; i<=n; ++i) if (n%i == 0) tmp++; if (tmp&1) printf("1\n"); else printf("0\n"); } return 0;} 阅读全文

posted @ 2014-03-12 13:53 Bombe 阅读(124) 评论(0) 推荐(0) 编辑

【HDOJ】2051 Bitset
摘要:水题。#include #include #define MAXNUM 32char bin[MAXNUM];void itob(int a, char bin[]) { int tmp = a, i=0; char ch; memset(bin, 0, sizeof(bin)); do { ch = tmp&1; bin[i++] = ch + '0'; tmp = tmp >> 1; } while (tmp > 0); // bin[i] = '\0';}int main() { int n; in... 阅读全文

posted @ 2014-03-12 13:52 Bombe 阅读(148) 评论(0) 推荐(0) 编辑

【POJ】1054 The Troublesome Frog
摘要:题目是非常经典的搜索+剪枝。题意简言之就是,青蛙需要沿着直线踩着踏点通过田地,并且踏点需要至少为3。问哪条路径青蛙踩坏的作物最多。很好的一个条件是青蛙每次移动都是等间距的。题目需要注意将其排序。#include using namespace std;#define MAXNUM 5005typedef struct { int x, y;} point_st;point_st points[MAXNUM];bool Fields[MAXNUM][MAXNUM];int r, c, n;int comp(const void *a, const void *b) { point_s... 阅读全文

posted @ 2014-03-11 18:18 Bombe 阅读(178) 评论(0) 推荐(0) 编辑

【HDOJ】2049 不容易系列之(4)——考新郎
摘要:与2048非常类似,在2048的基础上考虑组合情况即可。比较简单,但要注意乘法溢出。#include #define MAXNUM 22unsigned long long tb[MAXNUM] = {1,0,1};unsigned long long factorial[MAXNUM] = {1,1,2};int main(){ int case_n, n, m; int i; scanf("%d", &case_n); for (i=3; i<MAXNUM; ++i) { tb[i] = (i-1) * (tb[i-1] + tb[i-2]); ... 阅读全文

posted @ 2014-03-11 14:30 Bombe 阅读(142) 评论(0) 推荐(0) 编辑

【HDOJ】2048 神、上帝以及老天爷
摘要:简单递推。第n个人可与n-1个错拿的人中任意一人交换字条即可,或者假设前n-1个人有一人拿对了,但其余n-2个人均拿错了,只需要交换n-1与n即满足条件。因此,f(n) = (n-1)*f(n-1) + (n-1)*f(n-2),即f(n)=(n-1)*( f(n-1)+f(n-2) )。#include #define MAXNUM 22double tb[MAXNUM] = {0,0,1};int main(){ int case_n, n; double tmp; int i; scanf("%d", &case_n); for (i=3; i<MAXN 阅读全文

posted @ 2014-03-11 14:27 Bombe 阅读(396) 评论(0) 推荐(0) 编辑

【HDOJ】2050 折线分割平面
摘要:推导数学公式,如何选择最大第n个折线的最大重叠,必须要保证每条折线均与n-1个折线相交,此时新增加4(n-1)条线段,2条射线,但由于折线相交,则f(n) = f(n-1) + 4*(n-1) + 2-1 = f(n-1)+4(n-1)+1,依次代入可得f(n)=f(1)+2n^2-n-1,f(1)=2,则f(n)=2*n^2-n+1。#include int main() { int case_n, n; scanf("%d", &case_n); while (case_n--) { scanf("%d", &n); printf(& 阅读全文

posted @ 2014-03-11 14:22 Bombe 阅读(133) 评论(0) 推荐(0) 编辑

【Pyhton Network】使用poll()或select()实现非阻塞传输
摘要:通常情况下,socket上的I/O会阻塞。即除非操作结束,否则程序不会照常进行。而以下集中情况需要在非阻塞模式下进行:1. 网络接口在等待数据时是活动的,可以做出相应;2. 在不使用线程或进程的情况下也可以同时处理多个网络相关任务;3. 在网络上等待的时候可以执行其它计算在以上情况中,可以使用两个标准工具解决,poll和select。它们都可以通知操作系统哪个socket对程序感兴趣,当该socket上有事件发生时,操作系统才调用处理程序。服务器程序每隔5秒向连接对象发送系统当前时间,如下:#! /usr/bin/env python# Delaying Server - Chapter 5 阅读全文

posted @ 2014-03-11 10:21 Bombe 阅读(330) 评论(0) 推荐(0) 编辑

【Python Network】getaddrinfo处理Family参数
摘要:本实例通过命令行取得主机和端口的信息,使用SOCK_STREAM请求一个TCP socket。使用AF_INET或AF_INET6指定协议,但本实例并不指定协议,而是通过查询匹配得出适用的协议。 1 #! /usr/bin/env python 2 # Connect Example with IPv4 Awarness - Chapter 5 - ipv4connect.py 3 4 import socket, sys 5 6 def getaddrinfo_pref(host, port, socktype, familypreference = socket.AF_INET): 7.. 阅读全文

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

【Python Network】分解DNS查询结果
摘要:针对DNS查询records,通过NS、PTR、CNAME和MX类别不同,返回数据将包含另外主机名。为了解最终的IP地址,通过将返回信息分解。继续使用PyDNS获取详细信息。#! /usr/bin/env python# DNS query program - Example 4 - DNSquery.pyimport sys, DNS, re, DNSanydef getreverse(query): """ Given the query, returns an approciate reverse lookup string under IN-ADDR.AR 阅读全文

posted @ 2014-03-10 22:07 Bombe 阅读(666) 评论(0) 推荐(0) 编辑

【HDOJ】2199 Can you solve this equation?
摘要:二分查找,注意精度,1e-10可解。#include #include using namespace std;double fun(double x) { return 8.0*pow(x, 4.0)+7.0*pow(x, 3.0)+2.0*pow(x, 2.0)+3.0*x+6.0;}int main() { int case_n; double y; double l, r, tmp; cin >>case_n; while (case_n--) { cin >>y; l = 0.0; r = 100.0; ... 阅读全文

posted @ 2014-03-10 17:35 Bombe 阅读(117) 评论(0) 推荐(0) 编辑

【HDOJ】1010 Tempter of the Bone
摘要:经典搜索+剪枝,这还是第一次知道什么是剪枝,主要还是奇偶剪枝,这题非常经典。#include #include using namespace std;#define MAXNUM 10int n, m, t;char maze[MAXNUM][MAXNUM];// upper, lower, left and rightint direction[4][2] = {{-1, 0}, {1, 0}, {0, -1}, {0, 1}};int si, sj, di, dj;bool survive;void dfs(int si, int sj, int cnt) { int tmp1, ... 阅读全文

posted @ 2014-03-10 17:33 Bombe 阅读(154) 评论(0) 推荐(0) 编辑

【HDOJ】2047 阿牛的EOF牛肉串
摘要:递推,公式为kinds[i] = (kinds[i-1] + kinds[i-2]) * 2。考虑最后一个为E/F,有2*kinds[i-1]种情况;最后一个若为o,则倒数第二个则为E/F,则有2*kinds[i-2]种情况。两者相加,推得公式。#include #define MAXNUM 45unsigned long long kinds[MAXNUM] = {1, 3};int main() { int n; int i; for (i=2; i<MAXNUM; ++i) { kinds[i] = ( kinds[i-1] + kinds[i-2] ) ... 阅读全文

posted @ 2014-03-10 12:44 Bombe 阅读(133) 评论(0) 推荐(0) 编辑

【HDOJ】2124 Repair the Wall
摘要:经典贪心,这样的贪心AC了很多了。#include #define MAXNUM 605int length[MAXNUM];int comp(const void *a, const void *b) { return *(int *)b - *(int *)a;}int main() { int n, l; int i, tmp, cnt; while (scanf("%d %d", &l, &n) != EOF) { for (i=0; i<n; ++i) scanf("%d", &length[i]); qsor.. 阅读全文

posted @ 2014-03-10 12:15 Bombe 阅读(128) 评论(0) 推荐(0) 编辑

【HDOJ】2046 骨牌铺方格
摘要:Fibonacci数列,简单递推。#include #define MAXNUM 55long long kinds[MAXNUM] = {1,1};int main() { int i; int n; for (i=2; i<MAXNUM; ++i) kinds[i] = kinds[i-1] + kinds[i-2]; while (scanf("%d", &n) != EOF) { printf("%I64d\n", kinds[n]); } return 0;} 阅读全文

posted @ 2014-03-10 12:14 Bombe 阅读(140) 评论(0) 推荐(0) 编辑

【DataStructure In Python】Python实现各种排序算法
摘要:使用Python实现直接插入排序、希尔排序、简单选择排序、冒泡排序、快速排序、归并排序、基数排序。#! /usr/bin/env python# DataStructure Sort# InsertSortdef InsertSort(lst, end=None, beg=0, space=1): if end is None: end = len(lst) for i in range(beg, end, space): tmp = lst[i] j = i-space while j>=beg and tmp 3->1 ... 阅读全文

posted @ 2014-03-10 09:49 Bombe 阅读(317) 评论(0) 推荐(0) 编辑

【Python Network】权威域名服务器级联查询
摘要:如果PyDNS库,跳过本地名称服务器,直接向权威名称服务器查询。如baidu.com查询.com域名服务器,并从各个域名服务器中查询下一即域名,并输出相关信息。#! /usr/bin/env python# Expanded DNS library example - Chapter 4 - DNSany.pyimport sys, DNSdef hierquery(qstring, qtype): """Given a query type qtype, returns answers of that type for lookup qstring. If no 阅读全文

posted @ 2014-03-09 22:02 Bombe 阅读(631) 评论(0) 推荐(0) 编辑

【HDOJ】1257 最少拦截系统
摘要:这道题目是书中的DP的习题,但是也可以按贪心做。需要注意的是100 60 30 40 10 20的结果应该是2,而不是3,因为100 60 30 20可以构成降序序列,40 10是另一个。注意这点即可。#include #define MAXNUM 1005int heights[MAXNUM];int visit[MAXNUM];int main() { int n, amount; int i, j, tmp; while (scanf("%d", &n) != EOF) { for (i=0; i<n; ++i) scanf("%d" 阅读全文

posted @ 2014-03-09 17:07 Bombe 阅读(110) 评论(0) 推荐(0) 编辑

【HDOJ】1502 Regular Words
摘要:大数+DP,感觉这个DP有点儿抽象,而且这个是大数,wa了很多次。#include #define MAXNUM 61#define MAXLEN 100typedef struct { char val[MAXLEN];} src_st;src_st dp[MAXNUM][MAXNUM][MAXNUM];void BigIntAdd(src_st *a, src_st *b) { int i; for (i=0; ival[i] += b->val[i]; if (a->val[i] >= 10) { a->val[i+1]++; ... 阅读全文

posted @ 2014-03-09 16:10 Bombe 阅读(204) 评论(0) 推荐(0) 编辑

【HDOJ】2044 一只小蜜蜂...
摘要:当年的考试题目啊。经典递推,Fibonacci数列,同样注意long long。#include #define MAXNUM 55unsigned long long path[MAXNUM] = {1,1,2};int main() { int a, b; int j; int case_n; scanf("%d", &case_n); for (j=3; j<MAXNUM; ++j) { path[j] = path[j-1] + path[j-2]; } while (case_n--) { scanf("%d %d... 阅读全文

posted @ 2014-03-09 12:01 Bombe 阅读(146) 评论(0) 推荐(0) 编辑

【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 阅读(181) 评论(0) 推荐(0) 编辑

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

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

【HDOJ】2111 Saving HDU
摘要:超水贪心,贴上来是因为例子太经典了,可以比较DP和贪心的不同。(部分背包和0/1背包)#include #include #define MAXNUM 105int treas[MAXNUM][2];int comp(const void *a, const void *b) { return *(int *)b - *(int *)a;}int main() { int v, n; int i, j, tmp; while (scanf("%d", &v)!=EOF && v) { scanf("%d", &n); fo 阅读全文

posted @ 2014-03-08 17:13 Bombe 阅读(166) 评论(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 阅读(554) 评论(0) 推荐(0) 编辑

【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 阅读(260) 评论(0) 推荐(0) 编辑

【HDOJ】2084 数塔
摘要:大水题,不过是经典DP,最基本的DP了。#include #define MAXNUM 105int val[MAXNUM][MAXNUM];int sums[MAXNUM][MAXNUM];int mymax(int a, int b) { return a>b ? a:b;}int main() { int i, j, tmp; int height, case_n; scanf("%d", &case_n); while (case_n--) { scanf("%d", &height); memset(sums, 0, si 阅读全文

posted @ 2014-03-07 18:36 Bombe 阅读(127) 评论(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 阅读(337) 评论(0) 推荐(0) 编辑

【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 阅读(171) 评论(0) 推荐(0) 编辑

【HDOJ】1008 Elevator
摘要:这是一道水题,贴出来是因为等待电梯需要注意,比如楼层相同,2->2仍旧需要停,停的总时间就是n。但这显然不是正常的电梯(因为这种非正常状况wa),最开始我思考的时候是临近的楼层相同则不停,停的层数用wait表示,如下所示:#include #define MAXNUM 1005int floors[MAXNUM];int main() { unsigned int n; unsigned int sum, wait, up, down; unsigned int i, j; while (scanf("%d", &n) != EOF && n) 阅读全文

posted @ 2014-03-06 17:03 Bombe 阅读(128) 评论(0) 推荐(0) 编辑

【HDOJ】1049 Climbing Worm
摘要:经典贪心,够水。搞清楚方程即可。#include #define MAXNUM 105int inches[MAXNUM];int main(void){ int n, u, d; int i; while (scanf("%d %d %d", &n, &u, &d)!=EOF && n) { memset(inches, 0, sizeof(inches)); for (i=1; i<=n; ++i) { if (i <= u) inches[i] = 1; else ... 阅读全文

posted @ 2014-03-06 15:40 Bombe 阅读(140) 评论(0) 推荐(0) 编辑

【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 阅读(196) 评论(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 阅读(202) 评论(0) 推荐(0) 编辑

【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 阅读(163) 评论(0) 推荐(0) 编辑

【HDOJ】1024 Max Sum Plus Plus
摘要:经典DP,但是各种TLE、RE,还是C写的。#include #define MAXNUM 1000006#define INF 0xffffffffffffffffint mymax(int a, int b) { return a>b ? a:b;}int cur[MAXNUM];int pre[MAXNUM];int num[MAXNUM];int main() { int i, j; long long cur_max; int n, m; while (scanf("%d %d", &m, &n) != EOF) { memset(n... 阅读全文

posted @ 2014-03-04 17:20 Bombe 阅读(136) 评论(0) 推荐(0) 编辑

【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 阅读(348) 评论(0) 推荐(0) 编辑

【HDOJ】1203 I NEED A OFFER!
摘要:DP问题。#include #define MAXNUM 10002int main() { int m, n; int cost[MAXNUM]; // the Cost for every school float prob[MAXNUM]; // the probality for every school float probs[MAXNUM]; // the probality for All-amount-money int i, j; while ( scanf("%d %d", &n, &m)!=EOF && (m||n)) 阅读全文

posted @ 2014-03-02 17:15 Bombe 阅读(147) 评论(0) 推荐(0) 编辑

【POJ】1692 Crossed Matchings
摘要:经典DP,想了很久,开始想复杂了。#include using namespace std;#define MAXNUM 100int mymax(int a, int b) { return (a>b) ? a:b;}int main() { int case_n; int a_n, b_n; int i, j; int a[MAXNUM], b[MAXNUM]; int match[MAXNUM][MAXNUM]; int max_a2b[MAXNUM][MAXNUM], max_b2a[MAXNUM][MAXNUM]; cin >>case... 阅读全文

posted @ 2014-03-02 15:48 Bombe 阅读(272) 评论(0) 推荐(0) 编辑

【HDOJ】2037 今年暑假不AC
摘要:qsort排序后DP,水题。注意,数组开大点儿,把时间理解为0~23,开太小会wa。#include #include #define MAXNUM 100int comp(const void *a, const void *b) { return *(int *)a - *(int *)b;}int mymax(int a, int b) { return (a>b) ? a:b;}int main() { int time[MAXNUM][2], n; int i, j, end; int num[MAXNUM]; while (scanf("%d",... 阅读全文

posted @ 2014-03-01 23:01 Bombe 阅读(255) 评论(0) 推荐(0) 编辑

【HDOJ】1326 Box of Bricks
摘要:大水题一道,千万别理解复杂。#include #define MAXNUM 50int main() { int heights[MAXNUM], n; int i, j, tmp, avg; j = 0; while (1) { scanf("%d", &n); if (n == 0) break; tmp = 0; for (i=0; i avg) { tmp += (heights[i]-avg); } } ... 阅读全文

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

【HDOJ】1720 A+B coming
摘要:水题。#include #include #define MAXNUM 1005int stoi(char);int main() { char sa[MAXNUM], sb[MAXNUM]; int a, b; int i; while (scanf("%s %s", sa, sb) != EOF) { a = 0; for (i=0; i='0' && ch='A' && ch='a' && ch<='f') return ch-'a'+ 阅读全文

posted @ 2014-03-01 22:12 Bombe 阅读(160) 评论(0) 推荐(0) 编辑

【POJ】1141 Brackets Sequence
摘要:经典DP问题,注意输入不要使用while(xxx != EOF),否则WA,测试数据只有一组。同样的测试数据可能有多种答案。但最小长度唯一。一定不能用while,切记。#include using namespace std;#include #define MAXNUM 200#define MAXVAL 32767string match(char []);int main() { string regstr; char str[MAXNUM]; cin >>str; regstr = match(str); cout =0; i--) { fo... 阅读全文

posted @ 2014-03-01 10:40 Bombe 阅读(193) 评论(0) 推荐(0) 编辑

导航

点击右上角即可分享
微信分享提示