摘要: 题目描述:http://poj.org/problem?id=1321典型的凸包 ,求凸包周长再加上一个圆的周长注意:输出时别用%.lf 原因:http://bbs.byr.cn/#!article/ACM_ICPC/4537932ms如果你想研究者道题的话还是绕道吧,看一下那些大牛的代码把#include <stdio.h>#include <stdlib.h>#include<math.h>struct a{ int x; int y; double an;};int si=-1;void push(struct a a[],struct a s){ s 阅读全文
posted @ 2012-03-28 11:22 枫月寒 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://poj.org/problem?id=1163简单的动态规划问题,因为数据是三角形,所以用到了数组的压缩存储假设数据用a[][]存储 dp[i][j]表示第i行第j个位置可以取到的最大值动态规划dp[i][j]=max{dp[i-1][j],dp[i-1][j-1]}+a[i][j];虽然节省了空间,但代码显然比预想的要乱代码如下:#include <stdio.h>#include <stdlib.h>short a[5100];short dp[5100];short pos1(int i,int j){ return a[i*(i+1)/2 阅读全文
posted @ 2012-03-19 22:09 枫月寒 阅读(199) 评论(0) 推荐(0) 编辑
摘要: 不得不说本人愚盹,动态规划的题也做了不少,但就是不得要领。此题 实质上是求最长公共子串,最长公共字串的dp解法想了半天想不出来,只能看百度百科了http://baike.baidu.com/view/2020307.htm。题目描述:http://poj.org/problem?id=1159求完公共子串长度,然后用总长度一减即是结果没用滚动数组,short 水过代码:#include <stdio.h>#include <stdlib.h>short maxS(short a,short b){ return a>b?a:b;}short dp[5002][50 阅读全文
posted @ 2012-03-16 16:45 枫月寒 阅读(263) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://poj.org/problem?id=1102模拟液晶显示屏注意:1. 最好用数组接收n,避免001这种只输出1的情况2.每位数字后都有空格,不必考虑去掉最后一位的空格,否则PE我将数整体分成了五段代码如下:#include <stdio.h>#include <stdlib.h>#include <math.h>#include <string.h>;int main(int argc, char** argv) { int n,i,d,j,j1,i1; char a[20]; int b1[10]={1,0,1,1,0 阅读全文
posted @ 2012-03-11 13:11 枫月寒 阅读(233) 评论(0) 推荐(0) 编辑
摘要: 一开始以为是动态规划呢,因为题号是从动态规划题目列表中找到的,但后来实在做不出来,也没做过NIM游戏,看了看一些大牛的解题资料,然后看了NIM游戏,才做了出来。NIM游戏 百度百科讲的很详细:http://baike.baidu.com/view/1101962.htm题目描述:http://poj.org/problem?id=1704假设出现整个格子两两一对都互相挨着的情况(如果是奇数,则最左边的棋子在最左边的位置,即1位,假设和0位互相挨着),那么无论第一个人怎么移动,第二个人总能弄出两两一对都互相挨着的情况,那么谁先作出这种情况,那么他就胜利了。而两两之间的格子恰巧可以看成NIM游戏。 阅读全文
posted @ 2012-03-10 12:04 枫月寒 阅读(187) 评论(0) 推荐(0) 编辑
摘要: memset相信总是用c的童鞋不会陌生百度百科给的定义是:将s所指向的某一块内存中的每个字节的内容全部设置为ch指定的ASCII值, 块的大小由第三个参数指定,这个函数通常为新申请的内存做初始化工作, 其返回值为指向S的指针。原先我总是以为memset是初始化数组的最好方式,比for帅得多,直到最近做了一道题才发现不是这样的。。比如:#include <stdio.h>#include <stdlib.h>int main(int argc, char** argv) { int a[5]; int i; memset(a,2,sizeof(a)); for(i=0;i 阅读全文
posted @ 2012-02-03 20:12 枫月寒 阅读(1273) 评论(0) 推荐(0) 编辑
摘要: 不得不说,这道提让我懂了很多,第一次知道memset初始化是按字节初始化的这道题用自己的方法A了以后,发现discuss里面都说用floyd,然后决定用floyd A一次应该是数据太水了 两个都是0Ms 400k左右两个程序不同之处也就是找最短路径时不一样一个floyd的教程:http://www.cnblogs.com/twjcnblog/archive/2011/09/07/2170306.html我自己想的方法#include <stdio.h>#include <stdlib.h>#include <string.h>int dp[150][150] 阅读全文
posted @ 2012-02-03 18:07 枫月寒 阅读(229) 评论(0) 推荐(0) 编辑
摘要: 被一些不必要得东西夺走了太多的时间,心终于是踏实下来了,加油了! 阅读全文
posted @ 2012-01-31 20:20 枫月寒 阅读(87) 评论(0) 推荐(0) 编辑
摘要: http://www.5xue.com/modules/bbs/viewthread.php?tid=184001我的路还很长啊,但时间已经不太够了。要更加努力呀! 阅读全文
posted @ 2011-11-12 04:47 枫月寒 阅读(92) 评论(0) 推荐(0) 编辑
摘要: 我的第一道线段树题目,虽然一次提交成功,但1188MS的时间有点让人无法接受题目链接:http://poj.org/problem?id=3368做题过程中,写错了一个参数,结果调试了一个多小时,汗。。。。。不过看了discuss后,此题可用RMQ解,但我还不知道神马是RMQ线段树解法:此题我用了离散化,将相同连续的数列作为一个节点,查找时如果查找到叶子节点时,返回所查找的当前数列长度,其他地方和普通线段树无差别代码如下:#include <stdio.h>#include <stdlib.h>struct node{ int l; int r;}n1[100005]; 阅读全文
posted @ 2011-11-06 16:24 枫月寒 阅读(183) 评论(0) 推荐(0) 编辑