
每日刷题————其他算法竞赛题
文章平均质量分 65
了解各种有意思的题目,在实践中灵活运用所学到的算法知识,2022年再免费开放
源代码•宸
我们终此一生,就是要摆脱他人的期待,找到真正的自己
展开
-
C语言计算内部回报率(IRR)
在 Excel 中有一个函数 irr 用于计算一个投资项目的内部回报率(internal return rate)。在项目产生利润之前需要先投入建设资金(假设称为 c0),建成后每年产生的利润(假设称为 c1,c2…)。内部回报率(记为 r,范围为 −100%∽+100%)是到项目末期的现金流为 0 的贴现率。原创 2024-03-13 20:56:57 · 562 阅读 · 0 评论 -
P3375 【模板】KMP字符串匹配
题目来源运行结果之后我会持续更新,如果喜欢我的文章,请记得一键三连哦,点赞关注收藏,你的每一个赞每一份关注每一次收藏都将是我前进路上的无限动力 !!!↖(▔▽▔)↗感谢支持!原创 2024-03-01 14:26:49 · 402 阅读 · 0 评论 -
POJ-3630电话表(考察字典树)
NOYES。原创 2023-11-05 21:57:42 · 203 阅读 · 0 评论 -
浙大计算机研究生复试上机考试-2005年畅通工程(考察并查集)
某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇。省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只要互相间接通过道路可达即可)。问最少还需要建设多少条道路?原创 2023-10-22 22:47:09 · 188 阅读 · 0 评论 -
水题找自信——问题 D: 字符串内排序
每日刷题(109)问题 D: 字符串内排序题目描述输入一个字符串,长度小于等于200,然后将输出按字符顺序升序排序后的字符串。输入测试数据有多组,输入字符串。输出对于每组输入,输出处理后的结果。样例输入tianqin样例输出aiinnqt提示:注意输入的字符串中可能有空格。我的C++代码#include<bits/stdc++.h>using namespace std;const int maxn = 100;int main(){原创 2021-04-16 21:32:01 · 445 阅读 · 0 评论 -
水题找自信——问题 B: 特殊排序、问题 G: 中位数、PAT Ranking
每日刷题(106)问题 B: 特殊排序题目描述输入一系列整数,将其中最大的数挑出,并将剩下的数进行排序。输入输入第一行包括1个整数N,1<=N<=1000,代表输入数据的个数。接下来的一行有N个整数。输出可能有多组测试数据,对于每组数据,第一行输出一个整数,代表N个整数中的最大值,并将此值从数组中去除,将剩下的数进行排序。第二行将排序的结果输出。样例输入55 3 2 4 1样例输出51 2 3 4提示如果数组中只有一个数,当第一行将其输出后,第原创 2021-04-16 14:43:36 · 203 阅读 · 0 评论 -
水题找自信——1022 D进制的A+B、回文串、1009 说反话
每日刷题(105)D进制的A+B题目描述输入两个非负 10 进制整数 A 和 B (≤230 −1),输出 A+B 的 D (1<D≤10)进制数。输入格式:输入在一行中依次给出 3 个整数 A、B 和 D。输出格式:输出 A+B 的 D 进制数。输入样例123 456 8输出样例1103C++代码:#include<bits/stdc++.h>using namespace std;int main(){ int a, b, d;原创 2021-03-30 20:20:46 · 154 阅读 · 1 评论 -
水题找自信——问题 A: 日期差值
每日刷题(100)问题 A: 日期差值题目描述有两个日期,求两个日期之间的天数,如果两个日期是连续的我们规定他们之间的天数为两天。输入有多组数据,每组数据有两行,分别表示两个日期,形式为YYYYMMDD输出每组数据输出一行,即日期差值样例输入2013010120130105样例输出5C++代码:#include<cstdio>int month[13][2] = {{0, 0}, {31, 31}, {28, 29}, {31, 31}, {30,原创 2021-03-19 08:13:25 · 154 阅读 · 0 评论 -
水题找自信——有几个PAT、集合的划分、问题 A: 找x
每日刷题(九十九)有几个PAT题目描述字符串APPAPT中包含了两个单词"PAT",其中第一个PAT是第2位§,第4位(A),第6位(T);第二个PAT是第3位§,第4位(A),第6位(T)。现给定字符串,问一共可以形成多少个PAT?输入格式输入只有一行,包含一个字符串,长度不超过105,只包含P、A、T三种字母。输出格式在一行中输出给定字符串中包含多少个PAT。由于结果可能比较大,只输出对1000000007取余数的结果。输入样例APPAPT输出样例2...原创 2021-02-27 16:38:47 · 170 阅读 · 0 评论 -
水题找自信——跟奥巴马一起编程、问题 C: 快速排序 qsort [2*]
每日刷题(九十二)跟奥巴马一起编程题目描述美国总统奥巴马不仅呼吁所有人都学习编程,甚至以身作则编写代码,成为美国历史上首位编写计算机代码的总统。2014 年底,为庆祝“计算机科学教育周”正式启动,奥巴马编写了很简单的计算机代码:在屏幕上画一个正方形。现在你也跟他一起画吧!输入格式输入在一行中给出正方形边长 N(3≤N≤20)和组成正方形边的某种字符 C,间隔一个空格。输出格式输出由给定字符 C 画出的正方形。但是注意到行间距比列间距大,所以为了让结果看上去更像正方形,我们输出的行数实原创 2021-02-13 19:05:55 · 201 阅读 · 0 评论 -
水题找自信——问题 B: 找x、问题 I: 锤子剪刀布、问题 H: 部分A+B、问题 A: 排序、PAT Ranking、问题 C: EXCEL排序
每日刷题(九十一)问题 B: 找x题目描述输入一个数n,然后输入n个数值各不相同,再输入一个值x,输出这个值在这个数组中的下标(从0开始,若不在数组中则输出-1)。输入测试数据有多组,输入n(1<=n<=200),接着输入n个数,然后输入x。输出对于每组输入,请输出结果。样例输入41 2 3 43样例输出2C++代码:#include<iostream>using namespace std;int main(){ int n;原创 2021-02-08 19:51:29 · 524 阅读 · 1 评论 -
问题 D: 比较奇偶数个数、全排列
每日刷题(八十九)快过年了还不给个三连吗?✌ (>‿◠)✌问题 D: 比较奇偶数个数题目描述第一行输入一个数,为n,第二行输入n个数,这n个数中,如果偶数比奇数多,输出NO,否则输出YES。输入输入有多组数据。每组输入n,然后输入n个整数(1<=n<=1000)。输出如果偶数比奇数多,输出NO,否则输出YES。样例输入167 70 69 24 78 58 62 64 样例输出YESNOC++代码:#include<iostream原创 2021-01-11 14:31:14 · 247 阅读 · 0 评论 -
问题 B: A+B、问题 C: 特殊乘法
每日刷题(八十八)快过年了还不给个三连吗?✌ (>‿◠)✌问题 B: A+B题目描述给定两个整数A和B,其表示形式是:从个位开始,每三位数用逗号","隔开。现在请计算A+B的结果,并以正常形式输出。输入输入包含多组数据数据,每组数据占一行,由两个整数A和B组成(-109 < A,B < 109)。输出请计算A+B的结果,并以正常形式输出,每组数据占一行。样例输入-234,567,890 123,456,7891,234 2,345,678样例输出-原创 2021-01-08 10:23:52 · 256 阅读 · 0 评论 -
坑多多题:挖掘机技术哪家强
每日刷题(八十七)快过年了还不给个三连吗?✌ (>‿◠)✌挖掘机技术哪家强题目描述为了用事实说明挖掘机技术到底哪家强,PAT 组织了一场挖掘机技能大赛。现请你根据比赛结果统计出技术最强的那个学校。输入格式输入在第 1 行给出不超过 105的正整数 N,即参赛人数。随后 N 行,每行给出一位参赛者的信息和成绩,包括其所代表的学校的编号(从 1 开始连续编号)、及其比赛成绩(百分制),中间以空格分隔。输出格式在一行中给出总得分最高的学校的编号、及其总分,中间以空格分隔。题目保证原创 2021-01-07 14:43:38 · 252 阅读 · 0 评论 -
卡拉兹Callatz猜想、问题 A: 剩下的树
每日刷题(八十六)卡拉兹Callatz猜想题目描述对任何一个自然数n,如果它是偶数,那么把它砍掉一半;如果它是奇数,那么把(3n + 1)砍掉一半。这样一直反复砍下去,最后一定在某一步得到n = 1。卡拉兹在1950年的世界数学家大会上公布了这个猜想,传说当时耶鲁大学师生齐动员,拼命想证明这个貌似很傻很天真的命题,结果闹得学生们无心学业,一心只证(3n + 1),以至于有人说这是一个阴谋,卡拉兹是在蓄意延缓美国数学界教学与科研的进展……我们今天的题目不是证明卡拉兹猜想,而是对给定的任一不超过1000原创 2021-01-06 10:12:48 · 298 阅读 · 0 评论 -
求解最小公倍数方法(附加更易懂的欧几里得算法(辗转相除法)及其定理证明)1818 最大公约数和1984 最大公约数 2135 最小公倍数 问题 A: Least Common Multiple
1818 最大公约数题目描述输入两个正整数,求其最大公约数。欧几里得算法基于下面定理0和任意一个整数a的最大公约数都是a因此我们可以得到1、递归式:gcd(a, b) = gcd(b, a % b)2、递归边界:gcd(a, 0) = a1984 最大公约数题目描述2135: 最小公倍数题目描述问题 A: Least Common Multiple题目描述最小公倍数相关知识要素最小公倍数求解是建立在最大公约数d基础上,a和b的最小公倍数 = a * b / d求多个最小公倍数方法原创 2020-12-05 10:02:40 · 440 阅读 · 2 评论 -
PAT乙级(Basic Level)真题pat b1019 数字黑洞(探索数字黑洞与Kaprekar常数)
每日刷题(八十四)题目描述给定任一个各位数字不完全相同的4位正整数,如果我们先把4个数字按非递增排序,再按非递减排序,然后用第1个数字减第2个数字,将得到一个新的数字。一直重复这样做,我们很快会停在有“数字黑洞”之称的6174,这个神奇的数字也叫Kaprekar常数。例如,我们从6767开始,将得到7766 - 6677 = 10899810 - 0189 = 96219621 - 1269 = 83528532 - 2358 = 61747641 - 1467 = 6174… …现给定原创 2020-12-04 20:33:24 · 408 阅读 · 0 评论 -
每日刷题——A1039.Course List for Student(用hash和vector解决)
每日刷题(八十三)题目地址题目大意是有N个学生,K门课程,第一行输入的是学生总数(<=40000)和课程总数(<=2500),然后接下来每行输入一个课程序列号和选该课的学生总人数,其下一行就是选该门课程的学生名字,以此类推。题目要求我们输出对于每个测试用例,用N行打印结果。每行对应一个学生,格式如下:首先打印学生姓名,然后打印该学生的注册课程总数,最后打印课程索引,按递增顺序排列。查询结果必须按照与输入相同的顺序打印。一行中的所有数据必须用空格隔开,行尾不能有额外的空格。思路:首先由于原创 2020-11-24 19:19:41 · 161 阅读 · 0 评论 -
竞码编程-蓝桥杯模拟赛6(大学生组&青少年组)TH愤怒的FlappyBird
每日刷题(八十二)H、愤怒的FlappyBird思路:解决这个问题的关键是找到奇偶行柱子的长度关系,如果飞行高度为h(从上往下的高度),那么被撞的偶数柱子的长度一定小于或等于h,而下面奇数行柱子的长度一定要小于或等于H - h + 1,如果找到了这层关系,这题也就不难解决了。由于数据范围过大,接下来就涉及到优化算法,这里选用二分法进行查询满足要求的柱子,使得最后的时间复杂度为Hlog(H)详细C++代码如下:原创 2020-11-05 17:16:23 · 195 阅读 · 0 评论 -
竞码编程-蓝桥杯模拟赛6(大学生组&青少年组)TG画圆以及竞码编程P1052 - 形状输出
每日刷题(八十一)解析:这题很简单,规律也很好找,但是这题有坑,如果没审好题直接做主观臆断每行中的各个数字之间间隔为一个空格那么就打错特错了,这里我们要用到setw()这个控制输出字符长度的函数详细C++代码如下:#include<iostream>#include<iomanip>using namespace std;int main(){ int n; cin >> n; int a[2 * n - 1][2 * n - 1] = {0原创 2020-11-03 20:31:27 · 297 阅读 · 0 评论 -
竞码编程-蓝桥杯模拟赛6(大学生组&青少年组)TFJM找数对
每日刷题(八十)解析:首先看清题目要求:1~n中的三个不同数,构成无序数对三个数的和为n三个数的数位之和均为偶数那么我们可以先遍历2~n的偶数,在这层循环下再遍历a + 2~n的数,然后根据三个数和为n作为在第二个循环之下的判断条件,如果n - a - b要大于b并且为偶数,则继续运行;然后进入下一个判断,三个数的数位之和是否均为偶数。这里可以采用一个巧妙的办法判断是否为偶数,奇数&1=1,偶数&1=0详细C++代码如下:#include<iostream&g原创 2020-10-28 18:46:50 · 401 阅读 · 0 评论 -
竞码编程-蓝桥杯模拟赛6(大学生组&青少年组)TA~TE幻数、蚂蚁搬家、数位和、密室逃脱、画树(涉及到BFS、卡特兰数知识点)
A、解析:这个题完全不用编写代码,直接推理根据第一列和第一行可以推出B,即B = 18 + 25 - 24 = 19接下来根据第三列和第二行可以得到一个式子:19 + 21 + D = D + C + 18即C = 40 - 18 = 22由C = 22,得到对角线的和为22 + 25 + 19 = 66所以E = 66 - 25 - 21 = 20D = 66 - 18 - 22 = 26综上所述,D + E = 46B、解析:循环暴力解详细C代码如下:#include原创 2020-10-26 15:04:05 · 558 阅读 · 0 评论