目录

Problem 3536 判断奇偶性

一 题目内容

二 新知识点

三 思路

四 AC代码

Problem 1112 交换变量

一 题目内容

二 新知识点

2.1 swap(a,b)的用法

三 思路

四 AC代码

Problem 8050 逻辑运算运用1

一 题目内容

二 新知识点

2.1 逻辑运算符——与、或、非

2.2 逻辑运算的优先级

三 思路

四 AC代码

Problem 3539 美丽数

一 题目内容

二 新知识点

三 思路

四 AC代码

Problem 3540 优美数

一 题目内容

二 新知识点

三 思路

四 AC代码

Problem 8051 逻辑运算运用2

一 题目内容

二 新知识点

三 思路

四 AC代码

Problem 8054 逻辑运算运用5

一 题目内容

二 新知识点

三 思路

四 AC代码

Problem 1109 行李托运

一 题目内容

二 新知识点

2.1 if-else if-else语句和if-else if语句

三 思路

四 AC代码

Problem 3538 判断直角三角形

一 题目内容

二 新知识点

2.1 勾股定理的逆定理

三 思路

四 AC代码

Problem 1175 分西瓜

一 题目内容

二 新知识点

三 思路

四 AC代码

Problem 3536 判断奇偶性

一 题目内容

时间:0.2s    空间:32M

题目描述:

判断一个整数是奇数还是偶数,如果是奇数,输出"odd", 如果是偶数输出"even"

输入格式:

输入一个整数

输出格式:

输出格式见题目描述

样例输入1:

2

样例输出1:

even

样例输入2:

1

样例输出2:

odd

约定:

二 新知识点

本题没有新知识点。

三 思路

根据偶数的定义,能被2整除的数是偶数,否则就是奇数。明确这点后可使用if-else语句进行判断并输出结果。

四 AC代码

#include<bits/stdc++.h>
using namespace std;
int main(){int n;cin>>n;if(n%2==1){cout<<"odd";}else{cout<<"even";}return 0;
}

Problem 1112 交换变量

一 题目内容

时间:1s   空间:256M

题目描述:

随意输入两个数,通过交换将大的数放在中,小的数放在中。

输入格式:

输入一行,包含两个整数,

输出格式:

输出两行,每行一个整数,输出交换后的,

样例输入:

4 5

样例输出:

5
4

二 新知识点

2.1 swap(a,b)的用法

对于两个数(int,double等类型),可以通过swap(a,b)交换这两个数。比如:

int a=1,b=2;
swap(a,b);
cout<<a<<" "<<b;

输出结果如下:

2 1

三 思路

用if语句判断是否小于,如果是,就交换两数。

四 AC代码

#include<bits/stdc++.h>
using namespace std;
int main(){int x,y;cin>>x>>y;if(x<y){swap(x,y);}cout<<x<<endl<<y;return 0;
}

Problem 8050 逻辑运算运用1

一 题目内容

时间:0.2s     空间:32M

题目描述:

输入三个数,如果,输出YES,不然输出NO

输入格式:

输入三个整数

输出格式:

输出格式见题目描述

样例输入1:

4 3 2

样例输出1:

YES

样例输入2:

1 3 2

样例输出2:

NO

约定:

二 新知识点

2.1 逻辑运算符——与、或、非

对于两个bool类型的变量,我们有时会想要判断他们是否都成立。这时,就需要用到逻辑运算符之一——与运算。与运算格式如下:

a&&b

只有当a和b都为true时,a&&b的结果才为true,否则为false。

同样地,要判断a和b中是否至少有一个成立,我们要用到或运算,格式如下:

a||b

这时,只要a和b有一个为true,a||b的结果就为true;当a和b都为false时,a||b才为false。

若要判断a是否不成立,需要用到非运算,格式如下:

!a

a为true时,!a为false;a为false时,!a为true。

逻辑运算符一般不单独使用,而是与if语句配合使用。

2.2 逻辑运算的优先级

C++中,非运算的优先级最高,与运算次之,或运算最低。为增强代码的可读性,不管逻辑运算是否按照想要的优先级排列,最好都用括号把逻辑运算括起来(换句话说,如果不添这些括号,可能会让别人和自己读起来费劲些)。例如:

你想要先求a&&b,令其为d,再求d||c。则写出代码如下:

a&&b||c

由于与运算的优先级比或运算高,因此该语句会按照预想的情况运行。但为了增加代码可读性,最好添加括号如下:

(a&&b)||c

但如果要先求c||a,令其为d,再求d&&b,则代码如下:

c||a&&b

显然,a&&b会先被执行,不符合预想情况。则添括号如下:

(c||a)&&b

三 思路

使用a>b&&b>c即可判断,注意不能直接写a>b>c。

四 AC代码

#include<bits/stdc++.h>
using namespace std;
int main(){int a,b,c;cin>>a>>b>>c;if(a>b&&b>c){cout<<"YES";}else{cout<<"NO";}return 0;
}

Problem 3539 美丽数

一 题目内容

时间:0.2s     空间:32M

题目描述:

如果一个数是一个偶数而且大于50,我们称它为美丽数

给你一个数,判断它是否是美丽数

输入格式:

输入一个整数

输出格式:

如果是美丽数,输出"yes", 否则输出"no"

样例输入1:

50

样例输出1:

no

样例输入2:

52

样例输出2:

yes

约定:

二 新知识点

本题没有新知识点。

三 思路

根据题意判断即可,注意判断偶数的方法是n%2==0。

四 AC代码

#include<bits/stdc++.h>
using namespace std;
int main(){int n;cin>>n;if(n>50&&n%2==0){cout<<"yes";}else{cout<<"no";}return 0;
}

Problem 3540 优美数

一 题目内容

题目描述:

如果一个数是一个偶数或者大于50,我们称它为优美数

输入格式:

输入一个整数

输出格式:

如果是优美数,输出"yes", 否则输出"no"

样例输入1:

50

样例输出1:

yes

样例输入2:

2

样例输出2:

yes

约定:

二 新知识点

本题没有新知识点。

三 思路

用或运算连接,再加以判断即可。

四 AC代码

#include<bits/stdc++.h>
using namespace std;
int main(){int n;cin>>n;if(n%2==0||n>50){cout<<"yes";}else{cout<<"no";}return 0;
}

Problem 8051 逻辑运算运用2

一 题目内容

时间限制:0.2s 内存限制:32M
【题目描述】

当一个数字满足以下两个条件之一时,我们会将其视为“Good数”:

1.数字是5的倍数。

2.数字是3的倍数且数小于等于20。

判断给定的数字是否是一个Good数,并输出“YES”或“NO”。

输入格式
一个整数
输出格式

“YES”或 “NO”(实际输出没有引号)。
样本输入 1

10
样本输出 1

YES

样本输入 2
21
样本输出 2
NO
约束

二 新知识点

本题没有新知识点。

三 思路

这题的逻辑运算其实不难,但有一个小坑点:

当一个数字满足以下两个条件之一时,我们会将其视为“Good数”

这跟或运算不同。在这道题中,同时满足两个条件的数是不被算作Good数的。所以,为了符合题目要求,我们使用两个bool类型变量a1和a2分别表示该数是否满足两个条件,用语句

(!a1&&a2)||(a1&&!a2)

判断即可。

四 AC代码

#include<bits/stdc++.h>
using namespace std;
int main(){bool a1=false,a2=false; //是否满足两个条件int n;cin>>n;if(n%5==0){a1=true;}if(n%3==0&&n<=20){a2=true;}if((!a1&&a2)||(a1&&!a2)){cout<<"YES";}else{cout<<"NO";}return 0;
}

Problem 8054 逻辑运算运用5

一 题目内容

时间:0.2s   空间:32M

题目描述:

给定3个数a,b,c,若存在两个数之和大于第三个数的三倍,输出YES,不然输出NO

输入格式:

三个整数a,b,c

输出格式:

输出格式见题目描述

样例输入1:

3 4 5

样例输出1:

NO

样例输入2:

3 4 6

样例输出2:

YES

约定:

二 新知识点

本题没有新知识点。

三 思路

依题意,用以下代码判断即可:

a+b>3*c||b+c>3*a||a+c>3*b

四 AC代码

#include<bits/stdc++.h>
using namespace std;
int main(){int a,b,c;cin>>a>>b>>c;if(a+b>3*c||b+c>3*a||a+c>3*b){cout<<"YES";}else{cout<<"NO";}return 0;
}

Problem 1109 行李托运

一 题目内容

时间:1s   空间:256M

题目描述:

计算行李的托运费用:如果行李重量不超过30kg,每公斤0.2元;如果行李重量大于30kg,但是不超过60kg,超过30公斤部分按每公斤0.6元算;如果行李重量超过60公斤,不允许行李托运,报告“NO”。在键盘上输入行李重量,屏幕显示行李托运的结果。

输入格式:

一个整数,表示行李重量

输出格式:

输出一行,如果行李可以托运,输出为一个浮点数(结果保留2位小数点);如果行李不可以托运,则输出“NO”

样例输入:

36

样例输出:

9.60

二 新知识点

2.1 if-else if-else语句和if-else if语句

有时我们需要判断的条件比较复杂,仅靠if-else语句无法满足需求,这时就需要if-else if-else或if-else if语句,前者格式如下:

if(条件1){//语句1
}else if(条件2){//语句2
}else if(条件3){//语句3
}else if(条件4){
...
...
...
...
}else{//语句n
}

若条件1满足,则语句1执行;否则(当条件1不满足时),若条件2满足,则语句2执行;......若条件1~n-1都不满足,则进入else部分,执行语句n。

当然,也可以略去else语句,格式如下所示:

if(条件1){//语句1
}else if(条件2){//语句2
}else if(条件3){//语句3
}else if(条件4){
...
...
...
}else if(条件n){//语句n
}

其执行方式与if-else if-else语句基本相同,只是若条件n也不满足,则直接跳过该语句。

三 思路

依题意判断并计算即可,注意浮点数要保留2位小数输出。

四 AC代码

#include<bits/stdc++.h>
using namespace std;
int main(){int a;cin>>a;if(a>60){cout<<"NO";}else if(a>30){printf("%.2lf",30*0.2+0.6*(a-30));}else{printf("%.2lf",0.2*a);}
}

Problem 3538 判断直角三角形

一 题目内容

时间:0.2s    空间:32M

题目描述:

输入三角形的三条边,判断是否是直角三角形

输入格式:

输入三角形3条边(均为整数)

输出格式:

如果3条边组成的是直角三角形,输出yes否则输出no

样例输入:

3 4 5

样例输出:

yes

约定:

数据保证

二 新知识点

2.1 勾股定理的逆定理

勾股定理的逆定理陈述如下:设的三边满足,则是直角三角形。证明如下:

如图,作使得,且,则根据勾股定理,。根据,则

三 思路

直接判断即可,注意a、b、c的顺序不定。

四 AC代码

#include<bits/stdc++.h>
using namespace std;
int main(){int a,b,c;cin>>a>>b>>c;if(a*a+b*b==c*c||b*b+c*c==a*a||a*a+c*c==b*b){cout<<"yes"<<endl;}else{cout<<"no"<<endl;}return 0;
}

Problem 1175 分西瓜

注:此题与CF4A(Codeforces上的第4A题)题意相同。

一 题目内容

时间:1s     空间:256M

题目描述:

给你一个西瓜的重量,问你能否将这个西瓜分成两部分,每个部分都是偶数。

输入格式:

输入一行,包含一个整数,表示西瓜的重量

输出格式:

输出一行,见样例。

样例输入1:

8

样例输出1:

YES, you can divide the watermelon into two even parts.

样例输入2:

3

样例输出2:

NO, you can't divide the watermelon into two even parts.

约定:

提示:

要注意检查你的输出格式要跟样例输出一模一样才能通过,尤其别忘了句子最后的小点哦

二 新知识点

本题没有新知识点。

三 思路

我们知道偶数+偶数=偶数,因此只要是偶数都是YES,但2除外(因为它只能分解成1+1或0+2,但显然不能分成一份重量为0的部分)。

四 AC代码

#include<bits/stdc++.h>
using namespace std;
int main(){int a;cin>>a;if(a%2==0&&a!=2){cout<<"YES, you can divide the watermelon into two even parts.";}else{cout<<"NO, you can't divide the watermelon into two even parts.";}
}

XJOI一级四段题解(g++,即C++),也可视作C++算法竞赛教程相关推荐

  1. XJOI一级三段题解(g++,即C++),也可视作C++算法竞赛教程

    目录 Problem 3567 浮点数 一 题目内容 二 新知识点 2.1 对浮点数精度要求的处理与另一种标准输出 三 思路 四 AC代码 Problem 3572 浮点除法 一 题目内容 二 新知识 ...

  2. android wear升级方法,LG G Watch官方工具包刷Android wear5.1.1教程(附刷机包)

    Android wear5.1.1版本已经开始推送更新了,不过很多LG G Watch的用户已经迫不及待想要升级到5.1.1版本了,下面小编就为大家介绍一下LG G Watch官方工具包刷Androi ...

  3. 《算法竞赛进阶指南(by 李煜东)》习题题解 集合

    又是笔者给自己挖的大坑. 这里是李煜东所著<算法竞赛进阶指南(by 李煜东)>的习题题解集合. 有任何错误请在对应文章下反馈或联系 nicest1919@163.com ,谢谢 qwq 从 ...

  4. 第三届上海市青少年算法竞赛题解

    第三届上海市青少年算法竞赛题解 T1 数洞洞 #include<bits/stdc++.h> using namespace std; int a[11]={0,1,0,0,0,1,0,1 ...

  5. UVA-1598 交易所 题解答案代码 算法竞赛入门经典第二版

    GitHub - jzplp/aoapc-UVA-Answer: 算法竞赛入门经典 例题和习题答案 刘汝佳 第二版 AC代码 有意思的一个题目.书上说这是一个不错的优先队列练习题,但实际上它其实是一个 ...

  6. XJOI 3287 离散化 题解

    时间:1s 空间:128M 题目描述: 给你n个数,输出这n个数离散化后的结果 比如4 100 80 10000 离散化后为1 3 2 4 每个数的值为在原先数组中大小的排名,相同排名输出相同. 如1 ...

  7. `算法竞赛题解` `LeetCode` 6126. 设计食物评分系统

    题目链接 题目 设计一个支持下述操作的食物评分系统: 修改 系统中列出的某种食物的评分. 返回系统中某一类烹饪方式下评分最高的食物. 实现 FoodRatings 类: FoodRatings(Str ...

  8. 【B站视频教程笔记】基于VSCode和CMake实现C/C++开发 | Linux篇(gcc/g++)(安装、配置、使用详细教程)(VSCode教程)(CMake教程)(精!)

    基于VSCode和CMake实现C/C++开发 | Linux篇 文章目录 目录结构 文件编辑 vim(编辑器之神,linux里可以畅通无阻,必学,但不是现在!) 安装GCC和GDB g++编译过程 ...

  9. 【HIBERNATE框架开发之九】HIBERNATE 性能优化笔记!(遍历、一级/二级/查询/缓存、乐观悲观锁等优化算法)...

    本站文章均为 李华明Himi 原创,转载务必在明显处注明:  转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/hibernate/825.html 1. ...

最新文章

  1. Python网络爬虫之scrapy爬虫的基本使用
  2. php引擎文件php.ini优化参数
  3. Python文档阅读笔记-OpenCV中Match Shapes
  4. 5375亿元的x86市场:戴尔946亿、HPE 682亿、浪潮517亿、联想345亿、华为256亿、思科218亿、新华三204亿
  5. 从事 Java 20 年最终却败给了 Python,哭了!
  6. pythonunittest模块_python单元测试模块unittest
  7. nyist 488 素数环
  8. C语言中判断素数的几种方法
  9. C语言使用scanf_s函数输入的正确姿势
  10. mysql hive 建表语句_关于Mysql元数据如何生成Hive建表语句注释脚本
  11. Redis的集群原理
  12. 蝶形算法(Butterfly Algorithm)未更完
  13. 解决mac按键精灵鼠标位置不准(连点器)
  14. 哔哩哔哩助手:bilibili综合辅助扩展Chrome插件
  15. 视频音频剪辑合并软件 免费强大 LosslessCut
  16. matplotlib报错:Glyph 25151 (\N{CJK UNIFIED IDEOGRAPH-623F}) missing from current font. func(*args)
  17. 计算机毕业论文个人小结2500字,毕业论文个人小结
  18. 如何选用GPU云服务器?
  19. pdf根据目录生成书签
  20. 分离非负整数--gyy

热门文章

  1. 3.每天一个java小程序之累加累乘
  2. java线程调度模型
  3. Qt 2D游戏引擎QtGameEngine使用入门案例
  4. android 杜比 播放器,适用于移动设备的杜比全景声 (Dolby Atmos)
  5. mysql 占用cpu过高
  6. python实现AHP算法(层次分析法)
  7. 速方云怎么下载keep2share文件?
  8. SQL map自动注入,利用工具注入
  9. Ubuntu安装及Ubuntu下常用软件安装(不断补充)及Windows相关--软件开发用途
  10. linux 易语言窗口程序_易语言开发Linux程序