上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 32 下一页
摘要: 差束约分题意:有n个屋子,超人从最矮的屋子开始,依次跳下比当前屋子高且最接近当前高度的屋子(即按照屋子高度增序来跳),但超人跳跃还有一个水平距离限制D,他每次跳的水平距离<=D。现在给你每个屋子的高度是它们的相对位置,你不能改变屋子的相对位置,但是可以水平移动屋子,使得最矮的屋子和最高的屋子的水平距离最大。如果无论怎样移动,超人都无法跳到最后那个屋子则输出-1这题是个差束约分看sample说明问题sample34 2 10 20 16 13 超人从10开始,跳到13,但是10和13的水平距离至少为3,但超人的水平限制距离是2,所以无论怎么移动都无法跳过去,输出-1看sample14 4 阅读全文
posted @ 2013-05-04 16:42 Titanium 阅读(893) 评论(0) 推荐(0) 编辑
摘要: 继续复习DP,图论题意:有向图,n个点,m条边,t个查询。从点u到点v可能有多条路径,找出一条,使这条路径的权值最大的那条边的值在所有路径中是最小的,即最大值最小状态转移方程:dp[i][j]表示从i到j的最小的最大值。dp[i][j] = min{ dp[i][j] , max(dp[i][k] , dp[k][j]) }#include <cstdio>#include <cstring>#define N 310#define INF 0x3f3f3f3f#define max(a,b) ((a)>(b)?(a):(b))#define min(a,b) ( 阅读全文
posted @ 2013-05-04 09:00 Titanium 阅读(193) 评论(0) 推荐(0) 编辑
摘要: dp,图论题意:输入n和m表示n个牛(从1到n标号),下面m个信息,A B,表示A牛能打赢B牛。现在要给所有的牛排名(按实力从高到低),问哪些牛的排名是可以确定的如果知道由l个人能打赢自己,自己能打赢w个人,且l+w+1 = n的话,那么自己的排名就是可以确定的,所有转化为要求出,每个人,能打赢多少人,能被多少人打赢建图: dp[i][j]=1表示i能打赢j,=0表示不确定他们之间的关系,然后类似floyd那样dp,若dp[i][k]=1且dp[k][j]=1,则dp[i][j]=1dp结束后扫描一次整个dp数组即可被归为中等题,这不是水题么。。。。#include <cstdio> 阅读全文
posted @ 2013-05-03 23:25 Titanium 阅读(413) 评论(0) 推荐(0) 编辑
摘要: 训练的题目模拟题,蛇形矩阵,保证是n*n的矩阵,并且n是奇数 , 在矩阵中填数,从最中心开始填,逆时针转圈,1,2,3…………n*n。输入n,表示矩阵的大小,输入一个数字m,找出m在矩阵的哪行哪列其实这个蛇形矩阵可以分为一圈一圈来看,要找m,可以先确定它在哪一圈每一圈都值的范围是 [ k^2+1 , (k+2)*(k+2) ] ,其中k是奇数看一圈的四个角,右上角最大: max = (k+2)*(k+2)左上角次之: max - (k+2) + 1左下角再次: max - 2*(k+2) + 2右下角 : max - 3*(k+2) + 3所以可以以这4个值作为一个范围,将这个圈分成4份,.. 阅读全文
posted @ 2013-04-30 20:31 Titanium 阅读(209) 评论(0) 推荐(0) 编辑
摘要: 训练的题目最大流题意:题意直白,就是一个网格从(0,0)编号到(N-1,M-1),每个点可以走到和它相连的4个点,没条边都有容量,为你从(0,0)到(N-1,M-1)的最大流1.建图细心一点不要出错,注意检查2.无向图,本来建的是无向图,无端端注释掉一部分,WA了一次才想起来怎么注释掉了,改回来过了3.建图后,直接上最大流模板,这里用EK#include <cstdio>#include <cstring>#include <algorithm>#include <queue>using namespace std;#define N 10100 阅读全文
posted @ 2013-04-30 20:18 Titanium 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 训练的题目最短路变形题意:这个题意,太长了,总结回来只有两三句话。输入n表示n个点,从0到n-1,输入m表示m条无向边,输入t,表示终点。要你求起点0到终点t的最短路,不过要先满足一个条件,就是路径的点数不超过10个(包括起点和终点在内 <= 10),如果在10个点内娶不到或者图根本不连通,那么输出no,否则输出最短路又是一个加了限制的最短路,是要先满足10个点以内再求最短路的,训练的时候就是看错了一直WA。这题和 poj 1724 ROADS 是一样的题目。可以看作每条边的花费是1点数,你从0出发,手上有9点数,在点数够用的情况下走到终点t的最短路因此仿照poj这题的代码,写了一个dp 阅读全文
posted @ 2013-04-30 20:10 Titanium 阅读(232) 评论(0) 推荐(0) 编辑
摘要: 差束约分有人将这题归为最短路的中等题,所以做一下,但是发现其实是裸的差束约分题意:n个人,m个信息,每行的信息是3个数字,A,B,C,表示B比A多出来的糖果不超过C个,问你,n号人最多比1号人多几个糖果m行信息,所以得到m个不等式 : XB - XA <= C , 所有不等式加起来就是一个差束约分系统对应最短路模型,一开始是 d[v] >= d[u]+w (有向边u--->v) , 在进行完最短路后则变为 d[v] <= d[u] + w ,转化为 d[v] - d[u] <= w这个和上面的 XB - XA <= C 是相同的模式 , 因此建图的时候有向边 阅读全文
posted @ 2013-04-30 00:17 Titanium 阅读(1030) 评论(0) 推荐(0) 编辑
摘要: 最短路变形题意:你有K个点数,有N个点,M条边,边为有向边,包含4个信息,两个端点+边长+走这条边需要付出的点数。你的任务是,从1号点出发走到n号点,在点数够用的情况下,走出一条最短路,单case显然是一个最短路的变形,而且是一种常见的模型。最短路本身是一个求解最优解的问题,在这里加多了一个限制条件,就是点数,所以变为“在一定的限制条件下求解一个最优化问题”的模型,这样的模型,可以由一个大致的套路,就是,在满足限制条件后,再进行更新下面将讲3个方法,前两个其实都是BFS,第3个事DFS,是一个记忆化搜索。我们先说BFS1.优先队列+dij(最快) 判断一个元素能否入队,不再是看它的最短路估计值 阅读全文
posted @ 2013-04-28 23:20 Titanium 阅读(2939) 评论(0) 推荐(0) 编辑
摘要: 地址:http://codeforces.com/contest/200/problem/C模拟题题意:模拟足球小组赛的排名变化。规定只有4个球队,我方球队为BERLAND,一定会有的,然后另外3个球队的名字不一定。4个球队,两两球队间打且仅打一场比赛(所以可以知道一共是打了6场)。输入中给出5行,即5场比赛的信息,还剩下一场的信息没有给出。保证最后一场一定是BERLAND打某个队的,对手是谁要找出来(这个不难),而且也规定这场比赛一定是BERLAND胜利。你的任务是,要令BERLAND在这场比赛后,排在第1名或第2名,满足这个条件下,这场比赛的净胜球数最少,如果净胜球数一样,要令对方的进球数 阅读全文
posted @ 2013-04-27 22:22 Titanium 阅读(435) 评论(0) 推荐(0) 编辑
摘要: 隐式图搜索训练的题目,题意:输入n表示串(串为基因,只会出现ACGT)的长度,下面两行长度为n的串,第一个为起始串,第二个为目标串。对串能做两种操作。1.将头元素移动到尾部。2.最前面两个元素交换位置。从起始串到目标串的最少操作次数是多少,输出这题一看,觉得是DP,后来发了两三分钟的样子想到了是搜索。对于当前的串,它是一个状态,通过两个操作,能产生两个新的状态,所以这个过程就可以建图,搜索,找出两点间的最短路。注意这里不是树,因为很容易想到,这个图是可以有环的。另外,可以大致计算到状态数是很多的(串长最大为12),所以不能显式建图,当然也没必要显式建图,因为很多点(状态)是不会去到的很快打出代 阅读全文
posted @ 2013-04-26 23:00 Titanium 阅读(283) 评论(0) 推荐(0) 编辑
上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 32 下一页