自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

sepNINE的专栏

As brief as possible

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

原创 poj 2449 Remmarguts' Date A*+spfa求第k短路

90行的A*+spfa求第k短路的代码!!值得收藏

2015-05-29 23:11:54 666

原创 poj 2313 Sequence 贪心

#include using namespace std;int n;int a[128],b[128];int main(){ scanf("%d",&n); for(int i=0;i<n;++i) scanf("%d",&a[i]); b[0]=a[0]; for(int i=1;i<n-1;++i){ if(a[i]>b[i-1]&&a[i]>a[i+1])

2015-05-28 17:02:45 1028

原创 poj 1324 Holedox Moving A*算法对bfs的优化

题意:迷宫里有一条贪食蛇,求它的蛇头到迷宫左上角最少要多少步。分析:关键是将蛇的状态压缩编码,然后bfs,超时就改A*,这题有类似最短路径的性质,A*发现节点重复后不需要更新直接舍弃即可。代码://poj 1324//sep9#include #include #include using namespace std;struct state{ int x[1

2015-05-27 19:12:32 784

原创 poj 1077 Eight A*解八数码问题

110多行0ms的精简高效A*算法解决八数码问题,源代码详解。

2015-05-25 16:50:06 1083

原创 poj 2110 Mountain Walking 枚举+bfs

题意:给一个n*n的矩阵,要从左上角走到右下角,使经过数字的最大数与最小数的差最小。分析:一开始想到了二分这个差,然后判断是否存在路径,每次只知道差的话深搜每次搜索要记录沿途的最大值和最小值会tle,广搜的话如果节点只记录x,y坐标,搜索中存在要重新访问以前访问过节点的情况,比如一开始(1,1)->(1,2)->(2,2),如果(2,1)这个点的值更合适,最优访问路径(1,1)->(2

2015-05-21 15:59:10 1101

原创 poj 1171 Letter Game 字符串处理或字符串背包

#include using namespace std;char s[16];int cnt[256];int tot[256];int m[256];struct DICT{ char words[10]; int len,val;}dic[40010];int tovalue(char ch[]){ int sum=0; for(int i=0;ch[i]!='

2015-05-20 13:47:55 1128

原创 poj 1020 Anniversary Cake dfs的灵活结构

题意:给一个目标正方形边长和n个小正方形的边长,问是否可以用这n个小正方形填满目标正方形。分析:dfs不一开始就定好放入顺序,而是用已放入的个数代表深搜维度。代码:#include using namespace std;int box_size;int n;int size_num[16];int col[64];bool dfs(int cnt){ if

2015-05-19 21:38:49 736

原创 poj 2495 Incomplete chess boards 覆盖问题巧解

题意:给一个8*8的棋盘,上面有2格被挖掉,判断是否可以用1*2的长方形覆盖棋盘。分析:poj2446用的二分图匹配是这一类问题的通解。但这题只有恰好2个点被挖,所以有简便做法。可以把整个棋盘黑白染色(就像国际象棋那样),如果挖去的同色,则无法覆盖(这样导致剩余黑色格子数不等于白色格子数,每个1*2的长方形恰好覆盖一个黑色格和一个白色格)。代码://poj 2495//sep

2015-05-19 19:51:32 922

原创 poj 1230 Pass-Muraille 贪心

题意:给一些平行于x轴的墙,求最少去掉多少墙使得x轴上每点穿过不超过k面墙。分析:一开始还以为是重复覆盖问题(取最少的行使每列至少一个1),其实这题是可以用贪心解的(类似取最多的行使每列至多k个1)。代码://poj 1230//sep9#include using namespace std;const int maxN=128;int n,max_k,maxx,m

2015-05-19 17:36:18 1228

原创 poj 1698 Alice's Chance 二分图多重匹配

题意:一个演员要拍n部电影,每部电影只能在一周的特定几天拍(如周2,周4,周5),第i部电影要拍di天,必须要在wi周拍完,问演员是否可以完成任务。分析:建二分图,转化为二分图的多重匹配。代码://poj 1698//sep9#include using namespace std;const int maxX=64*7;const int maxY=64;int

2015-05-13 15:35:48 1026

原创 poj 1154 LETTERS dfs入门题

//poj 1154//sep9#include using namespace std;const int maxR=32;char a[maxR][maxR];int r,s;int ans=1;int vis[200];void dfs(int i,int j,int len){ ans=max(ans,len+1); if(i+1<r&&vis[a[i+1][j]]

2015-05-12 00:08:19 1191

原创 poj 2897 Dramatic Multiplications 模拟

//poj 2897//sep9#includeusing namespace std;int ans[128],ansp;int main(){ int cases,n,k; scanf("%d",&cases); while(cases--){ memset(ans,0,sizeof(ans)); ansp=0; scanf("%d%d",&n,&k); in

2015-05-10 11:48:23 813

原创 poj 2799 IP Networks 模拟

题意:给一些ip,求包括他们的最小网络(网络号+子网掩码)。分析:关键是找到从高位到低位从哪位开始不同。代码://poj 2799//sep9#include using namespace std;typedef long long ll;ll vis[40];void print(ll x){ ll a,b,c,d; d=x%(1<<8); x=x/(

2015-05-09 01:12:40 1198

原创 poj 1084 Square Destroyer dlx解重复覆盖

分析:将问题转化为重复覆盖问题,DancingLink解决。代码://poj 1084//sep9#include using namespace std;const int maxN=10024;const int maxL=128;int L[maxN],R[maxN],U[maxN],D[maxN];int C[maxN],H[maxN];int S[maxN],

2015-05-02 22:45:24 1469

空空如也

空空如也

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

TA关注的人

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