poj 3345 Bribing FIPA
题目大意:
解题思路:
#include<cstdio>
#include<string>
#include<cstring>
#include<map>
#include<algorithm>
using namespace std;
#define maxn 210
int cnt,head[maxn];
int f[maxn],cost[maxn],size[maxn];
int dp[maxn][maxn];
int n,m;
struct Edge{int to,next;
}edge[2*maxn];
void init()
{cnt=0;memset(head,-1,sizeof(head));memset(f,-1,sizeof(f));memset(dp,0x3f3f3f3f,sizeof(dp));memset(cost,0,sizeof(cost));memset(size,0,sizeof(size));
}
void addedge(int u,int v)
{edge[cnt].to=v;edge[cnt].next=head[u];head[u]=cnt++;
}
void tree_dp(int u,int f)
{size[u]=1;dp[u][0]=0;for(int i=head[u];i!=-1;i=edge[i].next){int v=edge[i].to;if(v!=f){tree_dp(v,u);size[u]+=size[v]; }}dp[u][size[u]]=cost[u];for(int i=head[u];i!=-1;i=edge[i].next){int v=edge[i].to;for(int j=size[u];j>=0;j--)for(int k=0;k<=j;k++)dp[u][j]=min(dp[u][j],dp[u][j-k]+dp[v][k]);}
}
int main()
{char s[100];while(gets(s),s[0]!='#'){map<string,int> q;q.clear();init();sscanf(s,"%d%d",&n,&m);int cot=1;for(int i=1;i<=n;i++){char ss[100];int a;scanf("%s%d",ss,&a);if(q.find(string(ss))==q.end())q[ss]=cot++;cost[q[ss]]=a;int root=q[ss];while(getchar()!='\n'){scanf("%s",ss);if(q.find(string(ss))==q.end())q[ss]=cot++;f[q[ss]]=root;addedge(root,q[ss]);}}for(int i=1;i<=n;i++)if(f[i]==-1)addedge(0,i);tree_dp(0,-1);int ans=0x3f3f3f3f;for(int i=m;i<=n;i++)ans=min(ans,dp[0][i]);printf("%d\n",ans);}
}
poj 3345 Bribing FIPA相关推荐
- [POJ 3345] Bribing FIPA
问题描述 There is going to be a voting at FIPA (Fédération Internationale de Programmation Association) ...
- POJ3345 Bribing FIPA 【背包类树形dp】
题目链接 POJ 题解 背包树形dp板题 就是读入有点无聊,浪费了很多青春 #include<iostream> #include<cstdio> #include<cm ...
- linux 下查看应用版本信息,Linux下查看版本信息
Linux下如何查看版本信息, 包括位数.版本信息以及CPU内核信息.CPU具体型号等. 1.# uname -a (Linux查看版本当前操作系统内核信息) 2.# cat /proc/vers ...
- POJ 动态规划题目列表
1.这份列表当然不是我原创的,从文库里下载了一份,放到这里便于自己浏览和查找题目. ※最近更新:Poj斜率优化题目 1180,2018,3709 列表一:经典题目题号: 容易: 1018, 1050 ...
- poj动态规划经典题目
列表一:经典题目题号: 容易: 1018, 1050, 1088, 1125, 1143, 1157, 1163, 1178, 1179, 1189, 1191,1208, 1276, 1322, 1 ...
- 【转】别人整理的DP大全
为什么80%的码农都做不了架构师?>>> 动态规划 动态规划 容易: 1018 , 1050 , 1083 , 1088 , 1125 , 1143 , 1157 , 1163 ...
- HOJ题目分类//放这儿没事刷刷学算法!嘻嘻!
各种杂题,水题,模拟,包括简单数论. 1001 A+B 1002 A+B+C 1009 Fat Cat 1010 The Angle 1011 Unix ls 1012 Decoding Task 1 ...
- hdu与poj题目分类
POJ 初期: 一.基本算法: (1)枚举. (poj1753,poj2965) (2)贪心(poj1328,poj2109,poj2586) (3)递归和分治法. (4)递推. (5)构造法.(po ...
- POJ 3268 D-Silver Cow Party
http://poj.org/problem?id=3268 Description One cow from each of N farms (1 ≤ N ≤ 1000) conveniently ...
- poj 2559 Largest Rectangle in a Histogram 栈
// poj 2559 Largest Rectangle in a Histogram 栈 // // n个矩形排在一块,不同的高度,让你求最大的矩形的面积(矩形紧挨在一起) // // 这道题用的 ...
最新文章
- 影像融合操作的几种途径
- phpDocument(PHPDoc) 标签大全
- 老王学linux-centos6.7drbd8.4.3
- html 360shiyanshi,360发布国内首个HTML5实验室 4大特性抢先测
- eclipse编码设置
- springmvc 的 @PathVariable
- android 帧动画的使用
- ftp服务器在线查看文件内容,ftp服务器PDF文件在线查看的实现方法
- 论文笔记(Neural Graph Collaborative Filtering)
- linux的软件很大,linux软件raid10,机器相同,结果差异很大
- software engineering homework, product analysis
- 子查询 不同情况 mysql
- redis-springboot-redistemplate更改序列化方式
- wifi密码本 字典(免费)
- java项目-第33期基于SSM框架的图书管理系统【毕业设计】
- Vivado下载mcs到板子没反应
- 蒲公英快速查询苹果手机UDID方法
- pwm一个时间单位_时间的换算单位是怎么换算的啊,秒,毫秒,微妙,纳秒等
- php发送邮件功能(以QQ邮件为例)
- 华为鸿蒙os尝鲜,华为鸿蒙os尝鲜版