自定义博客皮肤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 1082

原创 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 #include using 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关注的人

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