洛谷day3

news2024/11/16 12:51:39

B2053 

求一元二次方程 - 洛谷

掌握printf用法;

#include <iostream>
#include <cmath>
using namespace std;
double a,b,c;
double delta;
double x1,x2;

int main() {
    cin>>a>>b>>c;
	delta = b*b-4*a*c;
	if(delta>0){
		x1 = (-b+sqrt(delta))/(2*a);
		x2 = (-b-sqrt(delta))/(2*a);
		if(x1>x2)
			printf("x1=%.5lf;x2=%.5lf",x2,x1);
		else{
			printf("x1=%.5lf;x2=%.5lf",x1,x2);}
		}
	else if(delta==0){
		x1 = (-b+sqrt(delta))/(2*a);
		printf("x1=x2=%.5lf",x1);
	}
	else{
		cout<<"No answer!";
	}
}

减少代码量,利用swap算法,交换x1,x2值;

#include <iostream>
#include <cmath>
using namespace std;
double a,b,c;
double delta;
double x1,x2;

int main() {
    cin>>a>>b>>c;
	delta = b*b-4*a*c;
	if(delta>0){
		x1 = (-b+sqrt(delta))/(2*a);
		x2 = (-b-sqrt(delta))/(2*a);
		if(x1>x2)
			swap(x1,x2);
		printf("x1=%.5lf;x2=%.5lf",x1,x2);
	}
	else if(delta==0){
		x1 = (-b+sqrt(delta))/(2*a);
		printf("x1=x2=%.5lf",x1);
	}
	else{
		cout<<"No answer!";
	}
}

 B3854

注意必须得是long long型,不然会有部分测试不通过。

#include <iostream>
using namespace std;
long long m,n,a,b;
int main() {
    cin>>m>>n>>a>>b;
	if((m-a)*n>=b+1)
		cout<<"Program ends with return value 0.";
	else
		cout<<"Segmentation fault.";
}

知识小拓展

在 C++ 中,`ios::sync_with_stdio(false);` 是一条指令,用来关闭 C++ 的 `iostream` 类库(如 `cin` 和 `cout`)与 C 的标准输入输出库(如 `scanf` 和 `printf`)之间的同步。默认情况下,这两个库是同步的,以保证你可以在同一个程序中混合使用它们,并按照预期的顺序进行输入和输出操作。

当你调用 `ios::sync_with_stdio(false);` 之后,这种同步被关闭,这样做可以提高 `iostream` 的输入输出效率,因为取消了与 C 标准库的额外同步操作。但是,一旦同步关闭,就不应该混用 `iostream` 和 C 的标准输入输出库,因为它们的输出可能不会按照你写代码时的顺序出现。

这条指令经常用在需要大量输入输出操作,且对程序运行时间要求很高的情况,比如算法竞赛,因为它可以显著减少输入输出所需的时间。

下面是一个例子,展示如何在程序中使用它:

#include <iostream>

int main() {
    // 关闭同步
    std::ios::sync_with_stdio(false);
    
    // 取消 cin 与 stdin 的绑定,以提高读取效率
    std::cin.tie(NULL);

    // 你的代码逻辑
    std::cout << "Fast output without sync!\n";
    
    // 后续不要使用任何 C 的标准输入输出函数
    return 0;
}

请注意,调用 `ios::sync_with_stdio(false);` 之后,还应该调用 `cin.tie(NULL);` 来解除 `cin` 与 `cout` 之间的绑定,这样可以进一步提升输入输出的效率。这条指令会导致 `cin` 在每次从 `cout` 输出之前不再自动刷新缓冲区。

B3825

#include<iostream>
using namespace std;
int x,h;
int main(){
	ios::sync_with_stdio(0);//不能再混用 C 和 C++ 的输入输出功能,iostream 库的效率会提高
	cin.tie(0);
	cin>>x>>h;
	if(x<10) cout<<"Drizzle";
	else if(x>=10 && x<25) cout<<"Moderate Rain";
	else if(x>=25 && x<50) cout<<"Heavy Rain";	
	else if(x>=50) cout<<"Torrential Rain";
	if(h==1){
		if(x>=20) cout<<endl<<"YES";
		else cout<<endl<<"NO";
	}
}

B3814-可多看几次

for (auto it = direcion.begin(); it != direcion.end(); ++it) {
        pair<int, int>& move = *it;
        int nx = mx + move.first;
        int ny = my + move.second;
#include<iostream>
#include <vector>
#include <utility> 
#include<set>
using namespace std;

//判断棋子是否在棋盘内
bool inBoard(int x,int y){
    return x >= 1 && x <= 10 && y >= 1 && y <= 9;
}

int main(){
    int sx, sy, cx, cy, mx, my; 
    cin >> sx >> sy >> cx >> cy >> mx >> my;

    //c++11之前不支持
    // std::vector<std::pair<int, int> > moves = {
    // {-2, 1}, {-2, -1}, {-1, 2}, {-1, -2},
    // {1, 2}, {1, -2}, {2, 1}, {2, -1}
    // };
    
    vector<pair<int, int> > direcion;
    direcion.push_back(make_pair(-2, 1));
    direcion.push_back(make_pair(-2, -1));
    direcion.push_back(make_pair(-1, 2));
    direcion.push_back(make_pair(-1, -2));
    direcion.push_back(make_pair(1, 2));
    direcion.push_back(make_pair(1, -2));
    direcion.push_back(make_pair(2, 1));
    direcion.push_back(make_pair(2, -1));

    // 存储马在移动后可以攻击的位置
    set<pair<int, int> >attackPositions;

    //遍历马的移动
    for (auto &move : direcion) {
        int nx = mx + move.first;
        int ny = my + move.second;
        // 如果移动后仍在棋盘内
        if (inBoard(nx, ny)) {
            // 遍历该位置马可以攻击的所有位置
            for (auto &attack : direcion) {
                int ax = nx + attack.first;
                int ay = ny + attack.second;
                // 如果攻击位置在棋盘内,则添加到攻击位置集合中
                if (inBoard(ax, ay)) {
                    attackPositions.insert(make_pair(ax, ay));
                }
            }
        }
    }
    // 检查帅和车是否在马的攻击范围内
    if (attackPositions.count(make_pair(sx, sy)) > 0 && attackPositions.count(make_pair(cx, cy)) > 0) {
        cout << "Yes" << endl;
    } else {
        cout << "No" << endl;
    }

    return 0;


}

B3720(可复看)

#include <cstddef>
#include <iostream>
#include <string>

using namespace std;

int main() {
    long long x;
    cin >> x;

    string dishes;
    cin >> dishes;

    // 检查是否购买了 B 菜和 C 菜
    bool hasB = dishes.find('B') != string::npos;//string::npos 是一个常量,表示未找到的位置。它的值通常是最大的有效索引值加一
    bool hasC = dishes.find('C') != string::npos;

    // 根据购买的菜品计算折扣
    if (hasB && hasC) {
        // 两种菜都买了,打六折
        x = x * 6 / 10;
    } else if (hasB) {
        // 只买了 B 菜,打八折
        x = x * 8 / 10;
    } else if (hasC) {
        // 只买了 C 菜,打七折
        x = x * 7 / 10;
    }

    cout << x << endl;

    return 0;
}

字符方法,进行简单判断: 

#include <iostream>

using namespace std;

int main() {
    long long x;
    cin >> x;

    char dish1, dish2;
    cin >> dish1 >> dish2;

    // 检查是否购买了 B 菜和 C 菜
    bool hasB = dish1 == 'B' || dish2 == 'B';
    bool hasC = dish1 == 'C' || dish2 == 'C';

    // 根据购买的菜品计算折扣
    if (hasB && hasC) {
        // 两种菜都买了,打六折
        x = x * 6 / 10;
    } else if (hasB) {
        // 只买了 B 菜,打八折
        x = x * 8 / 10;
    } else if (hasC) {
        // 只买了 C 菜,打七折
        x = x * 7 / 10;
    }

    cout << x << endl;

    return 0;
}

count方法

#include <iostream>
#include <string>
#include <algorithm> // 引入算法库,以使用 std::count

using namespace std;

int main() {
    long long x;
    cin >> x;

    string dishes;
    cin >> dishes; // 读取两个字符作为一个字符串

    // 使用 count 统计 B 和 C 的出现次数
    int countB = count(dishes.begin(), dishes.end(), 'B');
    int countC = count(dishes.begin(), dishes.end(), 'C');

    // 检查是否购买了 B 菜和 C 菜
    bool hasB = countB > 0;
    bool hasC = countC > 0;

    // 根据购买的菜品计算折扣
    if (hasB && hasC) {
        // 两种菜都买了,打六折
        x = x * 6 / 10;
    } else if (hasB) {
        // 只买了 B 菜,打八折
        x = x * 8 / 10;
    } else if (hasC) {
        // 只买了 C 菜,打七折
        x = x * 7 / 10;
    }

    cout << x << endl;

    return 0;
}

B3677

简单分类讨论即可。

#include<iostream>
#include<cmath>
using namespace std;


int main(){
    long long a,b;
    cin>>a>>b;
    if(b==0)
        cout<<"NO"<<endl<<"YES"<<endl;
    else{
        if(a>=0){
            cout<<"NO"<<endl;
        }else{
            if(b%2==0){
                cout<<"NO"<<endl;
            }else{
                cout<<"YES"<<endl;
            }
        }
        if(abs(a)%2==1){
            cout<<"YES"<<endl;
        }else{
            cout<<"NO"<<endl;
        }
    }
    
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1542350.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【前端寻宝之路】JavaScript初学之旅

&#x1f308;个人主页: Aileen_0v0 &#x1f525;热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法|MySQL| ​&#x1f4ab;个人格言:“没有罗马,那就自己创造罗马~” #mermaid-svg-azUa9yH16cRXQUxE {font-family:"trebuchet ms",verdana,arial,sans-serif;f…

生产力工具|安装更新R软件(R、studio)

内容介绍&#xff1a; 安装R软件&#xff1a; 下载 R X64 3.5.1: 访问官方R网站 https://cran.r-project.org/。选择适合Windows版本的安装包。将安装包下载到您的计算机。 本地安装: 运行下载的“R-3.5.1-win.exe”文件。按照安装向导&#xff0c;选择安装路径&#xff0c;取消…

机器视觉定位点胶机系统工作原理分析

机器视觉&#xff0c;简而言之&#xff0c;即是通过机器来模拟人眼的视觉功能&#xff0c;执行测量与判断的任务。这一过程中&#xff0c;关键的角色是机器视觉产品&#xff0c;它们通常以CMOS或CCD的形式出现&#xff0c;负责将观察的目标转化为图像信号。这些信号随后被专用的…

Pinctrl子系统_05_Pincontroller构造过程情景分析

上一节我们了解了Pinctrl子系统主要的数据结构&#xff0c;要想更好的掌握Pinctrl子系统&#xff0c;还需要知道他的构造过程。 本节我们就来分析一下Pinctrl子系统的构造过程。 以内核面向对象的思想&#xff0c;设备树可以分为两部分&#xff0c;左边是Pinctrl子系统节点&a…

nodejs+vue高校师资管理系统python-flask-django-php

快速发展的社会中&#xff0c;人们的生活水平都在提高&#xff0c;生活节奏也在逐渐加快。为了节省时间和提高工作效率&#xff0c;越来越多的人选择利用互联网进行线上打理各种事务&#xff0c;然后线上管理系统也就相继涌现。与此同时&#xff0c;人们开始接受方便的生活方式…

002- 用 AutoCoder 添加和修改代码

实际上 AutoCoder 最适合的场景是修改代码&#xff0c;因为它最原始的功能是把源码你指定的文档搜索引擎搜集到的资料和你的需求生成一个prompt给到大模型。 此外纠正大家一个观点&#xff0c; AutoCoder 不是一句话给你创建一个网站抑或一个大型的项目。我们是帮助研发或者产品…

移植 Zephyr 到 Art-Pi

背景 ​ 最近工作中接触到了 Zephyr&#xff0c;不由觉得 Zephyr 是个很强大、全面、优秀的实时操作系统&#xff0c;但同时是有一定的上手难度的&#xff0c;其复杂的构建系统让小编倒吸一口凉气。为了深入研究并完全掌控 Zephyr&#xff0c;小编决定把它移植到手头的开发板上…

Java八股文(SpringCloud)

Java八股文のSpringCloud SpringCloud SpringCloud 什么是Spring Cloud&#xff1f; Spring Cloud是一个用于构建分布式系统的开发工具箱&#xff0c;它基于Spring Boot框架&#xff0c;提供了一系列的组件和工具&#xff0c;用于帮助开发者快速搭建和管理分布式系统中的各种常…

Spring相关框架八股

单例bean是线程安全的吗&#xff1f; AOP 事务失效 Bean生命周期 Bean循环依赖解决 MVC执行流程 自动装配原理 Spring常见注解 SpringMVC注解 SpringBoot注解 MyBatis执行流程 MyBatis延迟加载 MyBatis缓存 SpringCloud五大组件 注册中心Nacos、Eureka 负载均衡Ribbon 服务雪崩…

Android 你遇到的无障碍onGesture不执行

你是不是和我一样&#xff0c;在开发无障碍应用的时候&#xff0c;翻边了Android的AccessibilityService源码 但是就是发现不了onGesture不执行的原因&#xff1f; 你是不是和我一样&#xff0c;在好多测试手机之间徘徊&#xff0c;发现还是不执行&#xff1f; 你是不是和我一…

2024内蒙古等保备案办理流程指引

网络安全已成为国家、企业和个人共同关注的焦点。所以积极办理等保备案是非常重要的。本文将详细介绍办理内蒙古企业办理等保备案的流程&#xff0c;帮助读者了解并顺利完成相关手续。仅供参考哦&#xff01; 2024内蒙古等保备案办理流程指引 办理时间&#xff1a;周一到周五工…

PostgreSQL11 | Windows系统安装PostgreSQL

本教程选取与参考书籍《PostgreSql11 从入门到精通》&#xff08;清华大学出版社&#xff09;的11大版本最新小版本11.22的安装作为教程案例 下载 下载PostgreSQL installer 下载到本地 安装 运行安装引导器 中国地区语言选项&#xff08;暂时&#xff09; Chinese(Simplifie…

OpenHarmony IDL工具规格及使用说明书(仅对系统应用开放)

IDL接口描述语言简介 当客户端和服务器进行IPC通信时&#xff0c;需要定义双方都认可的接口&#xff0c;以保障双方可以成功通信&#xff0c;OpenHarmony IDL&#xff08;OpenHarmony Interface Definition Language&#xff09;则是一种定义此类接口的工具。OpenHarmony IDL先…

io流的学习4

字符缓冲流 原理&#xff1a;底层自带了长度为8192的缓冲区提高性能。 import java.io.BufferedReader; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException;public class BufferedStringdemo01 {public static void main(String…

【旅游景点项目日记 | 第二篇】基于Selenium爬取携程网景点详细数据

文章目录 3.基于Selenium爬取携程网景点详细数据3.1前提环境3.2思路3.3代码详讲3.3.1查询指定城市的所有景点3.3.2获取详细景点的访问路径3.3.3获取景点的详细信息 3.4数据库设计3.5全部代码3.6效果图 3.基于Selenium爬取携程网景点详细数据 3.1前提环境 确保安装python3.x环…

HCIP的学习(4)

GRE和MGRE VPN---虚拟专用网络。指依靠ISP或其他公有网络基础设施上构建的专用的安全数据通信网络。该网络是属于逻辑上的。​ 核心机制—隧道机制&#xff08;封装技术&#xff09; GRE—通用路由封装 ​ 三层隧道技术&#xff0c;并且是属于点到点的隧道。 [r1]interface T…

1+x中级题目练习复盘(九)

注解和注释是两种完全不同的语法&#xff0c;注解可以为程序增加额外的功能&#xff0c;或为程序添加元数据。 函数式接口是指有且只有一个抽象方法的接口&#xff1b; 函数式接口可以使用 FunctionalInterface 进行标注&#xff0c;但不是必须的。除了 “java.util.function…

zabbix安装及使用(错误及解决方案)

安装zabbix 常见错误&#xff1a; Zabbix下载错误 6.0与5.0版本冲突 解决方法 yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-get --skip-broken zabbix6.0-web 自己有数据库&#xff0c;使用以下命令 pid找不到 /var/log/zabbix/zabbix_server.log 错误&a…

[AutoSar]BSW_Com020 Handle_ID,Global_PDU,Local_PDU的联系

目录 关键词平台说明一、概念二、API的使用和形参三、Handle ID 唯一性特例四、PDU和handle ID关联用例 关键词 嵌入式、C语言、autosar、OS、BSW 平台说明 项目ValueOSautosar OSautosar厂商vector &#xff0c; EB芯片厂商TI 英飞凌编程语言C&#xff0c;C编译器HighTec (…

电子电器架构 —— 诊断数据DTC具体故障

电子电器架构 —— 诊断数据DTC具体故障 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师 (Wechat:gongkenan2013)。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 本就是小人物,输了就是输了,不要在意别人怎么看自己。江湖一碗茶,喝完再挣…