搜索
文章平均质量分 74
Weiguang_123
这个作者很懒,什么都没留下…
展开
-
poj2728 (01参数规划,最优化率生成树,二分)
这题01参数规划,其实就是二分,最优率生成树,但是精度卡的太死了,,要么WA,要么TLE。 二分 重新构图 : graph[i][j]=fabs(dot[i].h-dot[j].h)-mid*dis(dot[i].x,dot[i].y,dot[j].x,dot[j].y);#include#include#include#include#include using na原创 2012-07-06 15:48:57 · 1470 阅读 · 0 评论 -
hdu(4435)天津现场赛
题意:给定每个点在平面内的坐标,要求选出一些点,在这些点建立加油站,使得总花费最少(1号点必须建立加油站)。在i点建立加油站需要花费2^i。建立加油站要求能使得汽车从1点开始走遍全图所有的点并回到1点,途中汽车加油次数不限,每个加油站的使用次数不限,但是汽车油箱有上限d(加满油可以跑距离d)。分析:突破口在于在i号点建立加油站的费用为2^i,这样特殊的花费会使得我们有一个贪心的规律,就是尽量不转载 2012-10-27 22:22:16 · 1074 阅读 · 0 评论 -
hdu (4414)(BFS+DFS)
/*暴力DFS+BFS,先DFS求出中心点,中心点的条件是它周围有四个点然后BFS判断是否为十字架,判断条件:'#'数量=4*层数+1自制测试样例:5o#oo#####oo#o#ooo###ooo#o5o#oo####ooo#o#ooo###ooo#o5oo#oooo#oo#####oo#oooo#oo3o#o###o#o0211*/原创 2012-11-05 12:43:23 · 1003 阅读 · 0 评论 -
sat
#include #include using namespace std;int n;bool *a;bool IsOk(){ if(n>=0&&n else return 0;}int main(){ cout cout cin>>n; bool S,A[10]; while(IsOk()原创 2012-09-21 01:59:33 · 740 阅读 · 0 评论 -
hdu(4007)正方形能框住最大的点数
暴搞呗。。。#include #include #include #include #include #include #include #define inf 1000300000using namespace std;const int N=1093;struct Node{ int x,y;}point[N];int n,R;原创 2012-08-27 16:31:35 · 855 阅读 · 0 评论 -
hdu(4021)八数码的解是否存在问题
题意:给出一个board,上面有24个位置,其中23个位置上放置了标有数字1~23的方块,一个为空位(用数字0表示),现在可以把空位与它旁边的方块交换,给出board的起始状态,问是否可以达到指定的状态。思路:看起来很像著名的“八数码”问题,首先,针对八个特殊位置(死角),如果这里有空位就把它和相邻的位置交换,这样之后如果两个状态的对应死角上的数字不同,那么显然是不能达到指定状态的,因为无原创 2012-09-03 17:38:11 · 1151 阅读 · 0 评论 -
hdu 4389:打巨表
题意 :一个数能被他各个位数之和整除则符合要求,给L,R,问区间里有多少个数符合要求。即使你不会DP,也可以分段打表,比如10w为一个区间,统计这有多少个符合要求,然后对于一个数,先判断在哪个区间,再把之前的求和,对所在的区间暴力搜。记得打表用的函数:freopen("E:\\out.txt","w",stdout);#include #include #include #in原创 2012-08-21 22:31:44 · 9567 阅读 · 0 评论 -
三分求一元三次方程的极值:hdu 4355
转:http://blog.csdn.net/rabia/article/details/7826144 二分法作为分治中最常见的方法,在各种比赛中经常出现(如:POJ 1434),但只适用于单调函数,若遇到凸(凹)函数求解极值,可采取三分的方法求解。凸(凹)函数在高数中的定义是:若函数的二阶导数在区间上恒大于0,则该函数在区间为凸函数;反之,小于0为凹函数。在比赛中面对一个问题而推出的原创 2012-08-10 13:54:38 · 4103 阅读 · 1 评论 -
多校第一场:hdu 4308(bfs)
最短路。给出的地图中,Y为起点,C为终点,#点不能通过,可直接忽略。所有的P为互通的传送门,故可将所以的P看作同一个点。每个能通过的点可以向上下左右四个方向走,如果对应的方向可以通过,则连边,若要走到的点是*,则边权为通过的费用,否则边权为0。连边后求Y到C的最短路即可。#include #include #include #include using namespace std;原创 2012-07-20 14:57:16 · 700 阅读 · 0 评论 -
poj 3635 (最短路,广搜,邻接表,dp)
题意 : n个城市,每个城市的油价不同,m条连通这些城市之间的路,提供油桶的容量,要你求出由城市s出发到城市e的最小费用,其中刚开始时油桶为空,一单位的油可以走以单位的长度。 看到这题目觉得很难,这主要是不会建图和DP的思想. 事实上就是类似dijsktra算法的搜索,搜索最短路。 这个题目的图的点事实上有两个维.原创 2012-07-03 06:07:25 · 1564 阅读 · 0 评论 -
poj 3621(参数搜索+二分+spfa负环求解)
【题目大意】 给出一个有向图,问求一个回路,使得回路上的点权之和/边权之和 最大。【解题思路】 转:此题是对01分数规划的应用,那么首先明白01分数规划的思想.01整数规划问题就是求解方程(a1*x1+a2*x2+..+an*xn)/(b1*x1+b2*x2+..+bn*xn)的最小值/最大值问题。其中xi = 0或1(i=1,2...n)对于此原创 2012-07-02 15:44:35 · 2214 阅读 · 3 评论 -
poj 2976(01分数规划搜索+二分答案)
题目大意就 给定n个二元组(a,b),扔掉k个二元组,使得剩下的a元素之和与b元素之和的比率最大 题目求的是 max(∑a[i] * x[i] / (b[i] * x[i])) 其中a,b都是一一对应的。 x[i]取0,1 并且 ∑x[i] = n - k; 转:那么可以转化一下。 令r = ∑a[i] * x[i] / (b[i] * x[i])原创 2012-07-02 17:25:48 · 4444 阅读 · 0 评论 -
poj 2449 A* +Dijkstra求第K短路(模板题)
所谓K短路,就是从s到t的第K短的路,第1短就是最短路。 如何求第K短呢?有一种简单的方法是广度优先搜索,记录t出队列的次数,当t第k次出队列时,就是第k短路了。但点数过大时,入队列的节点过多,时间和空间复杂度都较高。 A*是在搜索中常用的优化,一种启发式搜索。简单的说,它可以用公式表示为f(n) = g(n) + f(n),其中,f(n)是从s经由节点n到t的估价函数转载 2012-07-01 11:02:04 · 5516 阅读 · 1 评论 -
poj 3411(dfs) 思路是别人的,代码自己写,为什么是3~9次
思路:http://blog.csdn.net/lyy289065406/article/details/6689310代码:#include#include#include#include#includeusing namespace std;const int INF=0xffffff;const int MAX=50;struct EDGE转载 2012-06-29 11:30:18 · 607 阅读 · 0 评论 -
poj 1321(DFS)
题意:在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆放方案C。 像八皇后那题~~~注意恢复原来的状态就可以了。-------------------------DFS还需要练习------------------------------原创 2012-06-29 02:29:28 · 496 阅读 · 0 评论 -
poj 3107(图经典的DFS+回溯)
给出一个树,求删除一个点后,他的子树最大节点数的最小值。有点绕啊,,,~~ 从第一个点进行DFS,求出每个节点除了递归的上层之外的叶子的子树最大节点数m,递归的过程中求出联通本身的节点数k,则该节点的最大子树就是max(m,n-k);有点像dp. dfs还要多练~~~~~~~~~~~~~~~~~~~#include#include#include#include原创 2012-06-28 23:51:25 · 683 阅读 · 0 评论 -
poj 3126(BFS)
题意:给出起点素数,只能变4位上的一个数变成零一个素数,求变成终止的素数至少需要多少不? 思路:很容易想到BFS而且素数筛选,但是素数之间的关系有点不好办,起初想用map[][]来存,如果能变成另一个素数为1,然后BFS();必然会超时啊,然后用vectot超时代码:Source CodeProblem: 3126 User: 1013101127原创 2012-06-27 15:38:47 · 3785 阅读 · 0 评论 -
金华邀请赛 B题 poj 4045
昨晚没能把这题A掉,很懊悔,且不管什么树形DP,只要dfs水平过硬,这题也就变成水的了。大神们都说是比较简单但是却是比较经典的树形dp,还有用两次DFS扫描全树就行。赛后请教了孟神,才明白就是这么个样。重新打了代码,T了两次,就A了。 题意:n个点之间有n-1条边相连,形成一棵树,在这n个点上选一个点建一个发电站,要求该发电站到所有点的代价总和最小,每一个点到发电站的代价为I*I*R原创 2012-07-07 21:06:58 · 1844 阅读 · 0 评论 -
NP问题:多机调度问题(贪心)
#include #include #include #include #include #include using namespace std;struct Node{ int time;//机器的已经工作的时间 int d[200];//用于存储在该机器上完成的作业 int cnt;//记录d数组的个数 int id;/原创 2012-11-30 09:14:31 · 2134 阅读 · 0 评论