XJOI一级三段题解(g++,即C++),也可视作C++算法竞赛教程
目录
Problem 3567 浮点数
一 题目内容
二 新知识点
2.1 对浮点数精度要求的处理与另一种标准输出
三 思路
四 AC代码
Problem 3572 浮点除法
一 题目内容
二 新知识点
三 思路
四 AC代码
Problem 8355 欧几里得距离
一 题目内容
二 新知识点
2.1 直角坐标平面内两点的距离公式
三 思路
四 AC代码
Problem 3542 摄氏温度转换
一 题目内容
二 新知识点
三 思路
四 AC代码
Problem 9215 圈地
一 题目内容
二 新知识点
三 思路
四 AC代码
Problem 9217 吃鸡腿
一 题目内容
二 新知识点
三 思路
四 AC代码
Problem 1129 鸡兔同笼
二 新知识点
2.1 使用标准输出流输出换行符
三 思路
四 AC代码
Problem 3902 分数求和
一 题目内容
二 新知识点
2.1 前加加,后加加,前减减,后减减
2.2 for循环
三 思路
四 AC代码
Problem 3567 浮点数
一 题目内容
时间:0.2s 空间:32M
题目描述:
小鹦鹉正在学习浮点数,你跟他说一个浮点数,他立刻就能学会。
输入一个浮点数,输出这个浮点数。
输入格式:
输入一个浮点数
输出格式:
输出一个浮点数,保留三位小数
样例输入1:
1.123456
样例输出1:
1.123
样例输入2:
1.359578
样例输出2:
1.360
二 新知识点
2.1 对浮点数精度要求的处理与另一种标准输出
本题中,对浮点数的精度有“保留三位小数”的要求。这时,较简便的处理方法是使用printf()。使用它,您可以拼接不同类型的变量,如:
int a=1;
double b=2.1234567;
//使用printf()拼接a和b
printf("%d's type is int, while %.3lf's type is double.",a,b);
输出如下:
1's type is int, while 2.123's type is double.
printf()首先接收一个字符串。字符串中的%d表示整数(int类型),%lf表示浮点数(double类型)。使用“%.lf”可指定浮点数用四舍五入法保留位小数输出。
printf()的输出是标准输出,因此可以被OJ网站读取,并且不会因此出现“本地的输出没问题,但在OJ上却报错”的情况。
三 思路
使用cin进行输入,并用printf()进行输出。
四 AC代码
#include<bits/stdc++.h>
using namespace std;
int main(){double a;cin>>a;printf("%.3lf",a);return 0;
}
Problem 3572 浮点除法
一 题目内容
时间:0.2s 空间:32M
题目描述:
输入两个整数a, b, 输出a除以b的值,保留三位小数
输入格式:
输入两个整数
输出格式:
输出一个浮点数
样例输入:
5 2
样例输出:
2.500
二 新知识点
本题无新知识点。
三 思路
先直接算除法,再保留3位小数输出。
四 AC代码
#include<bits/stdc++.h>
using namespace std;
int main(){int a,b;cin>>a>>b;printf("%.3lf",1.0*a/b);return 0;
}
Problem 8355 欧几里得距离
一 题目内容
时间:0.2s 空间:32M
题目描述:
小C有一个平面!
它发现了平面上的两个点,请你求出求它们之间的欧几里德距离。欧几里德距离定义为连接这两个点的线段的长度。
答案保留两位小数输出。
输入格式:
四个整数,a,b,c,d。坐标为(a,b)与(c,d)
输出格式:
输出这两个点的欧几里德距离。
样例输入:
0 0 3 4
样例输出:
5.00
约定:
0<=a,b,c,d<=100
二 新知识点
2.1 直角坐标平面内两点的距离公式
如图,在直角坐标平面内有两个点。我们可以求出
1.;
2.。
由勾股定理,、两点的距离。
三 思路
套用两点的距离公式后,保留2位小数输出。
四 AC代码
#include<bits/stdc++.h>
using namespace std;
int main(){int a,b,c,d;cin>>a>>b>>c>>d;printf("%.2lf",sqrt((a-c)*(a-c)+(b-d)*(b-d)));return 0;
}
Problem 3542 摄氏温度转换
一 题目内容
时间:0.2s 空间:32M
题目描述:
输入一个浮点数, 表示华氏温度, 输出对应的摄氏温度,。
输入格式:
输入一个浮点数
输出格式:
输出浮点数,保留3位小数
样例输入:
100
样例输出:
37.778
约定:
二 新知识点
本题无新知识点。
三 思路
依题意运算即可。
四 AC代码
#include<bits/stdc++.h>
using namespace std;
int main(){double f,c;cin>>f;c=f*5.0/9.0+32.0;printf(".3lf",c);return 0;
}
Problem 9215 圈地
一 题目内容
时间:0.2s 空间:32M
题目描述:
小A要在墙角圈一块长方形地,我们认为墙面无限长。现在小A手里只有长度为w的绳子,问最多能圈面积多大的地。保证w为偶数。
输入格式:
一行一个不超过100的正整数,表示绳长。
输出格式:
一行一个整数,表示地的最大面积。
样例输入:
10
样例输出:
25
二 新知识点
本题没有新知识点。
三 思路
如图,红色为墙,蓝色部分是一个边长为的正方形,黑色部分是一个长为,宽为的长方形()。下面证明蓝色部分的面积永远大于黑色部分的面积:
蓝色部分的面积为:;
黑色部分的面积为:。
黑色部分的面积小于蓝色部分的面积。
因此,蓝色部分的面积最大,输出这个面积即可。
又因为为偶数,所以用int类型存储不会造成精度丢失(请注意int类型的除法只保留整数部分)。
四 AC代码
#include<bits/stdc++.h>
using namespace std;
int main(){int w;cin>>w;cout<<(w/2)*(w/2);return 0;
}
Problem 9217 吃鸡腿
一 题目内容
时间:0.2s 空间:32M
题目描述:
小A最喜欢吃鸡腿了。现在,炸鸡腿买三送一了!每只鸡腿a元,小A手中有B元。问小A能吃到多少只鸡腿?
输入格式:
一行两个整数a,B。
输出格式:
一行一个整数,表示答案。
样例输入:
1 7
样例输出:
9
二 新知识点
本题无新知识点。
三 思路
先求出小A能买多少鸡腿,再加上送的鸡腿。
四 AC代码
#include<bits/stdc++.h>
using namespace std;
int main(){int a,B;cin>>a>>B;int num=B/a;cout<<num+num/3;return 0;
}
Problem 1129 鸡兔同笼
时间:1s 空间:65536K
题目描述:
鸡兔同笼,数数头有x个,数数脚有y只,求鸡和兔各几只?
输入格式:
一行,两个整数x和y。
输出格式:
两行,第一行是鸡的只数,第二行是兔的只数。
样例输入:
40 100
样例输出:
30
10
二 新知识点
2.1 使用标准输出流输出换行符
可以使用cout按如下方法输出换行符:
//例1
cout<<endl;
//例2
cout<<"1"<<endl<<"2";
对于例1,会输出单独的换行符;对于例2,输出如下:
1
2
三 思路
假设所有动物全为鸡,则共有脚只。但所有动物不一定全都是鸡,我们少数了脚只。因为我们少数的脚是属于兔子的,且每只兔子都被少数了2只脚,因此兔子共只。随后即可求出鸡的只数。
四 AC代码
#include<bits/stdc++.h>
using namespace std;
int main(){int x,y;cin>>x>>y;int n=(y-2*x)/2; //2*x不要写成2xcout<<x-n<<endl<<n;return 0;
}
Problem 3902 分数求和
一 题目内容
时间:1s 空间:256M
题目描述
, 求的前n项和,答案保留2位小数
输入格式
一个整数n。
输出格式
一个浮点数。
样例输入
10
样例输出
0.91
约定
二 新知识点
2.1 前加加,后加加,前减减,后减减
要把一个int型变量x加1,我们会想到如下代码:
x=x+1;
意思是把x的新值设为原来的x值加1。其实,还有两种写法也可以实现这点:
++x; //前加加
x++; //后加加
其中的++x因为两个加号在前面,因此叫“前加加”;x++同理,叫“后加加”。
同样的,把x减去1也有如下两种写法:
--x; //前减减
x--; //后减减
其中上面一行叫“前减减”,下面一行叫“后减减”。
至于前加加、后加加和前减减、后减减的区别,我们以后遇到了再讲。
2.2 for循环
我们经常需要让程序做类似的事情,显然打很多遍代码不合算,因此有了for循环,格式如下:
for(数据类型 变量=x;循环继续的条件;每次循环后变量进行的变化){//此处写代码
}
三 思路
先寻找规律:
;
;
,
则第项的分母为。
找到规律后即可使用for循环,计算的值。
四 AC代码
#include<bits/stdc++.h>
using namespace std;
int main(){double s=0.0;int n;cin>>n;for(int i=1;i<=n;i++){s+=1.0/(i*(i+1));}printf("%.2lf",s);return 0;
}
XJOI一级三段题解(g++,即C++),也可视作C++算法竞赛教程相关推荐
- XJOI一级四段题解(g++,即C++),也可视作C++算法竞赛教程
目录 Problem 3536 判断奇偶性 一 题目内容 二 新知识点 三 思路 四 AC代码 Problem 1112 交换变量 一 题目内容 二 新知识点 2.1 swap(a,b)的用法 三 思 ...
- android wear升级方法,LG G Watch官方工具包刷Android wear5.1.1教程(附刷机包)
Android wear5.1.1版本已经开始推送更新了,不过很多LG G Watch的用户已经迫不及待想要升级到5.1.1版本了,下面小编就为大家介绍一下LG G Watch官方工具包刷Androi ...
- 《算法竞赛进阶指南(by 李煜东)》习题题解 集合
又是笔者给自己挖的大坑. 这里是李煜东所著<算法竞赛进阶指南(by 李煜东)>的习题题解集合. 有任何错误请在对应文章下反馈或联系 nicest1919@163.com ,谢谢 qwq 从 ...
- 第三届上海市青少年算法竞赛题解
第三届上海市青少年算法竞赛题解 T1 数洞洞 #include<bits/stdc++.h> using namespace std; int a[11]={0,1,0,0,0,1,0,1 ...
- UVA-1598 交易所 题解答案代码 算法竞赛入门经典第二版
GitHub - jzplp/aoapc-UVA-Answer: 算法竞赛入门经典 例题和习题答案 刘汝佳 第二版 AC代码 有意思的一个题目.书上说这是一个不错的优先队列练习题,但实际上它其实是一个 ...
- XJOI 3287 离散化 题解
时间:1s 空间:128M 题目描述: 给你n个数,输出这n个数离散化后的结果 比如4 100 80 10000 离散化后为1 3 2 4 每个数的值为在原先数组中大小的排名,相同排名输出相同. 如1 ...
- `算法竞赛题解` `LeetCode` 6126. 设计食物评分系统
题目链接 题目 设计一个支持下述操作的食物评分系统: 修改 系统中列出的某种食物的评分. 返回系统中某一类烹饪方式下评分最高的食物. 实现 FoodRatings 类: FoodRatings(Str ...
- 【B站视频教程笔记】基于VSCode和CMake实现C/C++开发 | Linux篇(gcc/g++)(安装、配置、使用详细教程)(VSCode教程)(CMake教程)(精!)
基于VSCode和CMake实现C/C++开发 | Linux篇 文章目录 目录结构 文件编辑 vim(编辑器之神,linux里可以畅通无阻,必学,但不是现在!) 安装GCC和GDB g++编译过程 ...
- 【HIBERNATE框架开发之九】HIBERNATE 性能优化笔记!(遍历、一级/二级/查询/缓存、乐观悲观锁等优化算法)...
本站文章均为 李华明Himi 原创,转载务必在明显处注明: 转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/hibernate/825.html 1. ...
最新文章
- Delphi常见的运行期Access Violation错误分析
- linux下编写时钟代码,Linux时间子系统之一:clock source(时钟源)【转】(示例代码)...
- VTK:相互作用之MouseEventsObserver
- C语言equal(),C ++中的std :: equal()
- 【ASP】简单Url编码和Url解码实例
- python sorted下标_Python列表操作最全面总结
- 网页页面禁止用户复制
- 外星人双系统ubuntu18.04安装killer E3100网卡驱动
- ubuntu安装及使用笔记
- 第一次做腌菜 腌柚子皮
- 我的世界java版的名字是独一无二吗_2018独一无二霸气网名,二字网名超拽霸气冷酷...
- Web前端满屋花案例框架
- PDF文件电子签名怎么做?分享一个好用的签名工具
- 日子大不了就是有粥喝粥,有菜吃菜
- IPEndPoint 和 EndPoint
- 中国汽车电子市场和发展机会分析
- Window_MySQL初始化(重置)数据库
- 二次验证码小程序与谷歌身份验证器不同点是?
- 【调剂】中国矿业大学(徐州)2022年硕士研究生拟接受调剂专业
- vijos 1250 最勇敢的机器人