洛谷day3

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;
        }
    }
    
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

微服务(基础篇-003-Nacos集群搭建)

目录 Nacos集群搭建 1.集群结构图 2.搭建集群 2.1.初始化数据库 2.2.下载nacos 2.3.配置Nacos 2.4.启动 2.5.nginx反向代理 2.6.优化 视频地址&#xff1a; 06-Nacos配置管理-nacos集群搭建_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1LQ4y127n4?p29&…

包子凑数 蓝桥杯

关于这题的数学定理&#xff0c;如果 a,b 均是正整数且互质&#xff0c;那么由 axby&#xff0c;x≥0&#xff0c;y≥0 不能凑出的最大数是 &#xff1a;a*b-a-b 想不起来的时候&#xff0c;把能列出来的数据列出来找规律&#xff0c;不互质得数不符合题目所说 类似于力扣零钱…

Clion使用 - vcpkg

创建空白C项目 引入vcpkg插件 开启清单模式 引入某个库&#xff08;以cjson库为例&#xff09; 在代码中使用某个库&#xff08;以cjson库为例&#xff09;

数据结构和算法:树

二叉树 与链表类似&#xff0c;二叉树的基本单元是节点&#xff0c;每个节点包含值、左子节点引用和右子节点引用。 /* 二叉树节点结构体 */ struct TreeNode {int val; // 节点值TreeNode *left; // 左子节点指针TreeNode *right; // 右子节点指针TreeNode(int x) : val(x),…

uniapp页面嵌套其他页面的实现

功能: 类似于一个drawer&#xff0c;当主页面加载的时候会一并加载url对应的组件&#xff0c;当点击后以drawer形式显示组件里面的内容&#xff0c;可动画。 <navigator url"/pages/my/components/personalMessage" slot"right"><view><di…

阿里云4核8G云服务器优惠价格表,多配置报价

阿里云4核8G云服务器优惠价格955元一年&#xff0c;云服务器ECS通用算力型u1实例。2024年腾讯云服务器优惠价格表&#xff0c;一张表整理阿里云服务器最新报价&#xff0c;阿里云服务器网整理云服务器ECS和轻量应用服务器详细CPU内存、公网带宽和系统盘详细配置报价单&#xff…

【自然语言处理】统计中文分词技术(一):1、分词与频度统计

文章目录 一、词与分词1、词 vs 词素2、世界语言分类 二、分词的原因与基本原因1、为什么要分词2、分词规范3、分词的主要难点-切分歧义如何排除切分歧义利用词法信息利用句法信息利用语义信息利用语用、语境信息 4、分词的主要难点-未登录词未登录词如何识别未登录词 三、分词…

Spark spark-submit 提交应用程序

Spark spark-submit 提交应用程序 Spark支持三种集群管理方式 Standalone—Spark自带的一种集群管理方式&#xff0c;易于构建集群。Apache Mesos—通用的集群管理&#xff0c;可以在其上运行Hadoop MapReduce和一些服务应用。Hadoop YARN—Hadoop2中的资源管理器。 注意&…

力扣3. 无重复字符的最长子串

Problem: 3. 无重复字符的最长子串 文章目录 题目描述思路及解法复杂度Code 题目描述 思路及解法 1.川建一个set集合存储最长的无重复的字符&#xff1b; 2.创建双指针p、q&#xff0c;每次当q指针指向的字符不在set集合中时将其添加到set集合中让q指针后移&#xff0c;并且更新…

【Transformer】transformer注解

every blog every motto: You can do more than you think. 0. 前言 transformer注解 在过去的一年里&#xff0c;《Attention is all you need》中的transformer一直萦绕在很多人的脑海里。除了在翻译质量上产生重大改进之外&#xff0c;它还为许多其他NLP任务提供了一种新的…

cocos3.0 关于UI组件学习

Sprite 图片&#xff1a;官方文档 Size Mode: 1.Raw&#xff1a;原始大小 2.TRIMMED: 默认&#xff0c;会裁切原始图片透明像素 3.Custom&#xff1a;自定义&#xff0c;只要修改ContentSize&#xff0c;会自动设置 Type 1.Simple:普通,会铺满&#xff0c;一张图。 2.Sliced…

卷积神经网络-卷积层

卷积神经网络-卷积层 1多层感知机&#xff08;MLP&#xff09;2卷积神经网络&#xff08;CNN&#xff09;3MLP和CNN关系与区别4仍然有人使用MLP的原因&#xff1a;5MLP的局限性&#xff1a;MLP的应用领域&#xff1a;总结&#xff1a;6全连接到卷积全连接层 vs 卷积层结构差异应…

(一)基于IDEA的JAVA基础7

关系运算符 运算符 含义 范例 结果 等于 12 false &#xff01; 不等于 1&#xff01;2 true > 大于 1>2 false < 小于 …

使用html做一个2048小游戏

下载地址: https://pan.xunlei.com/s/VNtiF13HxmmE4gglflvS1BUhA1?pwdvjrt# 提取码&#xff1a;vjrt”

Springboot家乡特色推荐系统

目录 背景 技术简介 系统简介 界面预览 背景 在当今这个网络迅猛发展的时代&#xff0c;计算机技术已经广泛应用于我们生活的每个角落&#xff0c;互联网在经济和日常生活等多个方面扮演着至关重要的角色&#xff0c;它已成为人们分享资源和快速交流信息的关键平台。在中国…

备战蓝桥杯Day35 - 动态规划 - 01背包问题

问题描述 隐含前提&#xff1a; 1.物体是不可分的&#xff0c;要么装&#xff0c;要么不装&#xff0c;不能只装一部分。 2.物体顶多使用一次。 动态规划思路 我在b站上看的闫氏dp分析大法的视频&#xff0c;他对dp问题做了总结归纳。 从集合的角度分析dp问题。求出有限集…

基于netcore的乡镇土地竞拍系统前端vue+mysql数据库

基于netcore的乡镇土地竞拍系统前端vuemysql数据库 本系统将采用采用Visual Studio2019版本为该系统的开发工具&#xff0c;Net 语言进行开发。系统从选题开始&#xff0c;共经历了搜集选题背景信息和选题目的及意义的分析&#xff0c;通过对国内外的研究&#xff0c;需求分析的…

nodejs+vue高校洗浴管理系统python-flask-django-php

高校洗浴管理系统采用数据库是MySQL。网站的搭建与开发采用了先进的nodejs进行编写&#xff0c;使用了express框架。该系统从两个对象&#xff1a;由管理员和学生来对系统进行设计构建。主要功能包括&#xff1a;个人信息修改&#xff0c;对学生管理、浴室信息、浴室预约、预约…

Spark Streaming DStream

Spark Streaming DStream DStream 即Discretized Stream&#xff0c;中文叫做离散流&#xff0c;Spark Streaming提供的一种高级抽象&#xff0c;代表了一个持续不断的数据流。 DStream可以通过输入数据源来创建&#xff0c;比如Kafka、Flume&#xff0c;也可以通过对其他DS…

加密技术概述

传输数据时的四个问题 窃听 数字加密 假冒 消息认证或数字签名 篡改 消息认证码或数字签名 事后否认 数字签名 加密技术 将数据变成第三者的计算机无法理解的形式&#xff0c;然后再将其恢复成原本数据的一系列操作就是加密技术。 哈希函数 哈希函数可以把给定的数据转…