自定义博客皮肤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)
  • 收藏
  • 关注

原创 SPFA_聚会

Description小 S 想要从某地出发去同学k的家中参加一个 party,但要有去有回。他想让所用的时间尽量的短。但他又想知道从不同的点出发,来回的最短时间中最长的时间是多少,这个任务就交给了你。分析:单源最短路问题,去K点的距离用反图处理即可。代码如下:#include#include#include#include#includeusing nam

2016-01-30 16:37:38 732

原创 动规——【USACO3.3.5】A Game游戏 IOI'96

Description有如下一个双人游戏:N(2 编一个执行最优策略的程序,最优策略就是使玩家在与最好的对手对弈时,能得到的在当前情况下最大的可能的总分的策略。你的程序要始终为第二位玩家执行最优策略。 状态:f[i][j]表示第i个数到第j个数先手可以获得的最大得分。决策:先手可以取第i个数,那么剩下的i+1到j个数就等价于后手的情况,反之亦然。代码如下:#includ

2016-01-30 14:08:08 1108

原创 最短路——SPFA

bellman算法有太多冗余的松弛操作,SPFA利用队列省去了冗余的讨论,时间复杂度约为O(KE)k约为2,E为边数。代码如下:#include#include#includeconst int  inf=10000000;using namespace std;queueq;int n,m,x,y,map[105][105],vis[105],dist[105];

2016-01-30 10:30:59 465

原创 最短路坑题——贝西回家 uscow2.2.4

这道题坑点太多了:1. 一共有51个牧场,而不是25个;2.两个牧场之间可能有多条路,要取最短的一条;3.这是无向图;4.字符的输入比较坑爹。代码如下:#include#include#includeconst int  inf=100000;using namespace std;vectorcow;     //用来记下有牛的牧场int m,n,

2016-01-30 09:42:13 607

原创 最短路——Bellman-ford算法

求从一点出发,到各点的最短路代码如下:#include#includeconst int inf=1000000;using namespace std;int m,n,x,y,dist[105];bool flag=false;struct line{       //存边的结构体int x,y,w;}L[105];void input(){int

2016-01-29 14:56:47 367

原创 最短路——floyd算法

求每一对顶点的最短路径。枚举经每一个点中转其他的两点之间路径是否缩短,时间复杂度为o(n^3)。核心代码如下:(map为存图的数组)for(k=1;k      for(i=1;i             for(j=1;j                  f(Map[i][j]>Map[i][k]+Map[k][j])Map[i][j]=Map[i][k]+Map[k]

2016-01-29 14:27:50 493

原创 最短路——dijkstra

#include#includeusing namespace std;const int inf=2e9;int map[105][105],s[105],m,n,x,y;     //s[i]数组保存到i的最短路长度bool vis[105];void input(){int p,q,i,j,t;scanf("%d%d",&n,&m);for(i=1;i

2016-01-29 14:08:04 415

原创 分金币 uva11300

Description圆桌上坐着n个人,每人有一定数量的金币,金币总数能被n整除。每个人可以给他左右相邻的人一些金币,最终使得每个人的金币数目相等。你的任务是求出被转手的金币数量的最小值。Input第一行为整数n(n>=3),以下n行每行一个正整数,按逆时针顺序给出每个人拥有的金币数。Output输出被转手金币数量的最小值代码如下:#include#include

2016-01-29 10:32:46 421

原创 多维动规——打饭 nkoj 1045 zjoi 2005

先对较简单的一个窗口的情况讨论,容易得出如下的贪心原则:吃饭慢的先打饭,所以先对数据根据吃饭的速度进行排序。预处理:排序,sum[i]表示前i个人的排队总时间。状态:f[i][j]表示前i个人在第一个窗口排队j时间内吃完饭的最短时间,第二个窗口的排队时间为sum[i]-j。代码如下:#include#include#includeusing namespace std

2016-01-29 09:43:54 502

原创 中位数——士兵站队 nkoj 3551

Description      在一个划分成网格的操场上,n个士兵散乱地站在网格点上。网格点用整数坐标(x,y)表示。 士兵们可以沿网格边往上、下、左、右移动一步,但在同一时刻任一网格点上只能有一名士兵。按照军官的命令,士兵们要整齐地列成一个水平队列,即排列成(x,y),(x+1,y),…,(x+n-1,y)。 如何选择x和y的值才能使士兵们以最少的总移动步数排成一行。编程计算使

2016-01-28 11:27:45 600

原创 动规——邮局问题 nkoj 1181

一些村庄建在一条笔直的高速公路边上,我们用一条坐标轴来描述这条公路,每个村庄的坐标都是整数,没有两个村庄的坐标相同。两个村庄的距离定义为坐标之差的绝对值。我们需要在某些村庄建立邮局。使每个村庄使用与它距离最近的邮局,建立邮局的原则是:所有村庄到各自使用的邮局的距离总和最小。 数据规模:1Input2行 第一行:n m {表示有n个村庄,建立m个邮局} 第二行:a1 a2 a

2016-01-28 10:43:11 1678

原创 区间动规——凸多边形的三角划分

给定一具有N个顶点(按顺时针方向1到N编号)的凸多边形,每个顶点的权均已知。问如何把这个凸多边形划分成N-2个互不相交的三角形,使得这些三角形顶点的权的乘积之和最小?            f[i][j]表示从编号i到j(顺时针)这一段连续顶点划分后的最小权重;那么求解的问题变成了f[1][n]代码如下: #include#includelong long w[55],f[55

2016-01-28 10:26:16 1631 1

原创 动态规划——背包

背包经典问题:背包问题01:         一个背包容积为T(0        代码如下:#includeusing namespace std;int s[1005];bool f[3000];int main(){ int i,k,ans=0,v,n; scanf("%d%d",&v,&n); for(i=1;i<=n;i++)scanf("%d",&s

2016-01-27 16:36:48 661

空空如也

空空如也

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

TA关注的人

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