摘要: Problem: http://poj.org/problem?id=1135求图中距离1点最远(包括点和边上的点)的距离先对所有点求单源(点1)最短路然后每条边上的点距离1点最远的距离必为边两端点到点1的最短距离和该边的长度 三者和的一半现在点到源(点1)的距离知道了 边到源(点1)的距离也知道了 只需要比较两者了#include#include#includeusing namespace std;#define MAXN 510#define MAXE 250010int n,m,size,head[MAXN],A[MAXE],B[MAXE],pre[MAXN];double C[MAX 阅读全文
posted @ 2014-02-11 21:35 Cshhr 阅读(699) 评论(0) 推荐(0) 编辑
摘要: Problem: http://acm.hdu.edu.cn/showproblem.php?pid=1257依次拦截导弹,如果当前存在的拦截系统无法拦截该导弹,增加一个拦截系统否则将当前拦截系统中 不小于该导弹高度的 最小高度的拦截系统的高度设置为该导弹的高度#includeint n,a,lj[10000]={0},ans;void work(){ int L=1,R=ans; while(Llj[ans])lj[++ans]=a;//增加一个新的拦截系统 else work(); } printf("%d\n",ans); ... 阅读全文
posted @ 2014-02-11 13:23 Cshhr 阅读(179) 评论(0) 推荐(0) 编辑
摘要: Problem: http://acm.hdu.edu.cn/showproblem.php?pid=1257因为导弹是依次发射的没发改变其发射循序直接贪心就好,每套拦截系统按循序拦截可拦截的导弹剩下未被拦截的导弹就形成了一个新的导弹发射序列#includeint main(){ int n,a[10000];//导弹高度 bool f[10000];//导弹是否被拦截 while(scanf("%d",&n)!=EOF){ for(int i=0;i<n;i++){ scanf("%d",&a[i]); f[i]... 阅读全文
posted @ 2014-02-11 12:06 Cshhr 阅读(158) 评论(0) 推荐(0) 编辑
摘要: Problem: http://acm.hdu.edu.cn/showproblem.php?pid=4301长x的巧克力分成y块时,最末端的两小块巧克力可能是分在一块上 用DPh[x][y]表示,也可能分在两块上 用DPf[x][y]表示当求DPh[x+1][],DPf[x+1][]时,求可以通过前面的DPh[x][],DPf[x][]上来求值/*相同数字表示被分在一起 x -> x+1 0 00 01 00 01 01 0 -> 00 , 01 , 01 , 00 , 02块数;y y y+1 y+1 y+1 y+2 ... 阅读全文
posted @ 2014-02-11 11:31 Cshhr 阅读(211) 评论(0) 推荐(0) 编辑