Minimal Ratio Tree HDU - 2489

暴力枚举点,然后跑最小生成树得到这些点时的最小边权之和。

由于枚举的时候本来就是按照字典序的,不需要额外判。

错误原因:要求输出的结尾不能有空格。

 #include<cstdio>
#include<cstring>
#include<vector>
using namespace std;
bool ok[],ok2[];
bool vis[];
int num,n,m;
int a[],b[][];
vector<int> vec;
double anss;
int dis[];
void prim()
{
memset(vis,,sizeof(vis));
memset(dis,0x3f,sizeof(dis));
int i,j,s,sum=,mina,minid,s1=;
for(s=;s<=n;s++)
if(ok[s])
break;
vis[s]=;
dis[s]=;
for(i=s+;i<=n;i++)
if(ok[i])
dis[i]=b[s][i];
for(i=;i<m;i++)
{
mina=0x3f3f3f3f;
minid=;
for(j=;j<=n;j++)
if(ok[j]&&!vis[j]&&mina>dis[j])
{
mina=dis[j];
minid=j;
}
sum+=mina;
dis[minid]=;
vis[minid]=;
for(j=;j<=n;j++)
if(ok[j]&&!vis[j]&&dis[j]>b[minid][j])
dis[j]=b[minid][j];
}
for(i=;i<=n;i++)
if(ok[i])
s1+=a[i];
double tt=(double)sum/s1;
if(tt<anss)
{
anss=tt;
memcpy(ok2,ok,sizeof(ok));
}
}
void dfs(int minn)
{
if(num>=m)
{
prim();
return;
}
for(int i=minn+;i<=n;i++)
if(!ok[i])
{
ok[i]=;
num++;
dfs(i);
ok[i]=;
num--;
}
}
int main()
{
int i,j;
scanf("%d%d",&n,&m);
while(n!=&&m!=)
{
vec.clear();
anss=;
num=;
for(i=;i<=n;i++)
scanf("%d",&a[i]);
for(i=;i<=n;i++)
for(j=;j<=n;j++)
scanf("%d",&b[i][j]);
dfs();
for(i=;i<=n;i++)
if(ok2[i])
vec.push_back(i);
for(i=;i<vec.size()-;i++)
printf("%d ",vec[i]);
printf("%d\n",vec[vec.size()-]);
scanf("%d%d",&n,&m);
}
return ;
}

Minimal Ratio Tree HDU - 2489的更多相关文章

  1. HDU 2489 Minimal Ratio Tree (dfs+Prim最小生成树)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2489 Problem Description For a tree, which nodes and ...

  2. HDU 2489 Minimal Ratio Tree (DFS枚举+最小生成树Prim)

    Minimal Ratio Tree Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 32768/32768K (Java/Other) ...

  3. HDU 2489 Minimal Ratio Tree 最小生成树+DFS

    Minimal Ratio Tree Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Other ...

  4. HDU 2489 Minimal Ratio Tree(暴力+最小生成树)(2008 Asia Regional Beijing)

    Description For a tree, which nodes and edges are all weighted, the ratio of it is calculated accord ...

  5. HDU 2489 Minimal Ratio Tree(prim+DFS)

    Minimal Ratio Tree Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Other ...

  6. hdu2489 Minimal Ratio Tree

    hdu2489 Minimal Ratio Tree 题意:一个 至多  n=15 的 完全图 ,求 含有 m 个节点的树 使 边权和 除 点权和 最小 题解:枚举 m 个 点 ,然后 求 最小生成树 ...

  7. HDUOJ----2489 Minimal Ratio Tree

    Minimal Ratio Tree Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Other ...

  8. HDU2489 Minimal Ratio Tree 【DFS】+【最小生成树Prim】

    Minimal Ratio Tree Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Other ...

  9. hdu 2489 Minimal Ratio Tree

    http://acm.hdu.edu.cn/showproblem.php?pid=2489 这道题就是n个点中选择m个点形成一个生成树使得生成树的ratio最小.暴力枚举+最小生成树. #inclu ...

随机推荐

  1. 如何利用Fluxion诱惑目标用户获取WPA密码

      前言 由于ISP替代了易受攻击的路由器,供渗透测试人员选择的诸如Reaver这样的工具越来越少,对于特定的目标,哪些工具有用与否能够确定的也很少.而如果采用暴力破解WPA密码,可能会需要大量的时间 ...

  2. c++多线程编程:常见面试题

    题目:子线程循环 10 次,接着主线程循环 100 次,接着又回到子线程循环 10 次,接着再回到主线程又循环 100 次,如此循环50次,试写出代码 子线程与主线程必有一个满足条件(flag == ...

  3. hdu 1385 Minimum Transport Cost(floyd &amp;&amp; 记录路径)

    Minimum Transport Cost Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/O ...

  4. 【求建议】毕业之声——信院IT类毕业学子经验分享交流会

    一:缘由 在和非常多学子交流,及上课的经历中,发现一个非常普遍的现象:部分大一学生即失去了对学习.对专业的兴趣.有人在迷茫之后奋起直追.从而珍惜利用不多的大学时光努力提高自己.有人在迷茫中沉沦,沉迷于 ...

  5. C#建立最简单的web服务,无需IIS

    软件架构师何志丹 本程序仅仅是入门级程序.所以不考虑 1.多线程. 2,安全性. 3,不考虑端点下载文件. 4,Keep-Alive. 5,不考虑head. 6,为了简洁,删掉了catch的内容. e ...

  6. Spring学习笔记——Spring中lazy-init与abstract具体解释

    Spring的懒载入的作用是为了避免无谓的性能开销,就是当真正须要数据的时候才去运行数据的载入操作.不只在Spring中.我们在实际的编码过程中也应该借鉴这种思想,来提高我们程序的效率. 首先我们看一 ...

  7. 各种“GND”

    资料来自网上,把个人觉得靠谱的摘取下来 1.地分类: a)直流地:直流电路“地”,零电位参考点: b)交流地:交流电的零线.要与地线区别开,不过,有时候拉电入户之前会把地线和零线接在一起: c)功率地 ...

  8. SVN代码丢失惊魂

    吓死了吓死了!要是那些代码丢了的话,要重新码一遍,我宁愿去吃屎. 某天快下班走人的时候,从SVN服务器update了本地代码,结果发现代码变回了上个月的样子.看SVN的日志,发现提交记录从6月22日一 ...

  9. unable to instantiate activity...

    Activity跳转到Activity,后来由于项目需要将第二个Activity改成继承FragmentActivity,跳转报错...无法初始化Activity,找不到class云云.. 最后是将b ...

  10. 2016/3/13 MySQL 增删查改 CRUD 用代码实现

    用代码实现数据库数据输入 T-SQL语句 查询语句分几块 ①创建表 create table Car (Code varchar(50) primary key, #primary key 主键 定义 ...