洛谷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.";elsecout<<"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::countusing 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.mzph.cn/news/768029.shtml

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

相关文章

ensp ppp验证实验(二)

实验拓扑&#xff1a; 1、R1和R2使用PPP链路直连&#xff0c;R2和R3把2条PPP链路捆绑为PPP MP直连 2、按照图示配置IP地址 3、R2对R1的PPP进行单向chap验证 4、R2和R3的PPP进行双向chap验证 实验内容&#xff1a; R1配置&#xff1a; #修改名称 <Huawei>sys Enter …

一些规律、现象

图文部分由COPILOT生成。 规律详情 墨菲定律 墨菲定律(Murphys Law) 一件事可能出错时就一定会出错。 图&#xff1a;AI生成 破窗效应 破窗效应(Broken windows theory&#xff09;是犯罪心理学理论。以一幢有少许破窗的建筑为例&#xff0c;如果那些窗没修理好&#xff0…

ShardingSphere水平分表——开发经验(2)

1. 什么场景下分表&#xff1f; 数据量过大或者数据库表对应的磁盘文件过大。 Q&#xff1a;多少数据分表&#xff1f; A&#xff1a;网上有人说1kw&#xff0c;2kw&#xff1f;不准确。 1、一般看字段的数量&#xff0c;有没有包含text类型的字段。我们的主表里面是不允许有t…

从零开始学HCIA之网络基础知识02

1、TCP/IP&#xff08;Transmission Control Protocol/Internet Protocol&#xff09;参考模型&#xff0c;它是当下实际的业界标准。 2、TCP/IP这个名字来自该协议簇中两个非常重要的协议&#xff0c;一个是IP&#xff08;Internet Protocol&#xff09;&#xff0c;另一个是T…

Go 限流器-漏桶 VS 令牌桶 常用包原理解析

本文主要介绍两个包Uber漏桶&#xff0c;time/rate令牌桶 可以了解到&#xff1a; 使用方法漏桶/令牌桶 两种限流思想 and 实现原理区别及适用场景应用Case 背景 我们为了保护系统资源&#xff0c;防止过载&#xff0c;常常会使用限流器。 使用场景&#xff1a; API速率限制…

带3090显卡的Linux服务器上部署SDWebui

背景 一直在研究文生图&#xff0c;之前一直是用原始模型和diffuser跑SD模型&#xff0c;近来看到不少比较博主在用 SDWebui&#xff0c;于是想着在Linux服务器上部署体验一下&#xff0c;谁知道并没有想象的那么顺利&#xff0c;还是踩了不少坑。记录一下过程&#xff0c;也许…

YOLO-MS 论文解读

paper&#xff1a;YOLO-MS: Rethinking Multi-Scale Representation Learning for Real-time Object Detection official implementation&#xff1a;https://github.com/fishandwasabi/yolo-ms 背景 尽管已经取得了很好的性能&#xff0c;但识别不同尺度的物体仍是实时目标…

【Mysql】硬盘性能压测(Sysbench工具)

1、IOPS和吞吐量介绍 IOPS&#xff08;每秒输入/输出操作数&#xff09;&#xff1a;是衡量存储设备每秒能够执行的输入/输出操作的数量。对于数据库等需要频繁读写的应用程序而言&#xff0c;IOPS 是一个关键的性能指标。更高的 IOPS 意味着存储设备能够处理更多的读写请求&am…

检索增强生成(RAG)技术:实现流程、作用及应用案例

一. RAG简介 在自然语言处理&#xff08;NLP&#xff09;领域中&#xff0c;检索增强生成&#xff08;Retrieval-Augmented Generation, RAG&#xff09;技术巧妙地结合了信息检索与神经网络生成模型的力量&#xff0c;通过在生成过程中引入相关的外部信息&#xff0c;实现了在…

【WEEK4】 【DAY5】AJAX - Part Two【English Version】

2024.3.22 Friday Following the previous article 【WEEK4】 【DAY4】AJAX - Part One【English Version】 Contents 8.4. Ajax Asynchronous Data Loading8.4.1. Create User.java8.4.2. Add lombok and jackson support in pom.xml8.4.3. Change Tomcat Settings8.4.4. Mo…

谷粒商城 - 前端基础

1.前端技术栈 2.ES6 2.1简介 2.2 let 与 const <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Doc…

自动驾驶感知新范式——BEV感知经典论文总结和对比(一)

自动驾驶感知新范式——BEV感知经典论文总结和对比&#xff08;一&#xff09; 博主之前的博客大多围绕自动驾驶视觉感知中的视觉深度估计&#xff08;depth estimation&#xff09;展开&#xff0c;包括单目针孔、单目鱼眼、环视针孔、环视鱼眼等&#xff0c;目标是只依赖于视…

[金三银四] 操作系统上下文切换系列

图源&#xff1a; https://zhuanlan.zhihu.com/p/540717796 文章目录 2.11 cpu 的上下文切换2.12 协程的上下文切换2.13 线程的上下文切换2.14 进程的上下文切换2.15 中断上下文切换2.16 什么时候会发生进程的上下文切换2.17 什么时候会发生线程的上下文切换2.18 什么时候会发生…

前缀和(一)

前缀和 一维前缀和数组 假设有一个数组为a [ n ] , 另一个数组为s [ n ] . 其中 s [ j ] a[1] a[ 2 ] ......a[ j-1] a [ j ] 。--->s[ j ]表示a数组从第一个元素到第 j 个元素之和&#xff0c;那么我们则就称 s 数组为前缀和数组 例题&#xff1a;前缀和 链接&#xff1a;…

遥感原理与应用—绪论

一、关于基本概念与对应的英文 遥感&#xff1a;Remote Sensing 遥测&#xff1a;Telemetry&#xff0c;对被测物体某些运动参数和性质进行远距离测量的技术&#xff0c;分为接触测量与非接触测量&#xff0c;对于RS的概念&#xff0c;遥测探测的目标显得狭隘了一些&#xff…

AI女朋友 -- 一个傲娇女友,嘴上刻薄但内心关心你

文章目录 前言一、成果展示 1、ai女友2、留言板二、实现思路三、难点问题四、总结 前言 在免费API寻找过程中&#xff0c;发现了ai女友的接口&#xff0c;打算从这个接口入手&#xff0c;做出给人一种有女朋友的、温柔的、亲近的、容易给的感觉&#xff01; 一、成果展示 1、A…

Git bash获取ssh key

目录 1、获取密钥 2、查看密钥 3、在vs中向GitHub推送代码 4、重新向GitHub推送修改过的代码 1、获取密钥 指令&#xff1a;ssh-keygen -t rsa -C "邮箱地址" 连续按三次回车&#xff0c;直到出现类似以下界面&#xff1a; 2、查看密钥 路径&#xff1a;C:\U…

FreeCAD傻瓜教程之基准面的构建-在实体的表面上新建坐标、倾斜的平面、附加不同的台阶、旋转体等

目的&#xff1a;学会在已有模型的不同剖面上建立新的坐标系&#xff0c;并绘图&#xff1b;使得新图形仍然作为同一个零件实体的构件。 零、需求举例 在下列模型中&#xff0c;我们要在圆杆的顶部增加一个把手&#xff0c;如果点击圆杆顶部&#xff0c;则仅能在顶部圆形所在…

JVM虚拟机栈

虚拟机栈 虚拟机栈概述 栈是运行时的单位&#xff0c;而堆是存储的单位。 栈解决程序的运行问题&#xff0c;即程序如何执行&#xff0c;或者说如何处理数据。堆解决的是数据存储的问题&#xff0c;即数据怎么放&#xff0c;放在那儿。 虚拟机栈的基本内容 Java虚拟机栈 Java…