自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

原创 螺旋队列

<br />题目是在《程序员面试宝典》(第一版)上看到的。<br /> <br />给出螺旋队列:<br />21 22 ...<br />20 07 08 09 10<br />19 06 01 02 11<br />18 05 04 03 12<br />17 16 15 14 13<br /> <br />实际输出的时候,01->1,以此类推。<br /> <br />以1为原点,右为x+,下为y+,给出坐标(m,n),输出该坐标上的数字。<br /> <br />思路:想明白之后会觉得非常简单。<b

2011-01-02 14:38:00 286

原创 ZOJ Problem Set - 1117

<br />ZOJ Problem Set - 1117<br />http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1117<br /> <br />这个就是Huffman编码的应用,无损压缩,而且能够证明是无损压缩最优的方法。<br />做法就是Huffman树的画法,大学的时候画了不知道多少棵了。。<br />与字母相对于的编码可以递归求出。<br /> <br />乍一看完题,没懂为啥分配在贪婪问题里,但稍微一想,这果然是贪婪的

2010-12-05 13:42:00 763

原创 ZOJ Problem Set - 1076

<br />ZOJ Problem Set - 1076<br />http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=76<br /> <br />这个比较简单,一次就AC了,简单说下贪婪策略。<br />1 首先按照Exon的结束点非降序排序;<br />2 遍历有序列,若当前结点与前一个结点有重叠,则删除当前结点。<br />用反证法能够很容易证明该贪婪策略能贪出最优结果。<br /> <br />#include <iostream>

2010-12-04 14:04:00 384

原创 ZOJ Problem Set - 1029

<br />ZOJ Problem Set - 1029<br />http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1029<br /> <br />假设被重叠计划的room中重叠次数最大为K(不包括本身),则最后的时间就是10(K+1) <br />使用贪婪策略明显不会超过这个时间,所以这里贪婪总是最优的。

2010-12-01 23:39:00 349

原创 ZOJ Problem Set - 1025

ZOJ Problem Set - 1025http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1025为了叙述方便,称一个可行的最优处理序列为合理序列。在不reset前提下处理的序列称为序列的一个处理段。显然根据题意可知,每个处理段中的数据都是有序的(按照长度以及重量非递减)。我的做法是首先按照长度从小到大排好序。之后就是贪婪算法:以第一个结点为一个处理段B的头,按序遍历有序列L,若当前结点能够在不reset的情况下被处理,则将该结点加

2010-12-01 22:51:00 376

原创 ZOJ Problem Set - 1205

<br />ZOJ Problem Set - 1205<br />http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=205<br /> <br />程序语言在发展,题目却没有。<br />http://student.csdn.net/space.php?uid=238923&do=blog&id=33085<br /> <br />自己也写了一个,练练手。<br /> <br />#include <iostream><br />#in

2010-11-27 23:54:00 339

原创 [讨论]ZOJ Problem Set - 1201

<br />ZOJ Problem Set - 1201<br />http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=201<br /> <br />这题目还是蛮有意思的,O(n*n)的算法很容易想到,代码就从简从略了。<br />感觉应该有O(nlogn)的算法。因为O(n*n)的算法利用到的条件太少了。<br /> <br />P 5 9 1 8 2 6 4 7 3<br />B 0 0 2 1 3 2 4 2 6<br />(B[k]

2010-11-27 14:55:00 487

原创 ZOJ Problem Set - 1151

<br />ZOJ Problem Set - 1151<br />http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=151<br /> <br />#include <iostream><br />#include <string><br />using namespace std;<br />int main()<br />{<br />    int block, loop, i, j;<br />    string input,

2010-11-26 23:02:00 373

原创 ZOJ Problem Set - 1115

<br />ZOJ Problem Set - 1115<br />http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=115<br /> <br />如果不用字符处理方式来得出第一次位数和的话会超时。<br /> <br />#include <iostream><br />#include <string><br />using namespace std;<br />int getNum(string s) {<br />    int

2010-11-16 23:10:00 400

原创 ZOJ Problem Set - 1067

<br />ZOJ Problem Set - 1067<br />http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=67<br /> <br />没想出什么好的算法,直接写代码了,没什么优化。<br /> <br />#include <iostream><br />#include <climits><br />using namespace std;<br />#include <math.h><br />int main()<br

2010-11-16 00:03:00 636

原创 ZOJ Problem Set - 1051

<br />ZOJ Problem Set - 1051<br />http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=51<br /> <br />看懂题目,搞清楚输出格式,剩下的就应该没难点了。<br /> <br />#include <iostream><br />using namespace std;<br />int main()<br />{<br />    int loop, cnt1, cnt2, scr = 0;<br

2010-11-15 01:09:00 585

原创 ZOJ Problem Set - 1049

<br />ZOJ Problem Set - 1049<br />http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=49<br /> <br />没什么好说的。<br /> <br />#include <iostream><br />using namespace std;<br />int main()<br />{<br />    int loop, count = 1;<br />    float x,y;<br />   

2010-11-14 21:21:00 361

原创 ZOJ Problem Set - 1048

http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1048没啥好说的。#include using namespace std;int main(){    float m;    float total = 0.0;    int count = 0;    while(cin >> m) {        total += m;        count++;        if(12 == count) {           

2010-11-14 17:17:00 273

原创 ZOJ Problem Set - 1037

http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=37思路:由于边长采用欧几里得距离,所以从一个点出发到其斜线方向的邻点的距离为Sqrt(2)个单位。显然,要使总长度最短,那么路过的斜线越少越好。也就是说,在迫不得已的时候,永远都不要去选择斜线路径。(结论一)(由于除了起点,每个点都要过一次,且只能过一次,那么就可能存在某些情况不得不走斜线)由于在遍历所有点之后要回到起点,那么对于整个路径的前进方向来说,(如果不走斜线)某一个方向的前进次数

2010-11-14 17:01:00 396

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除