第一章 程序设计入门--算法竞赛入门经典

算法竞赛推荐书单 前言 入坑算法竞赛已经一年半了,在这期间也读了不少关于算法竞赛的书,这些书对我的帮助还是蛮大的。平时看题解多是个人零散的题解,很难以系统的去学习,认认真真的挑选1-2本书来阅读,无论是从思维能力还是文字表达能力都会得到提升,以下都是我自己读过的书进行一下分享,难度由浅入深,部分书籍浅尝而止。 入门:《啊哈!算法》 适合:总题量150以下初步掌握C语言的萌新 一本充满智慧和趣味的算法入门书。没有枯燥的描述,没有难懂的公式,一切以实际应用为出发点,通过幽默的语言配以可爱的插图来讲解算法。你更像是在阅读一个个轻松 阅读详情

第一章 程序设计入门–算法竞赛入门经典

知识点一:
int m=25;
printf("%d\n",m);
printf("%03d\n",m);

输出如下:
25
025

知识点二:不借住任何变量,交换a,b两个值

方法1:

#include<stdio.h>
int main()
{
	int a, b;
	scanf("%d%d", &a, &b);
	a = a + b;
	b = a - b;
	a = a - b;
	printf("%d %d\n", a, b);
	return 0;
}

方法2:

#include<stdio.h>
int main()
{
	int a, b;
	scanf("%d%d", &a, &b);
	a ^= b ^= a ^= b;
	printf("%d %d\n", a, b);
	return 0;
}

方法3:多数算法竞赛采用黑盒测试,即只考查程序解决问题的能力,而不关心采用了什么方法。对于本题而言,最合适的程序如下:

#include<stdio.h>
int main()
{
	int a, b;
	scanf("%d%d", &a, &b);
	printf("%d %d\n", b, a);
	return 0;
}
知识点三:鸡兔同笼

已知鸡和兔的总数量为n,总腿数为m。输入n和m,依次输出鸡的数目和兔的数目。如果无解,则输出No answer。

//分析:设鸡有a只,兔有b只,则a+b=n,2a+4b=m,
//联立得a=(4n-m)/2,b=n-a
#include<stdio.h>
int main()
{
	int a, b, n, m;
	scanf("%d %d", &n, &m);
	a = (4 * n - m) / 2;
	b = n - a;
	if (m % 2 == 1 || a < 0 || b < 0)
	/*c语言中的逻辑运算符都是短路运算符,一旦能够
	确定整个表达式的值,就不再继续计算。*/
		printf("No answen");
	else
		printf("%d %d\n", a, b);
	return 0;
}
知识点四:

在C99中,double的输出必须用%f,而输入需要用%lf,但是在C89和C++中都不必如此——输入输出可以都用%lf。

知识点五:
判断是否构成三角形,两个小边大于最大边。
知识点六:

判断闰年: if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) printf(“yes\n”);

#include<stdio.h>
int main()
{
	int year;
	scanf("%d", &year);
	if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0))
		printf("yes\n");
	else
		printf("no\n");
	return 0;
}
知识点七:int型整数的最小值和最大值是多少?

分析:int用32位存储,最高位是符合位,剩下的是数值位;
正int的符号位为0,数值位用原码表示,从最小值+1(0x00 0x00 0x00 0x01)到最大值+2^31-1=+2147483647(0x7f 0xff 0xff 0xff);
负int的符号位为1,数值位用补码表示,从最小值-1(0xff 0xff 0xff 0xff 0xff)到最大
值-2^31=-2147483648(0x80 0x00 0x00 0x00),计算机将-0(0x80 0x00 0x00 0x00)定义为负int的最大值,所以负int比正int表示的范围多一个数;
零表示为+0(0x00 0x00 0x00 0x00)。

#include<stdio.h>
int main()
{
	int min;
	int max;
	for (min = -1;min < 0;min--);
	printf("%d\n", min + 1);
	for (max = 1;max > 0;max++);
	printf("%d\n", max - 1);
	return 0;
}

输出:
-2147483648
2147483647

知识点八:

输出所有形如aabb的4位完全平方数(即前两位数字相等,后两位数字也相等)。
代码一:

#include<stdio.h>
#include<math.h>
int main()
{
	for (int a = 1;a <= 9;a++)
	{
		for (int b = 0;b <= 9;b++)
		{
			int n = a * 1100 + b * 11;
			int m = floor(sqrt(n) + 0.5);
			if (m*m == n)
				printf("%d\n", n);
		}
	}
	return 0;
}

代码二:

#include<stdio.h>
int main()
{
	for (int x = 1;;x++)
	{
		int n = x*x;
		if (n < 1000)
			continue;
		if (n > 9999)
			break;
		int hi = n / 100;
		int lo = n % 100;
		if (hi / 10 == hi % 10 && lo / 10 == lo % 10)
			printf("%d\n", n);
	}
	return 0;
}

输出:
7744

刘汝佳《算法竞赛入门经典》---总结 刘汝佳:《算法竞赛入门经典》 三步: 基本的数据结构+算法知识; 数论等数学基本知识; 锻炼联想建模能力、知识与实际相结合,解决实际问题! 第一章:程序设计入门 1.a/b 当a、b为整数时,结果向中间位置靠拢;例如: -8/5 结果为 -1 ; 2.浮点数使用%.3lf 输出; 另外: 整数-浮点数=浮点数 整数/浮点数=浮点数; 3.在竞赛中尽量使用const 阅读详情

相关推荐

算法竞赛从入门到进阶pdf_ACMICPC/CCPC算法竞赛入门建议

繁花落尽,我心中仍有花落的声音,一朵,一朵,在无人的山间轻轻飘落。欢迎喜欢CodeForces,Atcoder,牛客,leetcode,Codechef小伙伴们一起来van呀~交流群:1104993647一起来比赛吧牛客编程巅峰赛S2第8场 - 钻石&王者入门推荐书籍:算法竞赛入门经典(紫书,蓝书)挑战程序设计竞赛(白书)C++ Primer算法竞赛进阶指南熟悉C语言推荐OJ训练...

weixin_39867142的博客 2737

鸡兔同笼问题----已知鸡和兔的总数量为n,总腿数为m,输入n和m,依次输出鸡的数目和兔的数目。如果无解,则输出 No answer。

已知鸡和兔的总数量为n,总腿数为m,输入n和m,依次输出鸡的数目和兔的数目。如果无解,则输出 No answer。 假设鸡有a只,兔有b只,则 a+b=你n,2a+4b=m;联立解得 a=(4n-m)/2 b=n-a; 在什么情况下此解不作数呢,a和b都应该是正整数。 //已知鸡和兔的总数量为n,总腿数为m。输入 n和m,依次输出鸡的数目和兔的数目。 #include<stdio.h> int main() { int n, m; scanf_s("%d%d", &n,..

pythonAk47vt的博客 1万+

STM32 FATFS文件系统按行读取SD卡数据

STM32 SD数据实现按行读取

qq_32216815的博客 7824

java-鸡兔同笼问题

已知鸡和兔的总数量为n,总腿数为m。输入n和m,依次输出鸡和兔的数目,如果无解, 则输出“No answer”(不要引号)。 import java.util.Scanner; public class 鸡兔同笼问题 { /** * @param args */ public static void main(String[] args) { // TODO Auto-ge...

YCCX_LHH21的博客 1038

【自动驾驶控制算法】 第一讲 绪论

声明【自动驾驶控制算法】系列是博主对所分享教学内容的学习笔记,并且该系列每篇博客都会将博主听课后总结的纸质版笔记附于文末,供大家参考。是一位研究汽车领域,无人驾驶方向及其相关方向的大佬,也算是博主在无人驾驶方向的启蒙老师。所以研究相关领域的朋友推荐去听一听他的视频讲解。...

iamtbon_1的博客 1796

Coze知识库搭建:智能化管理与高效检索实践

知识管理系统是现代企业信息资产管理的核心基础设施,其核心原理是通过结构化存储和智能检索技术实现知识的快速流转。在技术实现上,基于NLP的语义理解引擎和知识图谱构建是关键,能够显著提升检索准确率和知识关联性。以Coze平台为例,其针对中文场景优化的分词算法和多模态处理能力,可有效解决技术文档管理中的术语识别和格式兼容问题。这类系统在开发团队知识沉淀、新员工培训等场景中价值显著,特别是当集成RBAC权限模型和自动化备份策略后,既能保障信息安全,又能实现持续的知识迭代。通过合理配置同义词扩展和权重调整,可使搜索命

weixin_29041195的博客 261

已知鸡和兔的总数量为n,总腿数为m。输入n和m,依次输出鸡的数目和兔的数目。

输入格式: 输入两个整数n和m,分别表示鸡和兔的总数量和总腿数。(0<n<m<1000000) 输出格式: 输出两个整数,用一个空格隔开,分别表示鸡的只数和兔子的只数。 输入样例: 14 32 输出样例: #include <stdio.h> int main() { int m, n, a; scanf("%d%d", &n, &m); a=m/2.0-n; printf(

m0_74399662的博客 2355

OpenWrt国内镜像源一键切换脚本:清华/阿里/中科大源全搞定

本文介绍了OpenWrt国内镜像源一键切换脚本,支持清华、阿里和中科大三大源,自动识别设备架构和系统版本,显著提升软件包安装速度和成功率。脚本包含架构自动识别、版本适配、多源选择和配置备份等功能,适用于x86_64、ramips/mt7621等常见架构,帮助用户解决海外源访问缓慢的问题。

g5h6i的博客 1175

【濡白的C语言】从零开始的刷题之旅

每个人都是从小白成长起来的,在此篇记录一些我从小白开始刷到的一些有意义的题目,不定期更新题目,建议收藏后享用~感谢支持,也欢迎评论出想看的题目类型,会考虑添加的!题目的话我会给出题干,代码,最后附上我对题目值得注意或学习的地方。

qq_62306969的博客 1812

Discuz IIS上传附件大于28M失败报错Upload Failed.修改maxAllowedContentLength(图文教程)

下图:Discuz X3.5的系统信息,上传许可为1024MB(1GB)论坛为局域网论坛,仅供内部同事交流使用!使用官方最新的Discuz! X3.5 Release 20231221 UTF-8 下图:选择上传附件(提示可以最大上传100M) 下图:模拟上传84M的文件(

骚团长的博客 1828

matinal:S4 HANA 详解ACDOCA与BSEG的区别都在这了

当你在Coding Block中添加自定义字段的时候

matinal 當冬夜漸暖 。公众号:matinal 4569

鸡兔同笼

鸡兔同笼 时间限制:3000 ms | 内存限制:65535 KB 难度:1 描述 已知鸡和兔的总数量为n,总腿数为m。输入n和m,依次输出鸡和兔的数目,如果无解,则输出“No answer”(不要引号)。 输入 第一行输入一个数据a,代表接下来共有几组数据,在接下来的(a a行里,每行都有一个n和m.(0 输出 输出鸡兔的个数,或者No answer 样例输入

标哥 2544

DDR核心机制解析:从Burst到Prefetch的性能跃迁

本文深入解析了DDR内存性能跃迁的核心机制,重点阐述了Burst(突发传输)与Prefetch(预取)技术的协同工作原理。Burst机制通过连续传输数据减少访问延迟,而Prefetch则通过内部预取数据提升吞吐量,两者结合完美匹配现代CPU缓存行需求,是DDR3等内存实现高效带宽的关键。

weixin_29232121的博客 135

{算法竞赛入门经典}第一章 程序设计入门

 一. 概述       第一章介绍的内容都是相对比较基础的入门级的知识.虽然基础,但是仍然有很多小细节需要多加留心,不然有些错误会让你不知所措..      本章总体来说是通过一些简明的例题引入编写正规并且完整的程序的必须的知识点.包括输入,输出,以及竞赛时的一些小细节.    二. printf()的输出格式       关于printf的各种输出格

空白 1952

SAP 与 Palantir 合作全景解析:这不是普通集成,而是把 ERP、数据语义层、云迁移与企业级 AI 串成一条价值链

SAP与Palantir的战略合作聚焦企业数字化转型核心痛点,通过深度技术整合构建"数据-决策-执行"闭环。合作包含四大主线:云迁移连续性保障、SAP业务数据云与Palantir平台对接、联合工程开发、高监管行业优先落地。技术实现上采用SAP认证插件,支持双向数据交互和实时业务动作触发。该合作突破了传统ERP系统局限,将业务语义与AI执行相结合,特别适合制造业供应链优化、财务争议处理等高价值场景,为企业在云迁移过程中实现业务连续性与智能化升级提供新范式。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 192

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

算法竞赛入门经典(第二版) —— 第一章 程序设计入门

算法竞赛入门经典(第二版) —— 第一章 程序设计入门

代码改变世界 559

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

《算法竞赛入门经典》第一章 程序设计入门 习题

习题1-1 平均数(average)输入三个数,输出他们的平均值,保留3位小数。 #include &lt;stdio.h&gt; int main() { double a, b, c; scanf("%lf%lf%lf", &amp;a, &amp;b, &amp;c); printf("%.3lf", (a+b+c)/3); return 0;...

weixin_34203832的博客 184

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

算法竞赛入门经典(第二版)第一章程序设计例题与提示上

例题1-1圆柱体的表面积 输入底面半径r和高h输出圆柱体的表面积,保留3位小数 样例输入: 3.5 9 样例输出 area=274.889 #include &lt;stdio.h&gt; #include &lt;math.h&gt; int main() { const double pi =acos(-1,0) double r,h,s1,s2,s; scanf("%lf%lf",&amp;...

qq_43233736的博客 440

算法竞赛入门经典(紫书)学习笔记——第一章 程序设计入门

%.1f保留一位小数 %.2f保留两位小数 %f以浮点数输出 printf("%.1f\n",8/5); //输出0.0 printf("%d\n",8.0/5.0); //输出-1717986918 --> 格式化输出类型需匹配 (整数值用%d输出,实数用%f输出) 计算PI的值:PI = acos(-1.0) = atan(1.0)*4 inv...

weixin_33768481的博客 163

算法竞赛入门经典(第二版)第一章程序设计例题与提示下

例题1-4鸡兔同笼 已知鸡和兔的总数量为n,总腿数为m。输入m和n,依次输入鸡的数目和兔的数目。如果无解则输出no answer. #include &lt;stdio.h&gt; int main() { int a,b,n,m; scanf("%d%d",&amp;n,&amp;m); a=(4*n-m)/2; b=n-a; if(m%2==1||a&...

qq_43233736的博客 128

算法竞赛入门经典(第2版)—索引

文章目录第一部分—语言篇第一章(程序设计入门)和第二章(循环结构程序设计)第三章(数组和字符串) 第一部分—语言篇 第一章(程序设计入门)和第二章(循环结构程序设计) 博文链接:算法竞赛入门经典(第2版)—第一章和第二章总结 总结了第一章和第二章的一些有用的知识点。 第三章(数组和字符串) 博文链接:算法竞赛入门经典(第2版)—第三章 题目名称 题目类型 题目难度 复习指数 备注 ...

Accept1234的博客 1138

算法竞赛入门经典阅读心得

List item . List item List item 算法竞赛入门经典阅读心得 ** 看完算法竞赛入门经典这本书的前三章,我感觉自己还有很多的基础知识没有掌握。也许,对于写代码并没有太大的影响,但对于读代码和代码的容错性把握还是有很大的不足之处。 这本书的前三章是C语言的语言篇,全部是从基础开始讲的。原本经过将近一年的学习,我认为我对于这些基础知识对于我来讲根本是小菜一...

weixin_44584292的博客 1779

面向ACM国际大学生程序设计竞赛的经典书籍介绍

八月 22nd, 2011 | Posted by diaorui in 书刊杂志 本文主要介绍面向ACM国际大学生程序设计竞赛的经典书籍。 欢迎网友积极投稿完善本文,包括提供更多最新书籍介绍以及对已列出的书籍给出书评。 算法艺术与信息学竞赛 作者: 刘汝佳 出版社: 清华大学出版社 出版年: 2004-1 页数: 428 定价: 45.00元 装帧: 平装

XYG's Space 2348

算法竞赛入门指南

首先明确你学算法的需求,从易到难大致分为以下三种: 1:应付小厂面试就行,考研数据结构无所谓的。 2:手撕中大厂算法,在蓝桥杯,天梯赛等算法比赛获得国奖,考研希望数据结获得不错的分数(**推荐**)。 3:打ICPC,CCPC等算竞比赛,公费旅游,成为吊大荣光。

2301_79199219的博客 4693

几本信息学竞赛算法书

(1)实用算法的分析与程序设计   作者:吴文虎  王建德   (2)算法艺术和信息学竞赛      作者:刘汝佳 黄亮 本书较为系统和全面地介绍了算法学最基本的知识。这些知识和技巧既是高等院校“算法与数据结构”课程的主要内容,也是国际青少年信息学奥林匹克(IOI)竞赛和ACM/ICPC国际大学生程序设计竞赛中所需要的。书中分析了相当数量的问题。 本书共3章。第1章介绍算法与数据结构;第

smallgyy的专栏 5244
上一篇: Git指令解释
下一篇: 第二章 循环结构程序设计--算法竞赛入门经典
Red fog
博客等级 码龄8年 139粉丝 54原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值