博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【算法练习】 天平( UVa 839) 输入一个树状天平,根据力矩相等原则判断是否平衡 和 小球下落(UVa 679)判断最后一个小球会落到哪里
阅读量:3903 次
发布时间:2019-05-23

本文共 1305 字,大约阅读时间需要 4 分钟。

天平(Not so Mobile, UVa 839)

输入一个树状天平,根据力矩相等原则判断是否平衡。所谓力矩相等,就是W l D l =W r D r ,其中W l 和W r 分别为左右两边砝码的重量,D为距离。

 
思路:
采用递归(先序)方式输入:每个天平的格式为W l ,D l ,W r ,D r ,当W l 或W r 为0时,表示该“砝码”实际是一个子天平,接下来会描述这个子天平。当W l =W r=0时,会先描述左子天平,然后是右子天平。 样例:
在这里插入图片描述
输入:

在这里插入图片描述

输出“平衡”
代码:

#include 
using namespace std;bool solve(int& w) {
int w1, d1, w2, d2; bool b1 = true, b2 = true; cin >> w1 >> d1 >> w2 >> d2;//b1 b2用于判断左子天平和右子天平是否平衡 if (!w1) b1=solve(w1); if (!w2) b2 = solve(w2); w = w1 + w2;//w用于修改子天平的总重量 return b1 && b2 && (w1 * d1 == w2 * d2);}int main(){
int T, W; cin >> T;//天平数量 while (T--) {
if (solve(W)) cout << "平衡"; else cout << "不平衡"; }}

小球下落

在这里插入图片描述

有一棵二叉树,最大深度为D,且所有叶子的深度都相同。所有结点从上到下从左到右编号为1, 2, 3,…, 2* D-1。在结点1处放一个小球,它会往下落。每个内结点上都有一个开关,初始全部关闭,当每次有小球落到一个开关上时,状态都会改变。当小球到达一个内结点时,如果该结点上的开关关闭,则往左走,否则往右走,直到走到叶子结点,如图所示。

样例输入:
4 2
3 4
10 1
2 2
8 128

样例输出:

12
7
512
3

分析:

对于每一个结点k 其左子节点 右子节点的编号分别是2k和2k+1

每次落到一个位置开关状态均变化,尤其注意第一个结点每次都会变化

在这里插入图片描述
4 2:
一共4层 有两个小球时,第二个小球最后下落的位置
输出12
代码:

#define _CRT_SECURE_NO_WARNINGS#include 
#include
using namespace std;const int maxd = 20;//最大深度int m[1 << maxd];//最大结点个数为2的maxd次方-1int main(){
int d, n;//d 深度 n结点总个数 while (scanf("%d%d", &d, &n) == 2) {
memset(m, 0,sizeof(m)); int k; for (int i =0;i
((1<

转载地址:http://rvten.baihongyu.com/

你可能感兴趣的文章
vue中使用mock模拟后端数据
查看>>
vue中如何实现table的详情页获取及渲染
查看>>
常见的数据库有哪几种?
查看>>
Java后端的SQL语句
查看>>
vue中利用js函数截取时间的年月日时分秒
查看>>
数据库(sql)截取时间数据方法函数
查看>>
vue中报错:Error in render: TypeError: Cannot read property name(或者其他属性) of undefined解决办法
查看>>
vue中报错:`value` provides invalidate moment time.
查看>>
前端发起网络请求 返回状态码含义
查看>>
VUE 使用router-link路由参数变化,页面数据不刷新问题
查看>>
vue使用v-for实现hover点击button按钮颜色变换效果
查看>>
vue中如何利用js如何检测网络状况,监听网络状态
查看>>
vue获取当前日期以及前七天日期
查看>>
vue + antd项目Table的前台内容排序
查看>>
Ant Design Vue 如何分页(后台传入)
查看>>
vue项目pdf文档的在线预览(注:意外服务器响应或pdf文件缺失损坏解决办法)
查看>>
js取小数点后几位方法总结
查看>>
Vue中父组件向子组件传递一个动态的值,子组件保持实时更新。
查看>>
vue父子组件之间互相传值,以及组件之间方法相互调用
查看>>
解决Win10家庭版找不到 gpedit.msc (组策略)的解决方法(关闭系统自动更新需要)
查看>>