- 博客(10)
- 收藏
- 关注
原创 Codeforces Round #693E Problem 1472E
Codeforces Round #693E / Problem 1472E 1.原题链接: https://codeforces.com/problemset/problem/1472/E 2.题意: 多组输入。 对于每组数据,输入一个n,表示有n个方块,接下来n行输入方块的长和宽。 对于每个方块,询问是否存在某个方块的长和宽都小于该方块,注意,方块可以旋转,使长宽互换,存在则输出任意一块的id ,不存在则输出-1 3.解题思路: 小技巧,为了解决长宽互换的问题,我们在输入时,使更小的值为长,更大的值为宽
2021-01-18 19:22:36
188
原创 插入、冒泡、选择排序 区分O(n^2)
插入、冒泡、选择排序 区分 O(n^2) 这三个排序都是 n 方,然而我老是记错他们之间的名字,到时候考研卷子上写错了就凉凉 谨以此博客纪念我傻傻分不清楚他们的名字的岁月。 全篇以从小到大排序为例,数组从第arr[1]开始存储 1.插入排序 助记:从后向前插入,前面已有序 从前向后遍历,假设当前遍历的是第 i 个元素,那么前 i-1个已经有序,然后再将当前这个与前面的元素倒着回去比较,直到遇到比第 i 个小的则停止 void InsertSort(int arr[],int n) { for(int i=
2020-10-25 21:32:05
237
原创 我的算(菜)法(鸡)之路
我的算(菜)法(鸡)之路 今天是1024程序员节,单纯的为了写博客而写。。。 走上算法这条路,起初是因为一个很有人格魅力的学长 wmh ,真的,不当程序员的话,学长去搞销售绝对是李佳琦二号。口才好,逻辑清晰,聪明,而且还特别温柔有耐心(与我同届的形成鲜明的对比,看最后面),简直有光环。 学长说,出去比赛的话,学校出钱免费出去旅游,坐飞机,住豪华大宾馆。。。年薪xx万,走向人生巅峰。当时,我就激动了,居然有这等好事(垂涎三尺)? 在这强大的诱惑下,我大一整个暑假都没回家(谁能想到,此后几年就再没有暑假了),就
2020-10-24 19:34:37
320
原创 C/C++第十一届蓝桥杯省赛B组第二场比赛
第十一届蓝桥杯省赛C/C++组第二场比赛 有错误各位大佬指出来哈。 1.找"2" 答案:624 #include <iostream> #include <algorithm> using namespace std; int cnt(int num) { int ans=0; while(num) { if(num%10==2) ans++; num/=10; } return ans; } int main() { int ans=0; fo
2020-10-17 20:11:00
5448
21
原创 归并排序
归并排序 1.归并的思想 虽然官方给的定义说归并是分治法,但是,我的理解是递归。 有句话说得好,人理解递推,神理解递归。 最短的三行代码也是最难的,因为牵扯到了回溯。 归并和快排都是分治,归并排序和快排不一样的是,快排只有向下的操作,而没有回溯。 还有就是,归并排序每次分割都是中点,而快排的分割是在左右指针相遇的地方。 话不多说,开始撸代码。。。 2.代码分析 (1)合并操作 对于一个左边一半和右边一半分别有序的数组,合并成一个新的整体有序的数组,需要注意的是,这里需要一个和原数组一样大的辅助空间。 i
2020-10-16 11:51:05
222
原创 理解快速排序
理解快速排序 1.对快速排序的理解 快排运用了分治的思想 举个例子说明分治 假设省长要给xx全省修路,省长把各市长叫过来说你去修路吧。修路的范围是我们省 然后市长又跟县长说,你们去修路吧 修路的范围是我们市 …… 最后无数农民工,他们再想向下吩咐的时候一看,哦豁,我就是最底层,把自己面前的路修好吧。 2.快排步骤 假设对区间 left 到 right 进行划分 (1).把区间最左边作为标兵,两个指针从两端开始向中间相向而行 右指针遇到比标兵小的,和左指针遇到的比标兵大的交换 注意!!右指针先动,这样可以
2020-10-15 13:09:49
193
原创 浅谈堆排序
浅谈堆排序 什么是堆 1.堆的特点 (1).堆是一颗完全二叉树 (2).堆的父节点大于左右子节点(大根堆)左右子节点大小无序 const int MaxSize=1000; int heap[MaxSize]; //下标从1开始 int n; //表示堆中的节点的个数,也是heap数组的长度 2.基本知识 对于一颗用数组(下标从1开始)存储的堆,假设某节点为 heap[ i ] 则父节点为 heap[ i / 2] 左儿子节点为 heap[ i * 2 ] 右儿子节点为 heap[ i
2020-10-14 19:52:13
277
原创 codeforces Round 592C/1244C
题意: 给四个数字:N,P,W,D(1<=n<=1e12,1<=d<w<=1e5,0<=p<=1e17) 求是否存在符合条件的x,y,z: x+y+z=n xw+yd=p 解题思路: 我们暂且把xw+yd叫做式子1 我们暂且把x+y叫做式子2 我们从小到大枚举y,枚举范围[0,w],正好w<1e5,时间复杂度够。 为什么从小到大枚举y? 因为式子2的...
2019-10-15 20:48:37
243
原创 codeforces 1175C
原题: C. Electrification time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard output At first, there was a legend related to the name of the problem, but no...
2019-06-06 23:47:16
629
原创 Codefoces1011B
Codeforce Round #499/B Coderforces1011B原题:题意:解题思路:代码: 原题: B. Planning The Expedition time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard output Natasha is...
2019-03-03 19:06:30
388
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人