HDU 3339 In Action
2014-04-09 20:16
387 查看
SPFA+背包吧
双向边,边的数组开小了,WA了几次
背包以0到任意点的最短距离之和为容量,求dp[i]>sum/2+1的最小的i即可
双向边,边的数组开小了,WA了几次
背包以0到任意点的最短距离之和为容量,求dp[i]>sum/2+1的最小的i即可
#include <iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<queue> #define M 10005 #define INF 1<<29 #define N 105 using namespace std; int n,cnt,head ,dis ,p ,vis ,dp[M]; struct edge{ int v,w,next; }e[M*2]; void init(){ cnt=0; memset(head,-1,sizeof(head)); } void addedge(int u,int v,int w){ e[cnt].v=v;e[cnt].w=w;e[cnt].next=head[u];head[u]=cnt++; e[cnt].v=u;e[cnt].w=w;e[cnt].next=head[v];head[v]=cnt++; } void SPFA(int u){ queue<int>q; int i,v,w; for(i=1;i<=n;i++){ dis[i]=INF; vis[i]=0; } q.push(u); while(!q.empty()){ u=q.front(); q.pop(); vis[u]=0; for(i=head[u];i!=-1;i=e[i].next){ v=e[i].v; w=e[i].w; if(dis[u]+w<dis[v]){ dis[v]=dis[u]+w; if(!vis[v]){ vis[v]=1; q.push(v); } } } } } int main() { int t,m,u,v,w,i,sum,tmp,total; scanf("%d",&t); while(t--){ init(); scanf("%d%d",&n,&m); while(m--){ scanf("%d%d%d",&u,&v,&w); addedge(u,v,w); } sum=0; for(i=1;i<=n;i++){ scanf("%d",&p[i]); sum+=p[i]; } SPFA(0); sum=sum/2+1; total=0; for(i=1;i<=n;i++) if(dis[i]!=INF) total+=dis[i]; memset(dp,0,sizeof(dp)); for(i=1;i<=n;i++){ for(v=total;v>=dis[i];v--){ dp[v]=max(dp[v],dp[v-dis[i]]+p[i]); } } for(i=0;i<=total;i++) if(dp[i]>=sum) break; if(i<=total) printf("%d\n",i); else printf("impossible\n"); } return 0; } /* 100 2 3 0 2 9 2 1 3 1 0 2 3 2 3 3 0 1 1 0 2 2 0 3 3 2 3 5 5 5 0 1 8 0 2 1 0 3 1 0 4 1 0 5 1 4 1 1 1 2 */
相关文章推荐
- UISearchBar控件
- va_list va_start va_arg va_end原理与使用
- Source Insight 文件常用设置
- Entity Framework学习笔记(五)----Linq查询(2)---贪婪加载
- 第五周作业——有向图邻接表表示及反向图构造
- EMI电磁兼容&去耦
- UVA 11468 Substring(AC自动机+概率DP)
- c# & Fizzler to crawl web page in a certain website domain
- Segmentation fault (core dumped)(段错误)
- Windows环境下配置Objective-C的编译环境
- leetcode之Pascal's Triangle II
- 扑克序列 - 蓝桥杯
- 高通Vuforia AR SDK CloudReco案例
- 扑克序列 - 蓝桥杯
- C# 接口初探
- java中一个值得注意的问题---类成员初始化与变量初始化的区别
- 加个控件来试试
- Group By,Order By,Having
- Expression的烦恼
- POJ1481 The Die Is Cast (DFS & BFS 结合)