自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 资源 (3)
  • 收藏
  • 关注

转载 图论算法进阶习题集

=============================以下是最小生成树+并查集======================================【HDU】1213        How Many Tables         基础并查集★1272        小希的迷宫           基础并查集★1325&&poj1308   Is It A Tree?  

2014-03-06 19:02:08 1438

原创 uva624(01背包+打印路径)

题目链接:uva624/* 简单01背包,注意路径可能不只一种*/#include #include #include #include #include #include #include #include using namespace std;const int inf = 0x3f3f3f3f;const int N = 2005;int d[N];

2014-03-31 19:02:18 942

原创 hdu1595(枚举+最短路,Dijkstra/SPFA)

题目链接:hdu1595Dijkstra:515MS/*题意: 求删掉任意一条边的最长最短路思路: 首先求出最短路,同时记录下路径,接着枚举最短路上每一条边(将此边切段),在求最短路,求这些最短路中的最长路*/#include #include #include #include #include #include using namespace

2014-03-27 20:08:32 955

原创 hdu1217 Arbitrage(SPFA判负环)

题目链接:hdu1217/*题意: 给出n种货币,和m种货币之间的汇率,问经过若干次兑换后能否使某种货币的价值大于原来的价值思路:SPFA判负环 因为用的是乘法,当乘数大于1时,等效于最短路中的边权为正值,当乘数小于1时,等效于边权为负*/#include #include #include #include #include #include usi

2014-03-27 18:33:33 922

原创 poj2402(计算第k个回文数)

题目链接:poj2402/*题意: 求第n个回文数思路: 不难发现规律,1位和2位的回文数有9个,3位和4位的回文数有90个。。。。首先求出第k位的基数 10^((k-1)/2),再计算出第n个回文数是几位数,对半后,对前半段进行填数,后半段的只要将前半段反向输出即可*/#include #include #include #include using n

2014-03-26 20:49:27 1868

原创 poj3280(回文串,DP)

题目链接:/*题目大意: 一串字符,每添加一个字符或删去一个字符都要付出相应的花费求将这串字符变成回文串的最小花费思路: 删除一个字符和添加一个字符是等价的,所以考虑最小的一种即可 d[i][j]表示区间[i,j]的最小花费当a[i] == a[j]时, 区间[i,j]的花费就等于区间[i+1,j-1]的花费当a[i] != a[j]时 添加

2014-03-26 19:14:38 842

原创 poj1159(回文串+LCS+滚动数组)

题目链接:poj1159/*题目大意: 给一串字符,问最少添加几个字符能使这个字符串变成回文字符串思路: 添加字符数 = 原串字符数 - 原串和其逆串的最长公共子序列的长度然后就是用滚动数组求最长公共子序列,在0~1行之间滚动,滚动表达式为i&和(i-1)&1,就是取余滚动*/#include #include #include #include usi

2014-03-26 11:22:01 921

转载 cd 命令

Linux cd 命令可以说是Linux中最基本的命令语句,其他的命令语句要进行操作,都是建立在使用 cd 命令上的。所以,学习Linux 常用命令,首先就要学好 cd 命令的使用方法技巧。    1. 命令格式:cd [目录名]    2. 命令功能:切换当前目录至dirName    3. 常用范例3.1 例一:进入系统根目录命令:cd 

2014-03-25 09:16:55 484

转载 ls命令

ls命令是linux下最常用的命令。ls命令就是list的缩写缺省下ls用来打印出当前目录的清单如果ls指定其他目录那么就会显示指定目录里的文件及文件夹清单。 通过ls 命令不仅可以查看linux文件夹包含的文件而且可以查看文件权限(包括目录、文件夹、文件权限)查看目录信息等等。ls 命令在日常的linux操作中用的很多!1. 命令格式:ls [选项] [目录名]

2014-03-25 09:15:54 588

原创 poj2653(判断两线段相交)

题目链接:poj2653大意:有很多根木棍,如果后面的木根和前面的木棍有交叉的话,后面的木棍就会覆盖掉前面的木棍,问最后没有被覆盖的木棍数思路:运用队列模拟,如果当前输入的木棍和前面的木棍交叉,那么将前面的那个木棍取出队列,否则的话,将从队列中取出的木棍再次入队#include #include #include #include using namespace std;ty

2014-03-24 19:20:39 887

原创 hdu1677(贪心+二分)

题目链接:hdu1677大意:很多个空心的娃娃,高h,宽w,w1思路:贪心+二分首先将w从小到达排序,w相同时h从大到小排序(注意:w和h的排序方向必须相反),然后考虑后一个娃娃能否嵌套在前一个娃娃上,用d[i]表示已经嵌套过的娃娃的h,从第一个娃娃开始,看这个娃娃能否嵌套在它之前的娃娃上面,如果有多个选择的话,它刚好能嵌套谁,我们就选择谁,接着更新d[i];下面一组数据可以解释为

2014-03-23 13:27:31 1011 1

原创 pair用法

pair的类型:  pair 是 一种模版类型。每个pair 可以存储两个值。这两种值无限制。当一个函数需要返回2个数据的时候,可以选择pair#include using namespace std;int main(){ typedef pair pid; typedef pair pis; pid ii = make_pair(1,2);//生成一个

2014-03-19 19:43:13 996

原创 hdu1796(容斥原理)

题目链接:hdu1796容斥原理介绍题目大意:给出m个数,在1~n(不包括n)之间找出所有能对m个数整除的思路:枚举出所有可能组合,求出每一种组合的最小公倍数,运用容斥原理累加所有情况#include #include #include #include #include using namespace std;#define LL __int64int a[15

2014-03-17 15:27:38 1158

原创 poj1753(BFS+位存储)

题目链接:poj1753每一个位置的棋子有两种颜色,黑或白,我们可以用0,1来表示颜色。一共有16个棋子,可以用一个int型的数来表示这16个棋子的状态。然后BFS搜一下,最多65535次#include #include #include #include #include using namespace std;const int N = (1<<16)-1;int v[

2014-03-16 09:42:29 1088

原创 poj1700过河问题(贪心)

题目链接:poj1700/*两种过河策略:1、用速度最快的那个每次将人载过河,再回来载其他的人2、用速度最快的和次快的循环载人,即最快的和次快的先过河,次快的留下,最快的回来,接着最慢和次慢的人过河,次快的回来*/#include #include #include #include using namespace std;const int inf = 0xffffff

2014-03-16 08:25:32 1581

原创 hdu2066(多源多汇最短路)

题目链接:hdu2066多源多汇,可以建立超级源点和终点#include #include #include #include using namespace std;const int inf = 0xfffffff;const int N = 1005;int map[N][N],n;int dis[N];bool v[N];void dijstra(){

2014-03-14 11:10:47 1951

原创 hdu3790(最短路dijstra)

题目链接:hdu3790#include#include#includeusing namespace std;const int N = 1006;const int inf = 0xfffffff;int map[N][N],n;int cost[N][N];//花费bool v[N];int dis[N];int val[N];void dijstra(int

2014-03-14 09:39:31 987

原创 hdu1102(kruskal)

题目链接:hdu1102题意:先输入一个n*n的矩阵,map[i][j] 表点i和点j间的距离;再输入m对数(x,y),表示x和y之间有路连通;思路:kruskal#include #include #include #include #include #include #include using namespace std;const int N = 10010;

2014-03-14 07:54:04 789

原创 hdu1162(最小生成树prim)

题目链接:hdu1162n个点的坐标,将这些点连起来,求最短距离。prim水过.....#include #include #include #include #include #include #include using namespace std;const int N = 105;double map[N][N];bool use[N];double lo

2014-03-13 21:08:15 587

原创 hdu1254推箱子(BFS)

题目链接:hdu1254/*用广搜寻找最小步数,推箱子需要满足以下几个条件:1.人能走到推箱子的那个位置2.人不能穿过箱子.3.箱子可以回到前一状态的位置,但不是同一方向回到的*/#include #include #include #include #include #include #include using namespace std;int d[4][2]

2014-03-13 19:39:31 1179

原创 bnu条形码设计(递推)

题目链接:bnu4064/* 首先不考虑对称,递推公式:f[n] = f[n-1] + 2*f[n-2];即n-1的情况加上一个竖条,n-2的情况加上一个2*2的或两个横条 接着考虑有多种是对称的,s[n] = s[n/] + s[n/2-1]*2;即(中间是一块2*2的,或两个横条,或没有); f[n] = 2*不对称的种数+s[n];*/#include

2014-03-12 21:04:17 810

原创 hdu4539(状态压缩)

题目链接:hdu4539曼哈顿距离——两点在南北方向上的距离加上在东西方向上的距离,即d(i,j)=|xi-xj|+|yi-yj|。本题每个士兵曼哈顿距离为2的位置不能有其他的士兵,假设士兵位置(i,j),则(i-2,j)(i+2,j)(i,j-2)(i,j+2)(i-1,j-1)(i-1,j+1)(i+1,j-1)(i+1,j+1)这些位置都不能有其他的士兵。思路:状态压缩

2014-03-11 08:07:16 1350

原创 hdu1565 方格取数(状态压缩)

题目链接:hdu1565对于每一个数,取或者不取,用0表示不取,1表示取,那么对于每一行的状态,就可以用一个二进制的数来表示。比如5的二进制为101,就表示取第一个数,不取第二个数,取第三个数。将符合要求的状态保存下来,什么是符合要求的呢?即二进制数中不存在相邻的1(110,011都是不符合要求的)。可以用移位并按位与的办法来判断,举个例子:110左移一位为011 ,110&011 = 1

2014-03-03 13:17:07 1525

c#课程设计

c#课程设计:计算器,五子棋,贪食蛇,职工信息管理系统等

2014-06-27

上海交大ACM final选手模板

上海交大ACM竞赛 final选手模板,ACM能用到的各种算法基本都有

2014-06-17

空空如也

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

TA关注的人

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