当前位置: 首页 > news >正文

黑龙江省建设监理协会网站wordpress头像官网

黑龙江省建设监理协会网站,wordpress头像官网,开源 网站源代码,定制手机微网站GitHub - jzplp/aoapc-UVA-Answer: 算法竞赛入门经典 例题和习题答案 刘汝佳 第二版 这道题需要: 1. 遍历二叉树的每种构成方式。我这里每次把当前所有结点列出,然后遍历选取两个组合构成一个新结点,原来的结点剔除,新结点加入。…

GitHub - jzplp/aoapc-UVA-Answer: 算法竞赛入门经典 例题和习题答案 刘汝佳 第二版

这道题需要:

1. 遍历二叉树的每种构成方式。我这里每次把当前所有结点列出,然后遍历选取两个组合构成一个新结点,原来的结点剔除,新结点加入。最后只剩一个结点时,就得到二叉树的一种情况。我这里相当于是从叶子结点向上遍历。由于数据量较少,所以我这里没有剪枝。

注意选取两个结点后也对应着两种,A放在左边B放在右边 和 B放在左边A放在右边。

2. 计算宽度时,左侧的宽度除了【左子树的宽度+绳子左侧的长度】之外,右子树的左子树也可能很宽,超过【左子树的宽度+绳子左侧的长度】。因此,要对【右子树的左子树-绳子右侧的长度】和【左子树的宽度+绳子左侧的长度】进行比较,看看谁更长。右侧同理。

#include<stdio.h>
#include<string.h>int stones[20];
int s;
double r;double maxWidth;struct Node {bool enable;int weight;double left, right;
};
Node arr[50];double max(double a, double b) {if(a > b) return a;return b;
}Node mergeNode(int i, int j) {Node no;no.enable = true;no.weight = arr[i].weight + arr[j].weight;double a = (double)arr[i].weight / no.weight;double b = (double)arr[j].weight / no.weight;no.left = max(b + arr[i].left, arr[j].left - a);no.right = max(a + arr[j].right, arr[i].right - b);return no;
}void getValue(int len) {int i;double value;for(i = 0; i < len; ++i) {if(arr[i].enable) {value = arr[i].left + arr[i].right;if(value <= r && value > maxWidth) {maxWidth = value;}return;}}
}void cal(int len, int enableLen) {int i ,j, k;if(enableLen == 1) {getValue(len);}for(i = 0; i < len; ++i) {if(!arr[i].enable) continue;for(j = i + 1; j < len; ++j) {if(!arr[j].enable) continue;// 二重循环找到一个组合 区分组合在左边和在右边的场景 --enableLen;arr[i].enable = false;arr[j].enable = false;arr[len] = mergeNode(i, j);cal(len+1, enableLen);arr[len] = mergeNode(j, i);cal(len+1, enableLen);++enableLen;arr[i].enable = true;arr[j].enable = true;}}
}int main() {int n, i;scanf("%d", &n);while(n--) {scanf("%lf %d", &r, &s);for(i = 0; i < s; ++i) scanf("%d", &stones[i]);if(s == 1) {printf("%.16lf\n", 0.0);continue;}maxWidth = -1;for(i = 0; i < s; ++i) {arr[i] = { true, stones[i], 0, 0 };}cal(s, s);if(maxWidth < 0)printf("-1\n");elseprintf("%.16lf\n", maxWidth);}return 0;
}

http://www.yayakq.cn/news/20611/

相关文章:

  • 重庆建设厂招工信息网站一个自己的网站
  • 石家庄购物网站排名江西seo
  • 网站维护要做哪些工作全国十大网站建设公司排名
  • 如何在外管局网站上做延期网站建设目标文档
  • 注册免费的网站广告关键词有哪些类型
  • 如何创建商业网站seo技术教程网
  • 建域名做网站免费网站怎么建立
  • php商城网站开发实例视频教程珠海关键词优化收费
  • 天津哪家制作网站好梁山县网站建设
  • 重庆网站设计制作网站网页正在跳转中
  • 做签证的网站html5个人博客网站模板
  • 做logo去哪个网站wordpress disqus
  • 做网站的公司面试wordpress 会员购买系统
  • 网站的js效果代码网站投诉平台
  • 东莞网站建设如何做普通网站与营销型网站有什么区别
  • 中国建设银行信用卡网站手机网站制作代理商
  • 该模板尚未授权此网站建设部网站安全事故
  • 网站怎么样做不违规建立健全安全生产责任制和安全生产规章制度
  • 网站开发能进入无形资产吗wordpress给文章标题加上序号
  • 淘宝上面建设网站深圳办公室设计公司排名
  • 网站设计稿淘宝客怎么自己做网站及APP
  • 设计专业考研平面素材网站页游开服表
  • 做网站开发要学什么语言网站建设公司效益怎么样
  • 济南专业做网站的公司哪家好做电影网站的工具
  • 云南建设厅和网站重庆装修
  • 网站开发工程是待遇淘宝网站建设目的
  • 营销型网站建设个人总结怎么写上海网站建设与设计公司
  • 苏州工业园区两学一做网站c2c平台代表
  • 建动画网站需要多少钱建设银行网站首页是多少
  • ic交易网站建设管理 wordpress