自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

被虐的goshawk

请大神赐教ORZ

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

原创 poj3311——Hie with the Pie——————【状态压缩、TSP旅行商问题】

/**   解题思路:首先预处理出来各个点间的最小距离,然后dp求解。定义状态dp[i][j]代表当前访问过的城市用十进制表示为i,最终停留在j城市所走的最短距离。初始化dp[1][0]=0,状态值i所表示的二进制的2的零次方为1表示城市0被已经经过,状态值代表的二进制的2的m次方为1表示城市m已经经过。*/#include#include#include#includeu

2015-01-31 18:51:59 652

原创 nyoj85——炮兵阵地——————【状态压缩、动态规划】

/**   结题思路:用dp[r][i][j]表示第r行r行状态为i,r-1行状态为j时的最大可部署炮兵的个数。通过求解合法状态,缩小需要遍历的状态范围。同时求出各个合法状态的二进制中1的个数,然后特殊处理首行,然后dp求解每行每种可行状态对应的可部兵的最大个数。状态转移方程dp[r][i][j]=max(dp[r][i][j],dp[r-1][j][k]+num_1[i])。*/

2015-01-31 13:07:24 536

原创 poj1321——棋盘问题——————【状态压缩、动态规划】

/*   解题思路:首先确定各个状态值对应的二进制中有几个1。然后初始化dp[0][0]为一种解决方案,虽然不会计入最后的结果。但是却影响着下面每行的计算。只对二进制中1的个数小于等于k的状态值操作,枚举每种状态值。本行j状态值下的方案数继承上一行j状态值下的方案数,上一行中状态为j时的dp数组如果是0时,对本行的dp结果其实无影响,产生影响的是dp[i-1][j]不为0的那个。由上一行的状态

2015-01-30 16:15:07 886

原创 poj3254——Corn Fields——————【状态压缩】

/**    解题思路:首先将原图每一行当做一个二进制数,按位取反得到另一个十进制数。然后求出在所给的列的范围内的合法状态,即没有任意两个1相邻,放入数组legal中,每种合法状态对应数组的一个下标。再单独求出第一行的所有可行状态,将dp[0][i]初始化。最后求出下面的每一行的可行状态,即跟本行的上一行不冲突且在本行可行。累加结果即可求出答案。*//**   题目大意:给出M

2015-01-29 17:25:51 505

原创 hdu2126——Buy the souvenirs——————【01背包记录物品最多时种数】

/**   解题思路:多加一维表示物品个数。dp[j][k]代表背包容量为j,物品个数为k时的组合种类数目。*//*   题目大意:给你n种物品,有m块钱,然后给出n种物品的花费,问物品个数最多时的组合种数有多少。*/#include#include#includeusing namespace std;#define maxn 550int dp[max

2015-01-28 18:54:54 640

原创 hdu3466——Proud Merchants——————【01背包排序】

/**   解题思路:明显的01背包,但是这个有一个金额限制,所以不仅仅是01背包,因为转移方程应为   for(int k=0;k   for(int i=V;i>=items[k].q ;i--){        dp[i]=max(dp[i],dp[i-items[k].p]+val);    }要保证无后效性,需要让dp[i-items[k].p]比dp[i

2015-01-28 11:54:54 683

原创 hdu2639——Bone Collector II——————【01背包、第k优解】

/**   解题思路:由于是让求第k优解问题,所以这里不再用转移方程,而是将转移过程转化成加入该件物品形成的有序序列tmpa[]和不加入该件物品形成的有序序列tmpb[]合并的过程。引用看到的一个例子:”如果想在全校找前十名的学生,只需要将各班的前十名合并后找前十即可“。*//**   题目大意:给你t组测试数据,每组测试数据包含n,v,k。然后是两行分别代表第i件物品的价值和

2015-01-27 17:05:42 580

原创 hdu2955——Robbers——————【01背包】

/**   解题思路:这道题是01背包的变型。通常的题目是dp[i]代表背包装重量为i的物品的价值。而这个题目是将价值作为背包容量,将不被捉到的概率作为背包的值。状态转移方程为dp[j]=max(dp[j],dp[j-cost]*weight)。*/题目大意:有人想抢劫银行,给定T,代表T组测试样例,给定一个概率P即抢劫被捉概率要控制在该概率内,给一个n即有几个抢劫目标,下边n行分

2015-01-26 16:12:06 548

原创 hdu3394——Railway——————【判断桥和双连通分量】

/**   解题思路:                  本题中的冲突边是指形成环的边且边数大于点数,即本环中所有的边都是冲突边。                                 不必需边是无向边形成的环,即所要求的桥。*/题目大意:要在景点修铁路,给定景点个数n,要修的铁路条数m。如果是不是无向边构成的环形路线,则是不必要的铁路。如果两个环有公共边,则环中

2015-01-24 16:48:50 634

原创 poj3352——Road Construction——————【加边为边-双连通图】

/**   解题思路:找到图的边-双连通分量,将分量缩成点后,求出缩点后的dfs树的各个结点的度,求出叶子结点(度为1)个数,根据定理计算需要加的最少边即可。*/题目大意:                某度假公司要在可互相到达的各景点(连通图)的一些路上做些装饰,正在装饰的道路暂时不可以通行,现需要架设临时通道,使各个景点仍可相互到达,问最少需要架多少条通道。/*

2015-01-23 15:33:23 687

原创 uva11419——SAM I AM——————【最小覆盖数、打印最小覆盖】

/**   解题思路:将每一行看作一个X结点,每一列看作一个Y结点,每个目标对应一条边,这样,子弹打掉所有目标意味着每条边至少有一个结点被选中。构造解:借助于匈牙利树,从X中的所有未盖点出发扩展匈牙利树,标记树中的所有点,则X中的未标记点喝Y中的已标记点组成所求的最小覆盖。*/题目大意:在R*C的网格中放目标,子弹水平或垂直飞行,会打掉飞行路线上所有目标,问打掉所有目标,至少需要多

2015-01-20 17:39:23 640

原创 poj2771——Guardian of Decency——————【最大独立集、最大匹配扩展】

/**   解题思路:将每个学生当做一个结点,如果两个人4个条件都不满足,就意味着他们不能同时被选择,连一条无向边。问题就转化为求这个图的最大独立集。可以分男女入图,也可以不分男女。下面给出两种方法。*/题目大意:               有个思想保守的老师的老师,组织外出,但又怕同学在旅途中产生爱意,于是要求满足带出去的任意两个同学至少满足下面4条中的一条。(1)身高差大

2015-01-19 17:18:25 535

原创 hdu1350——Taxi Cab Scheme——————【最小路径覆盖、最大匹配转化】

/*   解题思路:                     本题目模型是DAG的最小路径覆盖。最小路径覆盖可以转化成最大匹配求解。                     解法:将所有节点i拆为点Xi和点Yi,如果图中存在有向边i——>j,则在二分图中引入Xi——>Yj。图建好后就可以增广求最大匹配,进而求最小路径覆盖。*/题目大意:               你需要安

2015-01-19 10:20:52 865

原创 hdu1507——Uncle Tom's Inherited Land*————————【二分图最大匹配、奇偶分离】

/*   二分图最大匹配,同时加上奇偶分离。用匈牙利算法增广找最大匹配及相互匹配的点对*/题目大意:有n*m的一块儿土地遗产,现在想要卖掉,已知黑格子是池塘不能卖,白格子需要两块儿连一起才能卖,问最多能卖多少个这样的可卖土地。/** 划分奇偶 二分匹配 增广至最大匹配*/#include#include#include#includeusi

2015-01-18 11:46:40 581

原创 HDU2063——过山车——————【二分图最大匹配模板】

/**   未盖点:不与任何匹配边邻接的点   匹配点:匹配边相连的顶点   匹配:两两没有公共点的边集   交替路:从未盖点出发,依次经过非匹配边,匹配边,非匹配边....所得到的路径   增广路:交替路的终点是一个未盖点。   增广路的长度为奇数,因为非匹配边比匹配边多一条。   一个匹配是最大匹配的充要条件是不存在增广路。   匈牙利算法,即不断增广,直到

2015-01-17 20:55:13 573

原创 hdu1269——迷宫城堡——————【kosaraju模板】

这个算法可以解决判断和打印各个强连通分量的问题。对于本题,只要判断就行。#include#include#include#include#includeusing namespace std;const int MAXV=11000;vectorG[MAXV],T_G[MAXV]; //原图和转置图vectorS; //用来存放dfs后的

2015-01-17 10:58:08 518

原创 hdu1269——迷宫城堡——————【双向并查集判断】

解题思想:通过利用设定1为根节点,然后建立以1为根的树,查找时,如果所有节点都是以1为根,则说明单向互通;然后再逆序采用相同的操作,如果逆序得到的所有节点也是以1为根,则说明逆向互通,此时说明图为强连通图。这里用两个父亲数组来完成正向和逆向操作。#include#include#include#includeusing namespace std;const int MAXV=110

2015-01-17 08:41:30 923

原创 hdu1269——迷宫城堡——————【kosaraju】

概念解释    [强连通]——有向图G中,任意点对能相互到达,即存在路径,则称为强连通。                              [连通分量]——指的是无向图中的极大连通子图。一个连通图的生成树是一个极小连通子图。 //只是判断是否强连通#include#include#include#include#includeusing namespace st

2015-01-16 18:47:33 681

原创 hdu1879——继续畅通工程——————【kruskal模板】

以前写过这道题不止一遍,但是再碰到这个题目的时候还是迷茫,长时间不练习这方面的题目就不会了,看来真的需要坚持码代码,不写会生疏的!#include#include#include#includeusing namespace std;//最小生成树,拓扑排序,最短路径,二分图,网络流。const int N=110;int father[N*N];struct node {

2015-01-15 20:40:19 658

原创 hdu1728——逃离迷宫——————【BFS】

解题思路:通过曾经一个计数数组,将所有可到达该点位置的转弯次数更新为最小值,最后通过比较目的位置的转弯次数来判断是否能够到达。#include#include#include#include#includeusing namespace std;int f[4][2] = {{ -1, 0}, {1, 0}, {0, 1}, {0, -1}};char Map[110][110]

2015-01-12 10:20:18 470

原创 hdu1253——胜利大逃亡——————【BFS】

简单三维地图,直接广搜就行了。#include#include#include#includeusing namespace std;int Map[55][55][55];bool vis[55][55][55];int f[6][3] = {{ -1, 0, 0}, {0, 1, 0}, {1, 0, 0}, {0, -1, 0}, {0, 0, -1}, {0, 0, 1}

2015-01-09 21:00:50 532

原创 大数阶乘——————数组模拟

突然发现大数阶乘还能用这么简单的数组模拟,但是感觉复杂度好像有点高,一次运算是n*MAXN的复杂度,虽然空间复杂度比较低。#include#includeconst int MAXN = 50000;int main() { int n; scanf ( "%d", &n ); int f[MAXN]; memset ( f, 0, sizeof ( f

2015-01-05 10:03:06 625

原创 hdu2102——A计划——————【BFS】

题目比较简单,只是一个简单搜索,只是添加了一点条件。传输机实现上下层转移,仅仅这个条件。#include#include#include#includeusing namespace std;int f[4][2] = { { -1, 0}, {0, 1}, {1, 0}, {0, -1}};char Map[15][15][2];bool vis[15][15][2];str

2015-01-02 16:45:04 530

空空如也

空空如也

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

TA关注的人

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