自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 poj1094 Sorting It All Out

拓扑排序的应用。以下的文章讲了拓扑排序的几种算法:http://www.cnblogs.com/xiaosuo/archive/2010/03/26/1690302.html。本题主要解决两个问题,拓扑序列的唯一性,拓扑序列的存在性。对于第一个问题,要注意(我用的拓扑排序算法是无前驱的顶点优先算法),当队列的front与rear相差大于一,那么唯一性不存在了,无论是初始时front与rear的差,还是中间入队时候这两个值的差,都要考虑。至于第二个问题,就简单了,只要存在环,那么拓扑序列就是不存在的。#inc

2010-11-30 15:30:00 366

原创 nkoj1038: Lotto

<br />赤裸裸的dfs<br />#include<iostream>using namespace std;#include<cstdio>int lotto[20];int result[20];int k;void dfs(int v,int t){ int i,j; result[t]=lotto[v]; if(t==6) { for(j=1;j<6;j++) printf("%d ",result[j]); printf("%d/

2010-11-28 14:58:00 349

原创 招聘会感想

<br />今天跟着实验室的哥们(本人已经大三),去了学校组织的大型招聘会。我的妈呀,那个叫人山人海,顿时鸭梨很大。<br />有技术能找到好工作吗?优势在哪里?如果这是一门很难的技术,那答案是肯定的,如果这门技术,公司培训个把月,都能掌握,这还有优势吗?公司也许还会招你,但是薪酬肯定不高,人人都会的技术或者稍微培训就能掌握的技术,那不叫掌握技术,顶多是技术农民工。<br />那我们应该去干些什么呢,是可以考虑人生了。<br />我不想做技术农民工。<br />

2010-11-28 13:15:00 681 2

原创 nkoj 1504: Prime Path

<br />方法:bfs;看到最优的,bfs还是容易想到的方法<br />#include<iostream>using namespace std;#include<cstdio>int queue[10000];int visited[10000];int prm[10000];int dir[4]={1,10,100,1000};void bfs(int v){ int i,j,k,t,item,next_v; int front=-1,rear=0; qu

2010-11-28 13:04:00 257

原创 poj2488 A Knight's Journey

<br />方法就是dfs(递归+回溯),注意点:因为要字典序,所以注意搜索的顺序,dir数组记录了搜索的顺序,visited数组标记走过的格子。<br />#include<iostream>using namespace std;char result[200];int visited[30][30];int dir[8][2]={{-1,-2},{1,-2},{-2,-1},{2,-1},{-2,1},{2,1},{-1,2},{1,2}};int m,n;bool fla

2010-11-27 18:48:00 262

原创 nku1215: 小鼠迷宫问题

<br />这题一开始想bfs+dfs(bfs得到最短路径,dfs得到最短路径的数目),结果总是超时,虽然我也优化了dfs;最后改了方法,直接bfs,cnt数组记录了每个点最短路径的数目,visited数组记录每个点的最短路径<br />#include<iostream>using namespace std;#include<cstdio>#include<cmath>struct Point{ int i,j;};Point queue[100000];int di

2010-11-26 21:11:00 484

原创 poj 2253 Frogger

<br />题目大意:点1到点2,有很多路径,每条路径都有一个最大权值,求所有这些最大权值中的最小权值;<br />方法:Kruskal算法<br />#include<iostream>using namespace std;#include<cstdio>#include<cmath>#include<cstdlib>struct Point{ int x,y;};struct Edge{ int a,b; double dist;};Poin

2010-11-24 20:11:00 251

原创 poj 3259 Wormholes

<br />赤裸裸的bellman ford ,<br />#include<iostream>using namespace std;#include<cstdio>#define MAX 505#define INT 1<<30struct node{ int ver,time; node* link;};node* gragh[MAX];int dist[505];bool bellman_ford(int n,int v){ int i,j;

2010-11-21 23:02:00 246

原创 poj 1062 昂贵的聘礼

<br />这题用了两种方法<br />一:dijkstra+枚举<br />枚举可能的等级区间,每个区间调用一次dijkstra,为什么要枚举呢http://blog.csdn.net/loveshuang263146/archive/2010/09/07/5869466.aspx  他讲的挺好的。<br />#include<iostream>using namespace std;#include<cstdio>#include<cmath>#define INT 1<<30str

2010-11-21 14:50:00 233

原创 poj 1228 Grandpa's Estate

<br />这题挺难想的,一开始看不懂题意,知道题意了又不会做,看了别人的思想,才AC了,确实是凸包的好题。<br />算法:既然给出的部分点是原凸包的边界点,那么这些点围成的多边形应该是一个凸包,在这里暂且叫新凸包,但要确定是不是原来的凸包,可以在这个新凸包的任意两个顶点(注意是顶点)外再加一点,如果新凸包加上这个新顶点仍能构成凸包,则只能说明这个新凸包不能确定是原来的凸包。如果新凸包的任意两顶点间的边上还有边界点,那么无论在哪里加一个新顶点,这个新的多边形必定是凹多边形。转至:http://hi

2010-11-19 19:05:00 644

原创 poj 2007 Scrambled Polygon

<br />有了poj 1113的积累,这题就是凸包的精简版,一看到题目,马上有思路,AC的感觉就是好<br />#include<iostream>using namespace std;#include<cmath>#include<cstdlib>#include<cstdio>struct point{ double x,y;};point input[60];double multi(point p1,point p2,point p0){ retu

2010-11-19 11:46:00 433

原创 poj 1113 wall

<br />#include<iostream>using namespace std;#include<cstdio>#include<cmath>#include<cstdlib>//#define eps 0.000001#define pi 3.1415926struct Point{ double x,y;};Point stk[1005];Point Inp[1005];double Distance(Point p1,Point p2){

2010-11-18 21:24:00 267

原创 fzu 1015 土地划分

<br />#include<iostream>using namespace std;#include<cstdio>struct point{ int x,y;};struct segment{ point a,b;};segment s[55];int multi(point p1,point p2,point p0){ return (p1.x-p0.x)*(p2.y-p0.y)-(p2.x-p0.x)*(p1.y-p0.y);}boo

2010-11-17 17:35:00 790

空空如也

空空如也

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

TA关注的人

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