839 - Not so Mobile (UVA)
题目链接如下:
Online Judge
这道题刘汝佳的解法极其简洁,用了20来行就解决了问题。膜拜……
他的解法如下:天平(UVa839紫书p157)_天平 uva 839_falldeep的博客-CSDN博客
我写了两个(都很冗长),一开始一直报错,搞得我十分头大,后来发现是建立new node的时候left, right孩子没有初始化为nullptr……
第一个简洁一些,但是就算下面天平已经不平衡了,还是会一直计算到结束。代码如下:
#include <cstdio>
// #define debugstruct node{int wt, dis;node* left = nullptr;node* right = nullptr;
};
bool flag;void dfs(node* rt){rt->left = new node;rt->right = new node;scanf("%d %d %d %d", &rt->left->wt, &rt->left->dis, &rt->right->wt, &rt->right->dis);if (!rt->left->wt){dfs(rt->left);}if (!rt->right->wt){dfs(rt->right);}rt->wt = rt->left->wt + rt->right->wt;if (rt->left->wt * rt->left->dis != rt->right->wt * rt->right->dis){flag = false;}
}void deleteTree(node* rt){if (rt->left){deleteTree(rt->left);}if (rt->right){deleteTree(rt->right);}delete rt;
}int main(){#ifdef debugfreopen("0.txt", "r", stdin);freopen("1.txt", "w", stdout);#endifint n, kase;scanf("%d", &n);for (kase = 0; kase < n; ++kase){printf("%s", kase ? "\n" : "");flag = true;node* root = new node;dfs(root);printf("%s\n", flag ? "YES" : "NO");deleteTree(root);}#ifdef debugfclose(stdin);fclose(stdout);#endifreturn 0;
}
另一个是中间发现有问题了就可以提前跳出:
#include <iostream>
#include <sstream>
#include <string>
#include <vector>
// #define debugstruct node{int wt, dis;node* left = nullptr;node* right = nullptr;
};
std::string line;
int n, kase, wl, dl, wr, dr, p;
std::vector<std::string> vec;
bool flag;void dfs(node* rt){std::stringstream in(vec[p++]);in >> wl >> dl >> wr >> dr;rt->left = new node;rt->left->wt = wl;rt->left->dis = dl;rt->right = new node;rt->right->wt = wr;rt->right->dis = dr;if (!rt->left->wt){dfs(rt->left);if (!flag){return;}rt->left->wt = rt->left->left->wt + rt->left->right->wt;}if (!rt->right->wt){dfs(rt->right);if (!flag){return;}rt->right->wt = rt->right->left->wt + rt->right->right->wt;}if (rt->left->wt * rt->left->dis != rt->right->wt * rt->right->dis){flag = false;}
}void deleteTree(node* rt){if (rt->left){deleteTree(rt->left);}if (rt->right){deleteTree(rt->right);}delete rt;
}int main(){#ifdef debugfreopen("0.txt", "r", stdin);freopen("1.txt", "w", stdout);#endifscanf("%d\n\n", &n);for (kase = 0; kase < n; ++kase){printf("%s", kase ? "\n" : "");while (getline(std::cin, line) && !line.empty()){vec.push_back(line);}flag = true;node *root = new node;p = 0;dfs(root);printf("%s\n", flag ? "YES" : "NO");vec.clear();deleteTree(root);}#ifdef debugfclose(stdin);fclose(stdout);#endifreturn 0;
}
相关文章:
839 - Not so Mobile (UVA)
题目链接如下: Online Judge 这道题刘汝佳的解法极其简洁,用了20来行就解决了问题。膜拜…… 他的解法如下:天平(UVa839紫书p157)_天平 uva 839_falldeep的博客-CSDN博客 我写了两个(都很冗长ÿ…...
php字符串处理函数的使用
php字符串处理函数的使用 trim() trim()函数的功能用于去除字符串首尾的空白字符(包括空格、制表符、换行符等)。它可以用于清理用户输入的数据或去除字符串中的多余空格。 <?php $char" holle world! ";echo trim($char) ?>str_repl…...
UEC++ day8
伤害系统 给敌人创建血条 首先添加一个UI界面用来显示敌人血条设置背景图像为黑色半透明 填充颜色 给敌人类添加两种状态表示血量与最大血量,添加一个UWidegtComponet组件与UProgressBar组件 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category "Enemy …...
学习记录——ipv4、ipv6与ip、DNS、网络协议
文章目录 前情提要:网络协议和域名DNS协议、DNS污染Ipv4、Ipv6NAT协议,IP:端口,环节IP地址枯竭NAT-PT协议,加速Ipv6应用 前情提要: 本文仅做个人的学习记录以及理解,可能存在一些错误。 网络协…...
cefsharp119.4.30(cef119.4.3,Chromium119.0.6045.159)版本升级体验支持H264及其他多个H264版本
Cefsharp119.4.30,cef119.4.3,Chromium119.0.6045.159 此更新包括一个高优先级安全更新 This update includes a high priority security update. 说明:此版本119.4.3支持H264视频播放(需要联系我),其他版本。.NETFramework 4.6.2 NuGet Gallery | CefSharp.WinForms 119.…...
“index“ should always be multi-word
vue报错:Component name “index” should always be multi-word 分析:组件名要以驼峰格式命名,自定义的要以loginIndex.vue等这种方式命名,防止和html标签冲突,所以命名index.vue 会报错 解决:在.eslint…...
服务器64GB内存、8核CPU的MySQL 8配置参数
服务器64GB内存、8核CPU的MySQL 8配置参数可以按照以下步骤进行调优: 调整缓冲区相关参数: 增加innodb_buffer_pool_size的值,将其设置为4GB或更大,以加速频繁读取的操作。 – 2147483648 增加key_buffer_size的值,将…...
Python+Qt虹膜检测识别
程序示例精选 PythonQt虹膜检测识别 如需安装运行环境或远程调试,见文章底部个人QQ名片,由专业技术人员远程协助! 前言 这篇博客针对《PythonQt虹膜检测识别》编写代码,代码整洁,规则,易读。 学习与应用推…...
我的创作纪念日——365天
机缘 最开始我写博客没有什么特别的原因,主要是因为以下几点: 练习自己的语言组织能力 记录自己学习生活中学到的知识 主要还是想找一个好的保存 Markdown 笔记的平台。 最终我选择了 CSDN,一来是因为 CSDN 对 Markdown 语法的支持较为全面…...
安卓手机便签APP用哪个,手机上好用的便签APP是什么
在日常生活及工作方面,总是有许多做不完的事情需要大家来处理,当多项任务堆叠交叉在一起时,很容易漏掉一些项目,这时候大家会借助经常携带的手机来记录容易忘记的事情,如手机上的闹钟、定时提醒软件都可以用来记录待办…...
前端Date对象的使用锦集
Date 对象用于处理日期与时间。 创造对象 var d new Date(); var d new Date(milliseconds); // 参数为毫秒 var d new Date(dateString); var d new Date(year, month, day, hours, minutes, seconds, milliseconds);方法 getDate() 获取当前日期对象是几日(1-31) cons…...
如何将ONLYOFFICE与Python应用程序集成
ONLYOFFICE是一项功能强大的开源文档编辑器,可以将文本文档、电子表格和演示文稿、电子表单编辑功能集成至任何编程语言编写的 Web 应用程序中。最新的7.5版本编辑器可以支持编辑PDF文件(批注、绘图等)。在本文中,我们会带你了解如…...
vector的简单模拟实现_C++
目录 一、vector的数据结构 二、vector的构造 三、vector的增删查改及空间管理 四、全部代码 一、vector的数据结构 vector以线性连续空间为基础来定义数据结构以及扩展功能。vector的两个迭代器,分别是start和finish,分别指向配置得来的已被使用的空…...
合并两个有序链表,剑指offer,力扣
目录 力扣题目地址: 原题题目: 我们直接看题解吧: 解题方法: 审题目事例提示: 解题思路: 具体流程如下: 代码实现: 知识补充: 力扣题目地址: 21. 合并两个有序…...
Delphi 12 Athens 发布了!
官方安装包 ☞ https://altd.embarcadero.com/download/radstudio/12.0/RADStudio_12_0_4915718.iso 安装辅助工具、控件可以戳这里 :Delphi 12 资源 RAD Stuido 12 Athens ,这次更新的细节还是比较多的,但主要还是多端(iOS、An…...
基于Haclon的Blob分析
任务要求: 请用BLOB分析的方法计算图中所有灰度值在120和255之间的像素构成的8连通区域的面积与中心点坐标。 Blob基础: 分析过程:首先获取图像,然后根据特征对原始图像进行阈值分割(区分背景像素和前景像素…...
安卓手机好用的清单软件有哪些?
生活中每个人都有丢三落四的习惯,伴随着生活节奏的加快,人们常忘事的情况会更加频繁的出现,这时候很多人就开始选择手机上记录清单类的软件,安卓手机在手机市场中占有很大的分量,在安卓手机上好用的记录清单的软件有哪…...
【追求卓越02】数据结构--链表
引导 今天我们进入链表的学习,我相信大家对链表都很熟悉。链表和数组一样,作为最基础的数据结构。在我们的工作中常常会使用到。但是我们真的了解到数组和链表的区别吗?什么时候使用数组,什么时候使用链表,能够正确的选…...
qt按照不同编码格式读取文字(UTF-16LE,UTF-8,UTF-8BOM,UTF-16BE)
enum class EncodingFormat : int {ANSI 0,//GBKUTF16LE,UTF16BE,UTF8,UTF8BOM, }; EncodingFormat VideoPlayer::FileCharacterEncoding(const QString &fileName) {//假定默认编码utf8EncodingFormat code EncodingFormat::UTF8;QFile file(fileName);if (file.open(QI…...
R语言和RStudio的下载安装(非常简便舒适)
目录 R语言和RStudio的关系R语言和Tableau下载R语言进入官网选择清华镜像源Download R for Windows选择base版本开始下载进行安装配置环境变量检查是否安装成功 下载RStudio进入官网点击下载进行安装检查是否安装成功打开选择R语言环境成功打开显示四个工作区 R语言和RStudio的…...
利用最小二乘法找圆心和半径
#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …...
手游刚开服就被攻击怎么办?如何防御DDoS?
开服初期是手游最脆弱的阶段,极易成为DDoS攻击的目标。一旦遭遇攻击,可能导致服务器瘫痪、玩家流失,甚至造成巨大经济损失。本文为开发者提供一套简洁有效的应急与防御方案,帮助快速应对并构建长期防护体系。 一、遭遇攻击的紧急应…...
Objective-C常用命名规范总结
【OC】常用命名规范总结 文章目录 【OC】常用命名规范总结1.类名(Class Name)2.协议名(Protocol Name)3.方法名(Method Name)4.属性名(Property Name)5.局部变量/实例变量(Local / Instance Variables&…...
JVM垃圾回收机制全解析
Java虚拟机(JVM)中的垃圾收集器(Garbage Collector,简称GC)是用于自动管理内存的机制。它负责识别和清除不再被程序使用的对象,从而释放内存空间,避免内存泄漏和内存溢出等问题。垃圾收集器在Ja…...
【机器视觉】单目测距——运动结构恢复
ps:图是随便找的,为了凑个封面 前言 在前面对光流法进行进一步改进,希望将2D光流推广至3D场景流时,发现2D转3D过程中存在尺度歧义问题,需要补全摄像头拍摄图像中缺失的深度信息,否则解空间不收敛…...
【磁盘】每天掌握一个Linux命令 - iostat
目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat(I/O Statistics)是Linux系统下用于监视系统输入输出设备和CPU使…...
JDK 17 新特性
#JDK 17 新特性 /**************** 文本块 *****************/ python/scala中早就支持,不稀奇 String json “”" { “name”: “Java”, “version”: 17 } “”"; /**************** Switch 语句 -> 表达式 *****************/ 挺好的ÿ…...
SAP学习笔记 - 开发26 - 前端Fiori开发 OData V2 和 V4 的差异 (Deepseek整理)
上一章用到了V2 的概念,其实 Fiori当中还有 V4,咱们这一章来总结一下 V2 和 V4。 SAP学习笔记 - 开发25 - 前端Fiori开发 Remote OData Service(使用远端Odata服务),代理中间件(ui5-middleware-simpleproxy)-CSDN博客…...
Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习)
Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习) 一、Aspose.PDF 简介二、说明(⚠️仅供学习与研究使用)三、技术流程总览四、准备工作1. 下载 Jar 包2. Maven 项目依赖配置 五、字节码修改实现代码&#…...
使用Spring AI和MCP协议构建图片搜索服务
目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式(本地调用) SSE模式(远程调用) 4. 注册工具提…...
