![](https://img-blog.csdnimg.cn/20190918140037908.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
C++信息学奥赛一本通
文章平均质量分 61
《信息学奥赛一本通(C++版)》相关题目分析与解答。
注:关于基础算法第一章高精度计算,可以参考我的大整数类,几乎所有内容都包括在里面了。
[PE]经典八炮
-----(冰)\(冰)\(冰)\玉米加农炮----------
-----(曾)\(伞)\(冰)\玉米加农炮----------
玉米加农炮玉米加农炮(冰)--(伞)--(曾)----
玉米加农炮玉米加农炮(冰)--(向)--(曾)----
-----(曾)\(伞)\(冰)\玉米加农炮----------
-----(冰)\(冰)\(冰)\玉米加农炮----------
冰:冰瓜;伞:叶子保护伞;曾:忧郁蘑菇;向:双子向日葵;括号:南瓜头;反斜杠:梯子。
轨道节奏:P4 PP|PP|PP|PP (9,9,9,9)
展开
-
1385:团伙(group)
1385:团伙(group)时间限制: 1000 ms 内存限制: 65536 KB【题目描述】在某城市里住着n个人,任何两个认识的人不是朋友就是敌人,而且满足:1、我朋友的朋友是我的朋友;2、我敌人的敌人是我的朋友;所有是朋友的人组成一个团伙。告诉你关于这n个人的m条信息,即某两个人是朋友,或者某两个人是敌人,请你编写一个程序,计算出这个城市最多可能有多少个团伙?...原创 2022-07-04 14:17:14 · 2613 阅读 · 1 评论 -
1331:【例1-2】后缀表达式的值
1331:【例1-2】后缀表达式的值时间限制: 10 ms 内存限制: 65536 KB【题目描述】从键盘读入一个后缀表达式(字符串),只含有0-9组成的运算数及加(+)、减(—)、乘(*)、除(/)四种运算符。每个运算数之间用一个空格隔开,不需要判断给你的表达式是否合法。以@作为结束标志。...原创 2022-07-04 13:13:41 · 894 阅读 · 1 评论 -
C++分数类(大整数类版)
1.简介该博文是C++分数类的姊妹篇。那篇博文中type对应的类型是long long,虽然范围很大,但还是可能溢出。我最近做了一个大整数类,理论上可以保存无限大的整数,于是,我把这两个类结合了起来,并添加了一些新功能,就成了这个版本的分数类。2.代码改进后的分数类代码如下:(测试代码见第一篇博客)//CFraction.h#pragma once#include<stdexcept>#include"CBigInt.h"class CFraction{private: t原创 2021-05-21 21:22:25 · 798 阅读 · 1 评论 -
C++分数类
1.简介我用C++做了一个分数类,实现了加减乘除、比较大小、约分、通分等功能。下面与大家分享一下代码(VS2019编译通过)。2.代码代码不难理解,用到的都是一些数学原理。//CFraction.h#pragma once#include<stdexcept>class CFraction{private: typedef long long type; type numerator;//分子 type denominator;//分母 static type GCD(原创 2021-04-17 12:37:10 · 1603 阅读 · 1 评论 -
CSP-J2021第三题——字符串处理
原题链接先说一下今年的题目特点,那就是并没有考到复杂的算法,而是考了一些应用性较强的内容,比如第三题的字符串处理。很多OI选手对字符串处理都不擅长,导致这道题失分。其实,今年的题目还是很简单的。下面,我们来探讨一下这道题的几种解法。(只介绍字符串处理部分,其他地方太简单,正常人都能写出来)一、正则表达式匹配先介绍一下正则表达式:(详细教程看这里)正则表达式是匹配字符串的一种模式。经常用到的语法有:字符意义+表示前面的字符至少出现1次,无上限。*表示前面的字符至少出现0原创 2021-10-29 20:43:41 · 775 阅读 · 0 评论 -
1370:最小函数值(minval)
题目1370:最小函数值(minval)时间限制: 1000 ms 内存限制: 65536 KB【题目描述】有n个函数,分别为F1,F2,...,FnF_{1},F_{2},...,F_{n}F1,F2,...,Fn。定义Fi(x)=Aix2+Bix+Ci(x∈N∗)F_{i}(x)=A_{i}x2+B_{i}x+C_{i}(x∈N∗)Fi(x)=Aix2+Bix+Ci(x∈N∗)。给定这些AiAiAi、BiBiBi和CiCiCi,请求出所有函数的所有函数值中最小的m个原创 2021-08-21 19:24:34 · 668 阅读 · 9 评论 -
1365:FBI树(fbi)
题目1365:FBI树(fbi)时间限制: 1000 ms 内存限制: 65536 KB【题目描述】我们可以把由“0”和“1”组成的字符串分为三类:全“0”串称为B串,全“1”串称为I串,既含“0”又含“1”的串则称为F串。FBI树是一种二叉树,它的结点类型也包括F结点,B结点和I结点三种。由一个长度为2N的“01”串S可以构造出一棵FBI树T,递归的构造方法如下:T的根结点为R,其类型与串S的类型相同;若串S的长度大于1,将串S从中间分开,分为等长的左右子串S1和S2;由左子串原创 2021-08-19 10:56:08 · 254 阅读 · 0 评论 -
1364:二叉树遍历(flist)
题目1364:二叉树遍历(flist)时间限制: 1000 ms 内存限制: 65536 KB【题目描述】树和二叉树基本上都有先序、中序、后序、按层遍历等遍历顺序,给定中序和其它一种遍历的序列就可以确定一棵二叉树的结构。假定一棵二叉树一个结点用一个字符描述,现在给出中序和按层遍历的字符串,求该树的先序遍历字符串。【输入】两行,每行是由字母组成的字符串(一行的每个字符都是唯一的),分别表示二叉树的中序遍历和按层遍历的序列。【输出】一行,表示二叉树的先序序列。【输入样例】D原创 2021-08-19 10:00:44 · 424 阅读 · 0 评论 -
1363:小球(drop)
题目1363:小球(drop)【题目描述】许多的小球一个一个的从一棵满二叉树上掉下来组成FBT(Full Binary Tree,满二叉树),每一时间,一个正在下降的球第一个访问的是非叶子节点。然后继续下降时,或者走右子树,或者走左子树,直到访问到叶子节点。决定球运动方向的是每个节点的布尔值。最初,所有的节点都是false,当访问到一个节点时,如果这个节点是false,则这个球把它变成true,然后从左子树走,继续它的旅程。如果节点是true,则球也会改变它为false,而接下来从右子树走。满二叉树的原创 2021-08-17 17:52:21 · 576 阅读 · 0 评论 -
1287:最低通行费
题目1287:最低通行费时间限制: 1000 ms 内存限制: 65536 KB【题目描述】一个商人穿过一个N×N的正方形的网格,去参加一个非常重要的商务活动。他要从网格的左上角进,右下角出。每穿越中间1个小方格,都要花费1个单位时间。商人必须在(2N-1)个单位时间穿越出去。而在经过中间的每个小方格时,都需要缴纳一定的费用。这个商人期望在规定时间内用最少费用穿越出去。请问至少需要多少费用?注意:不能对角穿越各个小方格(即,只能向上下左右四个方向移动且不能离开网格)。【输入】原创 2021-07-30 14:18:44 · 280 阅读 · 0 评论 -
2045:【例5.13】蛇形填数
题目2045:【例5.13】蛇形填数时间限制: 1000 ms 内存限制: 65536 KB提交数: 1201 通过数: 626【题目描述】在n×n方阵里填入1,2,3,…,n×n,要求填成蛇形。例如n=4时方阵为:10 11 12 19 16 13 28 15 14 37 6 5 4其中,n≤20。【输入】输入n。【输出】输出题述方阵。n行,每行各数之间用一个空格隔开。【输入样例】4【输出样例】10 11 12 19 16 13 28 15原创 2021-07-09 20:08:03 · 2517 阅读 · 0 评论 -
1225:金银岛
题目1225:金银岛时间限制: 1000 ms 内存限制: 65536 KB【题目描述】某天KID利用飞行器飞到了一个金银岛上,上面有许多珍贵的金属,KID虽然更喜欢各种宝石的艺术品,可是也不拒绝这样珍贵的金属。但是他只带着一个口袋,口袋至多只能装重量为w的物品。岛上金属有s个种类, 每种金属重量不同,分别为n1,n2,…,ns,同时每个种类的金属总的价值也不同,分别为v1,v2,…,vs。KID想一次带走价值尽可能多的金属,问他最多能带走价值多少的金属。注意到金属是可以被任意分割原创 2021-07-10 12:54:10 · 832 阅读 · 0 评论 -
1208:2的幂次方表示
1208:2的幂次方表示时间限制: 1000 ms 内存限制: 65536 KB【题目描述】任何一个正整数都可以用2的幂次方表示。例如:137=27+23+20同时约定方次用括号来表示,即ab可表示为a(b)。由此可知,137可表示为:2(7)+2(3)+2(0)进一步:7=22+2+20(21用2表示)3=2+20所以最后137可表示为:2(2(2)+2+2(0))+2(2+2(0))+2(0)又如:1315=210+28+25+2+1所以1315最后可表示为:原创 2021-07-09 13:27:02 · 947 阅读 · 0 评论 -
1191:流感传染
题目1191:流感传染时间限制: 1000 ms 内存限制: 65536 KB【题目描述】有一批易感人群住在网格状的宿舍区内,宿舍区为n*n的矩阵,每个格点为一个房间,房间里可能住人,也可能空着。在第一天,有些房间里的人得了流感,以后每天,得流感的人会使其邻居传染上流感,(已经得病的不变),空房间不会传染。请输出第m天得流感的人数。【输入】第一行一个数字n,n不超过100,表示有n*n的宿舍房间。接下来的n行,每行n个字符,’.’表示第一天该房间住着健康的人,’#’表示该房间空原创 2021-07-09 13:40:02 · 681 阅读 · 0 评论