hdu 3339 In Action
点击打开链接
dij+01背包
#include<iostream>
using namespace std;
# define inf 1000000000
int adj[101][101];
struct sta
{int dis,pow;
}st[110];int max(int a,int b)
{return a>b?a:b;
}void Dijkstra(int n,int s)
{int i,j;bool b[101];for(i=0;i<=n;i++){b[i]=0;st[i].dis=adj[s][i];}b[s]=1;for(i=0;i<n;i++){int tmp=inf,u=s;for(j=0;j<=n;j++) if(b[j]==0 && st[j].dis<tmp){tmp=st[j].dis;u=j;}b[u]=1;for(j=0;j<=n;j++)if(b[j]==0 && adj[u][j]<inf){int tt=st[u].dis+adj[u][j];if(st[j].dis>tt) st[j].dis=tt;}}
}int main()
{int i,j,t;cin>>t;while(t--){int n,m;scanf("%d%d",&n,&m);for(i=0;i<=n;i++)for(j=0;j<=n;j++){if(i!=j) adj[i][j]=inf;else adj[i][j]=0;}for(i=0;i<m;i++){int s,t,dd;scanf("%d%d",&s,&t);scanf("%d",&dd);if(dd<adj[s][t]) adj[t][s]=adj[s][t]=dd; //注意! }for(i=1;i<=n;i++)scanf("%d",&st[i].pow);Dijkstra(n,0);int bag=0,f=1,total=0;for(i=1;i<=n && f;i++) {bag+=st[i].dis;total+=st[i].pow;if(st[i].dis==inf) f=0;}if(!f) printf("impossible\n");else{int opt[100001];for(i=0;i<=bag;i++)opt[i]=0;for(i=1;i<=n;i++) //背包 for(j=bag;j>=st[i].dis;j--)opt[j]=max(opt[j],opt[j-st[i].dis]+st[i].pow);total=total/2+1;for(i=1;i<=bag;i++)if(opt[i]>=total){printf("%d\n",i);break;}}}return 0;
}
转载于:https://www.cnblogs.com/yyf573462811/archive/2012/07/25/6365386.html
hdu 3339 In Action相关推荐
- hdu 3339 In Action 背包+flyod
In Action Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=333 ...
- HDU 3339 In Action 最短路+01背包
题目链接: 题目 In Action Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- 小算法小心情:背包问题就是陪你看花开向阳
一开始接触背包问题,总会有些困扰,无法完全理解,或者说不断地忘记所谓的公式,特神说分享,可以让许多人少走弯路,我觉得颇有道理,其实我想做的,只是努力让让算法变得看上去简单易懂一些,因为我也曾是个迷惘无 ...
- 杭电OJ分类题目(4)-Graph
原题出处:HDOJ Problem Index by Type,http://acm.hdu.edu.cn/typeclass.php 杭电OJ分类题目(4) HDU Graph Theory - U ...
- ACM 图论入门题(附代码解释)
目录 HDU 1869 六度分离 HDU 1874 畅通工程续 (最短路) HDU 3339 In Action (最短路+01背包) HDU 1162 Eddy's picture(prime算法) ...
- 【转载】图论 500题——主要为hdu/poj/zoj
转自--http://blog.csdn.net/qwe20060514/article/details/8112550 =============================以下是最小生成树+并 ...
- 【HDOJ图论题集】【转】
1 =============================以下是最小生成树+并查集====================================== 2 [HDU] 3 1213 How ...
- 一系列图论问题[转]
=============================以下是最小生成树+并查集====================================== [HDU] 1213 How Many ...
- kk_想要学习的知识
2018/4/27 计算几何 一.简介 计算几何属于ACM算法中比较冷门的分类,在省赛中只在前几年考察过,这两年还没有考过,而且和高精度计算一样,遇到题目主要靠套模板,因此对题意的理解至关重要,而且往 ...
- 图论练习题(存起来练)
=============================以下是最小生成树+并查集====================================== [HDU] 1213 How Man ...
最新文章
- 除 Java 外,还有哪些编程语言蹭了 JVM 的车票?
- 基于Springboot实现在线考试管理系统
- How to use kingshard building a MySQL cluster
- R语言之MYSQL数据库获取及输出
- python和node_Python和NodeJS绘图对比
- idea使用junit测试_在JUnit测试中使用Builder模式
- LeetCode 910. 最小差值 II(贪心)
- e.html5.qq.com,QQ群官网-开放能力
- 第四章类和对象 习题答案
- layui 自定义request_layui中使用自定义数据格式对数据表格进行渲染
- js 计时器无法清除是为什么
- thinkphp后台_前后端分离决方案|thinkphpvueadmin 后台接口
- 如何修改SecureCRT中的端口转发过滤器?
- SVN下载及其安装配置
- python 恢复删除的文件_如何恢复已删除的python文件(一看就会的恢复软件)
- with admin option和with grant option的区别与用法
- 瑞吉外卖_短信验证bug
- React Native入门——布局实践:开发京东客户端首页(二)TabBar的构建
- Oracle查询表空间
- LQ0141 纸张尺寸【水题】