算法
文章平均质量分 75
记载刷题文章,用来存放记录,问题解法并不一定是最优。
一百个Chocolate
一个小帅哥和某厂前端搬砖。
频道内容: 前端技术,编程,我的思考。
用心去做自己热爱的事情️
座右铭: 学如逆水行舟,不进则退。
展开
-
PTA 天梯赛备赛 L2-007 家庭房产 (25分)(并查集+结构体排序)
题目描述给定每个人的家庭成员和其自己名下的房产,请你统计出每个家庭的人口数、人均房产面积及房产套数。输入格式:输入第一行给出一个正整数N(≤1000),随后N行,每行按下列格式给出一个人的房产:编号 父 母 k 孩子1 ... 孩子k 房产套数 总面积其中编号是每个人独有的一个4位数的编号;父和母分别是该编号对应的这个人的父母的编号(如果已经过世,则显示-1);k(0≤k≤5)是该人的子女的个数;孩子i是其子女的编号。输出格式:首先在第一行输出家庭个数(所有有亲属关系的人都属于同一个家庭)。原创 2020-11-23 21:39:43 · 1308 阅读 · 0 评论 -
PTA 天梯赛备赛 L2-005 集合相似度 (25分) (set)
题目描述L2-005 集合相似度(25 分)给定两个整数集合,它们的相似度定义为:Nc/Nt*100%。其中Nc是两个集合都有的不相等整数的个数,Nt是两个集合一共有的不相等整数的个数。你的任务就是计算任意一对给定集合的相似度。输入格式:输入第一行给出一个正整数N(<=50),是集合的个数。随后N行,每行对应一个集合。每个集合首先给出一个正整数M(<=104),是集合中元素的个数;然后跟M个[0, 109]区间内的整数。之后一行给出一个正整数K(<=2000),随后K行,每行对应原创 2020-11-23 20:09:01 · 2259 阅读 · 1 评论 -
PTA 天梯赛备赛 L1-025 正整数A+B (15分)(getline)
题目描述L1-025 正整数A+B (15分)题的目标很简单,就是求两个正整数A和B的和,其中A和B都在区间[1,1000]。稍微有点麻烦的是,输入并不保证是两个正整数。输入格式:输入在一行给出A和B,其间以空格分开。问题是A和B不一定是满足要求的正整数,有时候可能是超出范围的数字、负数、带小数点的实数、甚至是一堆乱码。注意:我们把输入中出现的第1个空格认为是A和B的分隔。题目保证至少存在一个空格,并且B不是一个空字符串。输出格式:如果输入的确是两个正整数,则按格式A + B = 和输出。如果原创 2020-11-16 22:52:28 · 1600 阅读 · 1 评论 -
PTA 天梯赛备赛 L1-006 连续因子 (20 分)(搜索)
题目描述L1-006 连续因子 (20 分)一个正整数 N 的因子中可能存在若干连续的数字。例如 630 可以分解为 3×5×6×7,其中 5、6、7 就是 3 个连续的数字。给定任一正整数 N,要求编写程序求出最长连续因子的个数,并输出最小的连续因子序列。输入格式:输入在一行中给出一个正整数 N(1<N<231)。输出格式:首先在第 1 行输出最长连续因子的个数;然后在第 2 行中按 因子1因子2……*因子k 的格式输出最小的连续因子序列,其中因子按递增顺序输出,1 不算在内原创 2020-11-16 21:22:13 · 526 阅读 · 0 评论 -
【leetcode】JS 字典树 建树 查找键 查找键前缀【模板】
var findWords = function(grid, words) { // 存放最终结果集 let res = [] // 字典树节点 class TrieNode { constructor(){ this.end = false this.child = {} } } // 最终形成的字典树根节点 let root = null let Trie = function(){ root = new TrieNode(原创 2020-09-13 16:10:04 · 338 阅读 · 0 评论 -
HNUCM Contest1092 - 2020年春季ACM集训队热身赛-第3场 比赛题解
Contest1092 - 2020年春季ACM集训队热身赛-第3场比赛原地址: 传送门推荐阅读: 【白嫖党】如何把前端学好?看完这篇,直呼:太强了!(历经半个月之作)文章目录Contest1092 - 2020年春季ACM集训队热身赛-第3场问题 A: 数字分类解题思路AC代码问题 B: 福尔摩斯的约会解题思路AC代码问题 C: 德才论解题思路AC代码问题 D: 锤子剪刀布解题思路AC代...原创 2020-04-05 18:50:02 · 1702 阅读 · 5 评论 -
HNUCM Contest1088 - 2020年春季ACM集训队热身赛-第2场 比赛题解
Contest1088 - 2020年春季ACM集训队热身赛-第2场比赛原地址: 传送门问题 A: 河畔军训题目描述河畔镇是一个景色秀丽,气候宜人的度假胜地,每天都会有很多的游客来这里游玩。但奇怪的是这里总会出现一些潜伏者。果不其然,通过保卫者的跟踪,发现在河畔镇的地下隐藏着Blitz的秘密武器实验室。最危险的地方也是最安全的地方,这里人多,所以只能采用狙击作战,一场“无声无息“的战斗即刻...原创 2020-03-29 22:13:57 · 911 阅读 · 0 评论 -
HNUCM-OJ Problem 1614 幸运数 模拟 最短子段和
题目描述众所周知,不管是人还是熊都需要人品。于是乎,为了给自己找一个幸运数字,Mavis 学习了人类的阿拉伯数字,并不知从哪儿弄来了一串序列和一个 S,Mavis 说:“长度最短且和大于等于 S 的连续子段的长度, 就是俺的幸运数字”!但是 Mavis 只会喊口号,不会解决问题,所以这个问题就交给你了。输入输入文件共三行。第一行输入仅一个正整数 n,意义如题所述。( n ≤ 400000...原创 2020-03-22 18:29:17 · 1822 阅读 · 0 评论 -
跳跃版图 java 大整数 记忆化搜索 dp
题目描述有一个 n×n 的格子,每个格子中有一个非负整数。你的目标是从左上角跳到右下角,每步只能向右或向下跳。格子中的数代表从该格开始跳跃的前进步数,如果某次跳跃会跃出格子 界限则该跳跃是禁止的。注意 0 是一个绝对终点,因为从这里无法再移动。你的任务是统计有多少种合法路径。上图 1 中共有 3 种路径,分别表示在图 2 中。输入第一行,一个整数 n(3 ≤ n ≤ 100)。接下来 ...原创 2020-03-22 18:24:34 · 623 阅读 · 0 评论 -
【超详细】基于 Docker搭建 WordPress动态博客(一行命令搭建博客系统)
前言首先,我们来谈一谈 Docker ,它是企业及开发和运维用的极其火热、非常广泛的一种虚拟化技术 Doker容器 类似于虚拟机 ,但是比虚拟机轻量得多,而且提供进程级别的隔离,待会会展示 Docker技术在环境搭建方面的优势如果想了解多一点关于Doker知识,推荐阅读以下博客推荐阅读:【超详细】通俗易懂地理解并使用Docker(上)推荐阅读:【超详细】通俗易懂地理解并使用Docker...原创 2020-02-09 17:16:21 · 2372 阅读 · 3 评论 -
算法:泽勒的一致性 给定一个日期,输出这个日期是该年一周中的星期几 【c++ java python版本】
文章目录1、引言C++版本:Java版本:python版:1、引言泽勒一致性是由克里斯汀-泽勒开发的用于计算某天是星期几的计算公式。计算公式如下: h=(q+[26*(m+1)/10]+k+[k/4]+[j/4]+5*j)%7其中:h是一个星期中每一天(0是星期六,1是星期天,2是星期一,3是星期二,4是星期三,5是星期四,6是星期五)q是某月的天数m是月份(3为三月,4为四月...原创 2020-01-15 18:47:13 · 2239 阅读 · 3 评论 -
牛客练习赛56 A-小蒟和他的乐谱
链接:https://ac.nowcoder.com/acm/contest/3566/A来源:牛客网题目描述小蒟上音乐课的时候,老师说宫商角徵羽(分别对应C大调的do,re,mi,sol,la)五个音是乐音,它们和它们升降任意个八度的得到音是好听的音(即高音do、低音mi等也是好听的音),用好听的音谱的曲会很好听。小蒟觉得他的老师说得对,于是他打开了一本乐谱,随便找了一首曲子,他想知道这...原创 2019-12-27 23:35:43 · 404 阅读 · 0 评论 -
【题解】新生赛 问题 H: 1552 yangftc的魔法 【卡 long long】
题目描述yangftc会两种魔法,一个是将一个东西变多a份,另一个是将一个东西复制一倍,不过他只有b个单位的能量,每一种魔法都会消耗一单位的能量,yangftc现在有x个单位的钱,yangftc想让他的钱尽量多,你能告诉他他最多能有多少钱吗输入首先输入t代表样例数量后跟t组样例每一个样例一行每个样例输入三个数字a,b,x输出yangftc最多能拥有的钱数数据范围 1<=t...原创 2019-12-16 18:29:36 · 483 阅读 · 0 评论 -
【题解】新生赛 问题 G: 1550 小小yh的数论 【快速幂取模模板题】
题目描述hyh最近迷上了数论,尤其对费马小定理情有独钟,最近他又发现利用费马小定理能够快速求出2^100除以13的余数费马小定理定义如下:费马小定理(Fermats little theorem)是数论中的一个重要定理,在1636年提出。如果p是一个质数,而整数a不是p的倍数,则有a^(p-1)≡1(mod p)相信聪明的学弟学妹们一定能够从上面的计算过程中,快速求出p是一个质数且a不...原创 2019-12-16 18:26:48 · 446 阅读 · 0 评论 -
【题解】新生赛 1544: XP的宝藏
题目描述几经波折和磨难,XP终于拿到了宝库的钥匙和藏宝图,他站在宝库的左上角,这是宝库的入口,出口在右下角。宝库是由一个个小暗格组成的正方形,有些暗格里面有宝藏,也有一些暗格没有。暗格中布满了机关,所有开往左边和上面的门都不能开启,一旦开启就会触发机关,将被万箭穿心。XP开始陷入深深的沉思,他希望活着走出宝库;人总是有贪欲的,他还希望能够带走尽可能多的宝藏,你能否帮到他呢?输入每组输入第一...原创 2019-12-15 22:22:33 · 517 阅读 · 0 评论 -
第二届中国计量大学ACM程序设计竞赛个人赛(同步赛)G-Disk Scheduling 【二分】
题目链接个人题解:二分查找AC#include<bits/stdc++.h>using namespace std;typedef long long ll;const int maxn=1e6+5;const int INF=2e9+10;int n,m;int a[maxn];int main(){ scanf("%d %d",&n,&...原创 2019-12-07 23:19:04 · 534 阅读 · 0 评论 -
第二届中国计量大学ACM程序设计竞赛个人赛(同步赛)C-Little Gyro and Numbers 【结构体排序】
题目链接个人题解先从小到大进行排序对于1而言 反正就是0对于2而言 要减去和自己相同的2的个数 然后减去3和4的个数对于3而言 只需要减去和自己的3的个数对于4而言 要减去和自己相同的4的个数 然后减去2和4的个数其他数 就是从与自己数值上不相同的位置上开始算起 有多少个就是多少个 不过最后都要加上1的个数 因为这个数的1次方 总是比1的这个数次方要大!!(考虑条件还真是多。。。赶...原创 2019-12-07 20:40:50 · 423 阅读 · 1 评论 -
第二届中国计量大学ACM程序设计竞赛个人赛(同步赛)I-Logs Stacking 【大数斐波拉契取模模板题】
题目链接个人题解:这道题没什么别的,就是因为坑遇得多了,题目也没完全懂,队友当时给我说要用组合数学公式推出来 然后我的话就直接看样例 就直接看出来与斐波拉契数列有关 然后又看到有取模 我就更确定了 不过数据比较大 采用大数 下面提供本次解题用的C++ 大数斐波拉契取模模板AC#include <cstdio>#include <cstring>#inclu...原创 2019-12-07 19:25:40 · 385 阅读 · 0 评论 -
第二届中国计量大学ACM程序设计竞赛个人赛(同步赛)L-Story of Eden【中文引号输出】
题目链接个人题解:水题。注意中文引号 可以用转义字符 \ 输出AC#include<bits/stdc++.h>using namespace std;int main(){ int t; cin>>t; while(t--){ string s,res; cin>>s; st...原创 2019-12-07 19:15:54 · 344 阅读 · 0 评论 -
第二届中国计量大学ACM程序设计竞赛个人赛(同步赛)B-Little Gyro and Sets【两个等差数列公式】
题目链接个人题解:首先,先算出m个数的前m项和 等于(m+1)*m/2 记等差数列1的和为S1其次,在m中一共有m/n个关于n的倍数 也是等差数列求和 首项是n 末项是n x (m/n) 记等差数列2的和为S2最后的结果就是 S1-两倍S2 即是结果AC#include<bits/stdc++.h>using namespace std;typedef l...原创 2019-12-07 19:20:07 · 473 阅读 · 0 评论 -
第二届中国计量大学ACM程序设计竞赛个人赛(同步赛)A -Little Gyro and Sort【签到题?】
题目链接个人解题:题意很好理解,就是升序排序 当时打比赛的时候 队友还和我说是用快读+计数排序做 一开始用sort的我 直接TLE了 后面一想 是不是卡了快读这操作 反正啥也没想的就写了一份快读代码 秒过…AC#include <bits/stdc++.h>#define mst(a,b) memset(a,b,sizeof(a))#define gc getchar...原创 2019-12-07 19:04:55 · 448 阅读 · 0 评论 -
HNUCM_入门级题库 (练习2)【题解】
A 题目大意编写一个程序,读取三个整数,并按升序打印它们。题解需要用到排序算法,C语言版本给的是最基本的冒泡排序算法的模板 ,作为初学者来说必须要掌握 C++版本给的是比赛常用最快的sort排序 可以嵌套结构体,函数等等,默认是从小到大排序,如果要从大到小或者自定义排序 则需要嵌入函数另外,输入采用多组输入格式,一般情况下都可以用多组输入,多组输入一般不会错! 除非题目严格要求...原创 2019-10-15 09:59:01 · 1497 阅读 · 0 评论 -
HNUCM 19级ACM训练计划【题解模板】
A 题目大意题解C语言版本C++版本B 题目大意题解C语言版本C++版本C 题目大意题解C语言版本C++版本D题目大意题解C语言版本C++版本E题目大意题解C语言版本C++版本学如逆水行舟,不进则退...原创 2019-10-08 23:48:19 · 932 阅读 · 2 评论 -
HNUCM_入门级题库 (练习1)【题解】
欢迎大家积极参与ACM训练计划中~简述题解会包含两种版本,C与C++的,但一般C++用的比较多,当然java也会用到。既然常用的是C++ ,学弟学妹们可以试着习惯C++的代码风格(等过了一段时间后,题解就只用C++来写了,目前先把C的基础打牢,然后慢慢过渡到C++,C++版本的也可以动手敲一敲代码)A A - X Cubic题目大意编写一个程序来计算给定整数x的立方体。题解...原创 2019-10-09 12:57:38 · 973 阅读 · 0 评论 -
2019 ACM训练计划——( 每天5题 ) 训练计划⑩
A String of CCPC题目大意说来说去,其实就是求CCPC的个数题解思维题,其实个人觉得有点难度,首先先遍历一遍,找到CCPC有几个,然后我们把CP给掐掉 对,掐掉"CP" 然后有几个特别情况 “CCC” “CPC” “CCP” 这些都是可以通过增加一个字符 获得CCPC的#include<bits/stdc++.h>using namespace std...原创 2019-09-26 18:44:11 · 407 阅读 · 0 评论 -
2019 ACM训练计划——( 每天5题 ) 训练计划⑨
A HNCPC2019 A.全1子矩阵题目大意求出全是1的一个子矩阵题解那次比赛的签到题,居然卡住我了。。。现在写的题解和比赛的代码差不多,找到相关的矩阵,然后求内部有没有0 有0就跳出来输出No 然后将1的位置又变为0 最后还要遍历整个数组看有没有1 如果还有1 那就不是全1子矩阵 然后此题需要对全为0的子矩阵进行特殊判断#include<bits/stdc++.h>...原创 2019-09-26 00:13:11 · 383 阅读 · 0 评论 -
2019 训练计划——DFS+BFS+string专题( 每天10题 ) 训练计划④
A Codeforces Round #161 (Div. 2), problem: (A) Beautiful Matrix题目大意找到到达中心需要的步数题解直接与中心坐标作比较即可#include<bits/stdc++.h>using namespace std;int px,py;int main(){ for(int i=1;i<=5;i...原创 2019-09-11 09:03:32 · 354 阅读 · 0 评论 -
2019 训练计划——DFS+BFS+string专题( 每天10题 ) 训练计划③
A Codeforces Round #173 (Div. 2), problem: (A) Bit++题目大意模拟 我们平常写代码的++x 和- -x 或者x++ x- -题解容易发现,每个字符串的区别就在于第2位,要么 + ,要么 - 只需要判断一下就好了#include<bits/stdc++.h>using namespace std;int n;in...原创 2019-09-10 15:54:10 · 356 阅读 · 4 评论 -
2019 ACM训练计划——XXX专题( 每天10题 ) 训练计划模板
A 题目大意题解B 题目大意题解C 题目大意题解D 题目大意题解E 题目大意题解F 题目大意题解G 题目链接题目大意题解H 题目链接题目大意题解I题目链接题目大意题解J 题目链接题目大意题解学如逆水行...原创 2019-09-06 23:59:50 · 433 阅读 · 0 评论 -
2019 训练计划——DFS+贪心专题( 每天10题 ) 训练计划①
A 牛客网-牛牛学括号题目大意给你一个合法的括号序列,每次操作分两步,第一步删除第一个左括号,第二步删除某一个右括号,要保证删除之后的括号序列还是合法的,求将括号删到空为止一共有多少种不同的删除方法,两种方法不同当且仅当存在某一步右括号的删除位置不同,答案膜1e9+7题解贪心,直接遍历,数据量大用long long 遇到左括号让当前方案数+1 如果遇到右括号 左右括号删除 sum要...原创 2019-09-06 23:56:01 · 421 阅读 · 0 评论 -
ACM算法模板 @ 常用的算法模板-模板合集(打比赛专用:数据结构+数学几何篇)+待更新
数据结构@并查集(How Many Tables)#include<bits/stdc++.h>using namespace std;const int maxn=1000+8;int pre[maxn];int find_pre(int x){ if(x==pre[x]) { return x; } else {...原创 2019-06-16 00:39:51 · 421 阅读 · 2 评论 -
ACM算法模板 @ 常用的算法模板-模板合集(打比赛专用:经典题型篇)
头文件#include<iostream>#include<string>#include<cstdio>#include<algorithm>#include<map>#include<bits/stdc++.h>#include<stack>#include<functional>...原创 2019-06-16 00:09:43 · 812 阅读 · 2 评论 -
HNUCM-XP的点滴(水题)
题目描述XP一不留神感冒了,于是跑到校医院打点滴。打点滴真是无聊啊,他看到盐水一滴一滴地滴下来,突然想到一个问题:如果盐水有规律地滴下,先滴一滴,停一下;然后滴二滴,停一下;再滴三滴,停一下…,假设这瓶盐水一共有n毫升,每一滴是y毫升,每一滴需要的时间是一秒(假设最后一滴不到y毫升,需花费的时间也算一秒),停一下的时间也是一秒。请问XP多久能挂完这瓶盐水呢?输入单组输入数据n y (0&l...原创 2019-05-21 17:40:10 · 822 阅读 · 2 评论 -
HNUCM 1311 字符序列模式识别 (模拟)
题目描述试写一个算法,识别字符序列是否为形如‘子序列1&子序列2’模式的字符序列,其中子序列2是子序列1的逆序列,0<=子序列字符串长度<1000,且都为小写字母。输出YES或者NO。输入一行字符序列输出YES或NO样例输入hello&ollhe样例输出 NO需要注意的:判断输入字符串是否全为小写字母并且只能含有一个&然后看是否是能逆序AC代码:...原创 2019-05-17 18:42:23 · 499 阅读 · 2 评论 -
4875 第k大数(二分)
题目描述有两个序列a,b,它们的长度分别为n和m,那么将两个序列中的元素对应相乘后得到的n*m个元素从大到小排列后的第k个元素是什么?输入输入的第一行为一个正整数T (T<=10),代表一共有T组测试数据。每组测试数据的第一行有三个正整数n,m和k(1<=n, m<=100000,1<=k<=n*m),分别代表a序列的长度,b序列的长度,以及所求元素的下标。第...原创 2019-09-13 08:20:20 · 547 阅读 · 1 评论 -
C++ 随机化快速排序 最简单易懂的代码! 基于归并分区思想实现
问题导入:使用Java或C++等语言中内置的随机函数实现随机化快速排序,在数组中随机选择一个元素作为分区的主元(Pivot)。输入多组样例输入,每组由一个一维整型数组组成。 输出随机化快速排序之后的一维整型数组(升序排列)。 样例输入6 1 8 6 5 3 45 12 42 2 5 8样例输出1 3 4 5 6 82 5 8 12 42个人分析:首先还是得了解一下快速排序...原创 2019-03-26 21:26:46 · 1917 阅读 · 7 评论 -
C++ 快速排序最简单易懂的算法代码!+详细解答
//快速排序#include<iostream>#include<vector>using namespace std;vector<int> vec;void Chocolate_swap(vector<int> &v,int a,int b){ int temp=v[a]; v[a]=v[b]; v[b...原创 2019-03-26 21:00:16 · 2311 阅读 · 3 评论 -
汉诺塔-3(水题)
题目描述用1,2,…,n表示n个盘子,称为1号盘,2号盘,…。号数大盘子就大。经典的汉诺塔问题经常作为一个递归的经典例题存在。可能有人并不知道汉诺塔问题的典故。汉诺塔来源于印度传说的一个故事,上帝创造世界时作了三根金刚石柱子,在一根柱子上从下往上按大小顺序摞着64片黄金圆盘。上帝命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一回只能移...原创 2019-03-16 16:53:24 · 1495 阅读 · 2 评论 -
初级汉诺塔问题(递归求解)
使用递归编写一个程序实现汉诺塔问题,要求在输入圆盘数量之后,输出圆盘的移动步骤,输出格式示例如下:第1步:1号盘从A柱移至B柱第2步:2号盘从A柱移至C柱输入多组测试用例,每组输入一个正整数n,n代表圆盘数量。输出每组输出之间有一行空行。样例输入3样例输出第1步:1号盘从A柱移至C柱第2步:2号盘从A柱移至B柱第3步:1号盘从C柱移至B柱第4步:3号盘从A柱移至C柱第5...原创 2019-03-12 18:34:03 · 952 阅读 · 2 评论 -
c++最佳情侣身高差(来测一测)
专家通过多组情侣研究数据发现,最佳的情侣身高差遵循着一个公式:(女方的身高)×1.09 =(男方的身高)。如果符合,你俩的身高差不管是牵手、拥抱、接吻,都是最和谐的差度。输入格式:输入第一行给出正整数N(≤10),为前来查询的用户数。随后N行,每行按照“性别 身高”的格式给出前来查询的用户的性别和身高,其中“性别”为“F”表示女性、“M”表示男性;“身高”为区间 [1.0, 3.0] 之间的实...原创 2019-03-08 20:41:59 · 5260 阅读 · 2 评论