算法和数据结构
ac_dao_di
这个作者很懒,什么都没留下…
展开
-
hdu 5691 Sitting in Line(百度之星A轮) 状压_旅行商问题变型
hdu 5691 Sitting in Line(百度之星A轮) 状压_旅行商问题变型求max(a1 * a2 + a2 * a3 + a3 * a4 + ... + an-1 * an)原创 2016-05-22 23:06:55 · 818 阅读 · 0 评论 -
hdu 5033 单调栈的维护
题意:给定一系列摩天大楼的高度和we原创 2014-10-06 16:57:23 · 806 阅读 · 0 评论 -
hdu 5036
/*created at 2014-10-6 22:52;result: 1640ms;*/#include#include#includeusing namespace std;const int MAX=1005;bitset b[MAX];int n,cas=1;double ans;void floyd();int main(){原创 2014-10-06 22:02:09 · 854 阅读 · 0 评论 -
hdu 2857 简单几何
/*created at 2014-10-17 21:01;result: 0ms*/#include#include#include#includeusing namespace std;const double EPS=1e-8;int main(){ int t,i; double x1,y1,x2,y2,xs,ys,xe,ye原创 2014-10-17 21:09:27 · 715 阅读 · 0 评论 -
poj 2437
题意:有n#include#include#includeusing namespace std;struct node{ int st,ed; bool operator return st }};const int MAX=10005;node p[MAX];int main(){ int n,L,i原创 2014-10-22 21:56:09 · 845 阅读 · 0 评论 -
hdu 5108 质因数分解
/*created 2014.11.23 12:22result 31ms*/#include#include#includeusing namespace std;const int MAX=100005;int vis[MAX],prime[MAX];/*求出最大的质因数,就是解。n=p1^n1*p2^n2*p3^n3……,其中质因数分解可以从sqr原创 2014-11-23 12:28:20 · 724 阅读 · 0 评论 -
poj 2516 最小费用最大流
/*题意:给定n个采购商所需要的k种货物,m个供应商提供的k种货物,对每种货物,从供应商运到采购商所需要的单位路费,求最小总费用。解法:构图:采购商与源点构边,容量为对应货物该采购商的需求量,费用为0。 采购商与供应商构边,容量为对应货物该采购商的需求量,费用为对应货物从供应商运到采购商所需要的单位路费。 供应商与汇点构边,容量为供应商对原创 2014-11-23 17:58:16 · 621 阅读 · 0 评论 -
poj 2452 想法题
#include#include#includeusing namespace std;int main(){ int n,data[50005],len,i,curmax,posmax,j; //freopen("in.txt","r",stdin); while(scanf("%d",&n)!=EOF) { for(原创 2014-10-24 14:52:07 · 648 阅读 · 0 评论 -
hdu 5135 深搜
/*题意:给你n根筷子,构成三角形,求所有三角形和的最大值。题解:深搜。*//*result : 234mstime : 2014.12.7 11:16*/#include#include#include#includeusing namespace std;const int MAX=15;int n,stick[MAX],vis[MAX]原创 2014-12-07 11:31:00 · 566 阅读 · 0 评论 -
hdu 5178想法题
比赛时,想法是:固定位置b,然后在b前面找大小处于[x[b] - k, x[b] + k]的数字个数,最后在加起来就是结果,但是要动态的维护b之前的数自动从小到大排序,每次都会新添加一个数,可以用二分插入,但是往后移动的数太多,直接就tle了。后来的想法是:把原题等价转化一下,先把数据排序,然后对于当前位置i,找到左边的第一个>= x[i] - k的位置pos,则结果就是所有i - pos 的原创 2015-03-01 15:44:04 · 754 阅读 · 0 评论 -
codeforces 500d 树形dp和概率
求期望,公式是从树中任选3个点,共有C(n, 3)种情况,所有情况的和 / C(n, 3)即为答案。对于树中的任意两个点,可以构成一条固定的路径,再从剩下的n - 2个点找一个点,可以得到另外两条路径,共有n - 2种情况。所以每条路径出现的次数为n - 2次。 假设边Ei共有Ci条路径经过,则对于i = 1 : n, Wi * Ci的和即为所有路径的权和, 结果为所有路径的权和原创 2015-04-25 21:12:01 · 685 阅读 · 0 评论 -
hdu 5067 状态dp
#include#include#include#include#includeusing namespace std;struct node{ int x,y;};node p[20];const int MAX=1int a[MAX],dp[MAX][15];int main(){ int n,m,i,j,data,cnt原创 2014-10-18 21:55:13 · 737 阅读 · 0 评论 -
codeforces 391E2 (【Codeforces Rockethon 2014】E2)
/* 题意:有三棵树,每颗树有ni个结点,添加两条边把这三棵树连接起来,合并成一棵树,使得树中任意两点之间的最短路径 的和最大。 分析: 三棵树要合并成一棵树,则第一棵树必须选择一个点,假设为X,第二棵树必须选择两个点,假设为Y1, Y2,第三棵树必须选择一个点,假设为Z 记第一棵树中所有结点到X的路径总和为:tot1 第二棵树中所有结点到Y1,Y2原创 2015-07-26 22:12:37 · 957 阅读 · 0 评论 -
poj2385 动态规划
poj2385 : 有两棵苹果树,t分钟其中一棵会掉一个苹果,一个人开始时站在树0下,可以在两棵苹果树间最多移动w次,求这个人最多可以吃到的苹果数量。 题解:dp[t][w][x]表示第t分钟在苹果树x下,且已经最多移动了w次,注意是最多,不一定是刚好移动了w次。原创 2016-04-24 14:52:31 · 485 阅读 · 0 评论 -
poj 2823 单调队列
/*created at 2014-10-6 11:42;result: 6500ms C++;*/#include#includeusing namespace std;const int MAX=1000005;int incq[MAXvoid getIncq();void getDecq();int main(){ int i;原创 2014-10-06 12:42:55 · 499 阅读 · 0 评论