算法竞赛入门经典习题

article/2025/8/29 18:30:19

第一章:程序设计入门

总结
1、%.2f 表示保留两位小数

2、const double Pi=acos(-1.0) //尽量用const声明常量

3、三整数排序:

	If(a>b) {交换} if(a>c){交换} if(b>c){交换}`

第二章:循环结构设计

总结

1、重复次数可变、递增:for(初始化 ; 条件 ; 调整)
循环次数不确定、也不是递增:while
循环终止判断是在计算之后:do while

2、溢出问题:int32_t uint32_t (约21亿) 若溢出用 long long
检查方法:输出中间变量

3、管道输入:echo 内容 | 程序名

4、计时函数:

#include <time.h>
(double)clock() / CLOCKS_PER_SEC 可以写出当前程序运行的秒数

5、遇到没有输入结束标志:

 While(scanf(“%d”,&x)==1) //scanf返回输入的变量个数
 想要结束:windows: enter Ctrl+Z enterLinux:Ctrl+D

6、不想删除某些信息的写法

#define Local 
#ifdef Local freopen("txt.in","r",stdin);freopen("txt.out","w",stdout);#endif  //注释用`

7、遇到最大值最小值问题:可以先规定一个最大值INF 最小值就是 -INF。

8、嵌套的两层代码块,内层会隐蔽外层。

9、 iomanip,在C++程序里面经常见到下面的头文件#include ,io代表输入输出,manip是manipulator(操纵器)的缩写(在c++上只能通过输入缩写才有效)。

在这里插入图片描述

  1. 水仙花数
#include <iostream>
using namespace std;
int main()
{int a, b, c;int sum = 0;for (int i = 100; i <= 999; ++i){a = i % 10;b = (i / 10) % 10;c = i / 100;sum = a * a * a + b * b * b + c * c * c;if (i == sum)cout << i<<" ";}
}
  1. 韩信点兵
/*没能写出直接输入多行的情况,只能实现一行一行输入*/
#include <iostream>
using namespace std;int main()
{//freopen("1.txt","r",stdin);int a, b, c;int flag = 0;int n = 0;while (scanf("%d %d %d", &a, &b, &c)==3){n++;for (int i = 10; i < 100; ++i){if (i % 3 == a && i % 5 == b && i % 7 == c){flag++;cout << "case " << n << ":" << i;break;}}if (flag == 0)cout << "No answer" << endl;cin.get();}return 0;
}
  1. 倒三角形
/*改进版打印沙漏*/
#include <iostream>
using namespace std;int main()
{int N;cin >> N;for (int i = N; i >= 1; --i){for (int j = N - i; j > 0; --j)cout << " ";for (int k = 1; k <= 2 * (i - 1) + 1; ++k)cout << "*";cout << endl;}for (int i = 2; i <= N; ++i){for (int j = N - i; j > 0; --j)cout << " ";for (int k = 1; k <= 2 * (i - 1) + 1; ++k)cout << "*";cout << endl;}
}
  1. 子序列的和
#include <iostream>
using namespace std;int main()
{//freopen("1.txt","r",stdin);long long n, m; //首先第一个注意的是平方溢出问题,所以要用longlongfloat sum = 0.0;int flag = 0;while (scanf("%lld %lld", &n, &m)==2 && n!=0 && m!=0){flag++;for (float i = n; i <= m; ++i)  //其次,只有浮点数的计算才是浮点数,1是整数,所以i一定要是浮点数{sum += 1 / (i * i);}cout << "Case" << flag << ":";printf("%.5f\n", sum);sum = 0; //最后,sum一定要更新,否则会在原来的sum上进行累加出错}
}
  1. 分数化小数
#include <iostream>
#include <iomanip>
using namespace std;int main()
{//freopen("1.txt","r",stdin);double a, b;double c;double res;while (scanf("%lf %lf %lf", &a, &b, &c) && a != 0, b != 0, c != 0){res = a / b;cout<< setiosflags(ios::fixed) << setprecision(c)<<res;//C++中格式化方式}
}
  1. 排列
#include <iostream>
using namespace std;int main()
{int a,b, c;for (a = 123; a < 329; ++a) //这里要限定一下最小的那个数字的范围{b = 2 * a;c = 3 * a;int d[10]{};int flag = 0;d[a % 10]++;d[a / 10 % 10]++;d[a / 100]++;d[b % 10]++;d[b / 10 % 10]++;d[b / 100]++;d[c % 10]++;d[c / 10 % 10]++;d[c / 100]++;for (int i = 1; i <= 9; ++i){if (d[i] == 1)flag++;}if (flag == 9)cout << a << " " << b << " " << c<<endl;}
}

第三章:数组和字符串

  1. 蛇形填数
/*好像是一道面试题,我感觉还挺重要的*/
#include <iostream>
#include <iomanip>
using namespace std;int a[50][50]{};int main()
{int N;int x, y;int res = 1;cin >> N;a[x=0][y=N - 1] = 1;while (res < N * N){while (x + 1 < N && !a[x + 1][y]) a[++x][y] = ++res;while (y - 1 >= 0 && !a[x][y-1]) a[x][--y] = ++res;while (x - 1 >= 0 && !a[x-1][y]) a[--x][y] = ++res;while (y + 1 < N && !a[x][y+1]) a[x][++y] = ++res;}for (x = 0; x < N; x++){for (y = 0; y < N; y++){printf("%3d",a[x][y]);}printf("\n");}
}

http://chatgpt.dhexx.cn/article/LYywXg48.shtml

相关文章

《算法竞赛入门经典(第2版)》

《算法竞赛入门经典(第2版)》 基本信息 作者&#xff1a; 刘汝佳 丛书名&#xff1a; 算法艺术与信息学竞赛 出版社&#xff1a;清华大学出版社 ISBN&#xff1a;9787302356288 上架时间&#xff1a;2014-6-5 出版日期&#xff1a;2014 年6月 开本&#xff1a;16开 页码&…

《算法竞赛入门经典》(第二版)代码及详细解释(持续更新!)

笔者中山大学硕士&#xff0c;医学生计科学生的集合体&#xff0c;机器学习爱好者。 现发布【刘汝佳《算法竞赛入门经典》&#xff08;第二版&#xff09;——紫书】的例题和习题的代码和详细解释。 欢迎批评指正&#xff01; 另外欢迎关注本人微信公众号——程序员Yukyin …

算法竞赛入门知识干货

前言&#xff1a;本篇总结一部分来自刘汝佳老师的《算法竞赛入门经典》&#xff0c;一部分是个人竞赛学习中的一些算法知识点总结&#xff0c;是初学算法走了不弯路一点点积累起来的干货&#xff0c;对刚刚参加竞赛的盆友应该会很有帮助&#xff0c;如有不足请提出 一.程序设计…

《算法竞赛入门经典》——刘汝佳

“构造性”和“可行性”是计算机学科的两个最根本特征。 比赛的核心是算法 #1 语言篇 编程不是看会的&#xff0c;也不是听会的&#xff0c;而是练会的&#xff0c;所以应尽量在计算机旁阅读书本&#xff0c;以便把书中的程序输入到计算机中进行调试&#xff0c;顺便再做做上机…

ntoskrnl.exe占用大量cpu解决方法

ntoskrnl.exe 计划任务里面结束关于空闲时段内存自检的任务

ntoskrnl.exe占用cpu高

winr -->control 打开控制面板 还是过高&#xff0c;重启即可 转载于:https://my.oschina.net/u/2425353/blog/3081583

Win10开机提示蓝屏错误ntoskrnl.exe怎么修复?

1、下载bluescreenview软件。 2、下载后解压缩&#xff0c;启动就可以查看蓝屏原因了&#xff01;如下图所示 3、发现问题出在ntoskrnl.exe这个文件上&#xff0c;我重新下载这个文件替换也没用&#xff01; 4、继续解决问题&#xff0c;同时按下winX按键&#xff0c;如下图…

计算机反复蓝屏问题--ntoskrnl.exe

最近电脑反反复复地蓝屏吗&#xff0c;尤其是在电脑开机但又没怎么用的情况下。 使用联想电脑管家分析问题 下载了蓝屏分析诊断工具&#xff0c;提取码&#xff1a;5dti 检测出来问题根源是ntoskrnl.exe 解决方案&#xff1a; ① 参考博客1 控制面板----管理工具----任务计…

ntoskrnl.exe蓝屏

win10装完系统后频繁蓝屏,用bluescreen工具检测后,提示ntoskrnl.exe文件导致; 按照以下步骤处理: 1、在开始菜单上单击右键或按下win+x,点击命令提示符(管理员); 2、在命令提示符中输入: chkdsk c: /f 按下回车键,会弹出如下提示: 3、提示:是否计划在下次系统重…

win10一直蓝屏!一直是这个代码,ntoskrnl.exe导致,要废了。。

几个月了&#xff0c;一直都是这样&#xff0c;刚开始的系统1909&#xff0c;中间用过20H2、21H1&#xff0c;一直到现在的22H2&#xff0c;这个蓝屏问题一直没解决&#xff0c;网上的方式都试了&#xff0c;不行&#xff01;重装了几次系统也没解决&#xff0c;从WIN10 专业版…

Windows内核Shellcode获取ntoskrnl.exe基址

使用NASM编译以下汇编代码 BITS 64 ORG 0section .textglobal _start _start:push rbxmov rax,QWORD [gs:0x38]mov rax,QWORD [rax0x4]shr rax,0xcshl rax,0xc _x64_find_nt_walk_page:mov rbx,QWORD [rax]cmp bx,0x5a4dje _foundsub rax,0x1000jmp _x64_find_nt_walk_page _f…

ERROR: Module load completed but symbols could not be loaded for ntoskrnl.exe Loading Kernel Symbols

电脑蓝屏问题ERROR: Module load completed but symbols could not be loaded for ntoskrnl.exe Loading Kernel Symbols 1.先找出蓝屏日志&#xff1a;C:\Windows\Minidumpc 2.此文件记录了蓝屏的具体原因,由于是dmp文件,这里我是用的是windbg工具进行解析,此工具可以在某讯…

ntoskrnl.lib(loadcfg.obj) : error LNK2001: 无法解析的外部符号 ___security_cookie 解决方法

背景 今天编译公司x86驱动的时候发现了如下报错&#xff0c;我也奇怪&#xff0c;为什么会找不到符号 后来发现是因为用的xp的lib。ObRegisterCallbacks最少都是sp1 改为win7\i386,错误变成了 后来在网上找了找&#xff0c;都是一个人写的&#xff0c;被反复的转载&#xff0c…

ntoskrnl.exe导致Win10蓝屏的解决方案(转载)

转自&#xff1a;https://zhuanlan.zhihu.com/p/37619207 下面两个方案都操作了&#xff0c;暂时三天了没有再出现蓝屏&#xff08;之前一两天必然出现一次&#xff09;&#xff0c;具体哪个起作用也不清楚&#xff0c;只要不再蓝屏就好。 我的PC是自己安装的兼容机。起初安装…

win10电脑蓝屏问题 ntoskrnl.exe导致蓝屏

之前两次打都打不开&#xff0c;直接送去重装系统了&#xff0c;文件丢失/软件重装/配置环境真的很崩溃 [2020/04/23] 第三次蓝屏 这次用回形针按了电脑背后的重启按钮&#xff0c;就是一个小圆点&#xff0c;成功重启了。 怕关机又打不开&#xff0c;尝试了如下修复&#xf…

【系统】ntoskrnl.exe导致Win10蓝屏的解决方案

近期公司一台电脑频繁蓝屏&#xff0c;根据经验直接换了内存条&#xff0c;结果还是蓝屏&#xff1b; 没办法&#xff0c;只有查查代码了&#xff0c;下载了bluescreenview&#xff0c;蓝屏代码查看工具&#xff0c;链接如下&#xff1a; https://download.csdn.net/download…

Windows10磁盘占用率100%(ntoskrnl占用资源)导致系统卡顿

欢迎大家关注我的公众号&#xff0c;会不定期更新一些开发与测试的一些技术文章。 电脑从前几天开始总是莫名其妙卡顿&#xff0c;打开任务管理器后发现System一直占用很高&#xff0c; 通过下图所示打开占用系统资源的文件位置 发现是ntoskrnl占用比较多(这是还原后的ntoskrnl…

[电脑故障]ntoskrnl.exe导致DRIVER_POWER_STATE_FAILURE

描述&#xff1a; 用360驱动大师发现查找不到任何驱动。无法正常关机&#xff0c;关机时间长且最终蓝屏&#xff0c;显示DRIVER_POWER_STATE_FAILURE。设备管理器中驱动无法正常启用禁用&#xff0c;会卡死&#xff0c;无法正常卸载&#xff0c;等待时间超级长(但最后还是卸载…

windows服务器system进程cpu占用率高解决方案(ntoskrnl.exe)

之前给客户服务器部署过服务器监控程序&#xff0c;今天收到邮件告警提醒CPU过高&#xff0c;进入监控发现System进程突然升高&#xff0c;这个是系统进程&#xff0c;只查看进程cpu占用率没用&#xff0c;需要去查看System进程里的线程&#xff0c;具体是由那个线程占用CPU比较…

至强服务器装2003系统蓝屏,Windows Server 2008 R2 ntoskrnl.exe 引起蓝屏故障,重新启动...

前不久在HP ProLiant DL360 G6的服务器上面安装了Windows Server 2008 R2,系统一到晚上凌晨就出现蓝屏、重启现象,并且在 C:\Windows\Minidump 目录下面产生一些Dump文件,如下图所示: 后面我用微软的Windbg程序查看了一下系统产生的Dump文件内容,分析一下文件日志,发现内…