10 2022 档案

摘要:蒟蒻只会暴搜了要点是先找到起点,从起点开始向各个方向搜DFS:(DFS当然也可以用for(int i=0;i,4;i++)来搜索四个方向,这里是个人习惯) #include<iostream> #include<cstring> using namespace std; const int N=30 阅读全文
posted @ 2022-10-29 22:57 风乐 阅读(26) 评论(0) 推荐(0)
摘要:https://www.acwing.com/problem/content/1226/ 首先是暴力做法,O(N^2),对于1e4勉强可以过 #include<iostream> #include<algorithm> using namespace std; const int N = 10010 阅读全文
posted @ 2022-10-25 21:48 风乐 阅读(23) 评论(0) 推荐(0)
摘要:dfs利用的是栈,bfs利用的是队列 如同y总所说的,不需要理解如何用队列实现一个bfs而是跟着y总,告诉我们怎么做,然后我们自己判断一下这种是不是bfs如图:取出的顺序和加入的顺序实际上都是bfs的顺序 一般的bfs框架形式如图: 由于bfs的层次遍历原理,它会优先遍历距离最短的点,因此相比dfs 阅读全文
posted @ 2022-10-23 22:57 风乐 阅读(31) 评论(0) 推荐(0)
摘要:https://www.acwing.com/problem/content/description/1240/首先是暴力做法,可以先循环id,再循环时间,在相同id的情况下,,枚举每个d时间段内点赞数是否大于等于k,但是这种方式不一定可以优化可以先循环时间,再循环id,枚举整个时间范围,即枚举每个 阅读全文
posted @ 2022-10-22 15:57 风乐 阅读(28) 评论(0) 推荐(0)
摘要:对于练习题2.10所示的交换函数咋一看是这个道理,利用^符号达到交换的目的,实际上由练习题2.11可以知道,它隐含了地假设了*x与*y不指向同一位置我们知道 对于任意a,a^a=0,对于2.10这个函数来说,*x与*y指向同一位置就明显的无法达到交换的目的,反而将值置0了而下面的填空很简单,^符号的 阅读全文
posted @ 2022-10-19 10:56 风乐 阅读(75) 评论(0) 推荐(0)
摘要:利用刚学的线段树写一道模板题https://www.acwing.com/problem/content/1272/ 这里不需要更新修改,但是要求的却是最大值因而pushup时,也是取max,build与模板一样查询的query,首先需要定义一个最小整数,可以用climits库中的INT_MIN,也 阅读全文
posted @ 2022-10-18 16:22 风乐 阅读(19) 评论(0) 推荐(0)
摘要:如图所示,线段树维护的是一个struct,一个区间和,对于一个序列,他会不断地分开序列,并且在每个结点存在当前结点的区间和,直到分为1个数对于如何奇偶分段,使用mid=R+L >> 1再下取整 而它的操作和树状数组有点类似:支持单点修改(即只改信息需要变化的结点) 如图,假设将原序列中的5改为8,则 阅读全文
posted @ 2022-10-18 15:41 风乐 阅读(99) 评论(0) 推荐(0)
摘要:树状数组应用的模板题,写此篇题解前我需要引用一下此位大佬的:https://www.acwing.com/solution/content/39139/大佬的题解很好,但最醍醐灌顶的是大佬的总结:根据题目特性,确定初步解题思路,优先使用暴力,再去考虑优化对于刷题,我一直没有什么较好的内化、学习思路, 阅读全文
posted @ 2022-10-17 23:06 风乐 阅读(44) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2022-10-15 14:17 风乐 阅读(30) 评论(0) 推荐(0)
摘要:hadoop中map分治执行流程: 阅读全文
posted @ 2022-10-15 14:08 风乐 阅读(26) 评论(0) 推荐(0)
摘要:核心应用:快速(logn)计算前缀和(本质上是快速给某个位置加上一个数)求前缀和可以是任意区间,如求L~R的区间前缀和,只需要用S[R]-S[L-1],通过简单的减法运算即可知区间和本质上的功能:它只支持单点修改和区间查询coding上:有三个核心,求lowbit,更新,以及求和,具体的原理能够代入 阅读全文
posted @ 2022-10-14 17:36 风乐 阅读(25) 评论(0) 推荐(0)
摘要:https://www.acwing.com/problem/content/1243/ 稍复杂一些的模拟题,但是若是暴力做法即将a[i][j]定义为i时刻id为j的优先级即可双重循环枚举每个时刻,每个id所有组合在此情况下再判断这样的a[i][j]是否满足进入优先缓存st[i]中,a[i][j]进 阅读全文
posted @ 2022-10-13 21:26 风乐 阅读(41) 评论(0) 推荐(0)
摘要:https://www.acwing.com/problem/content/1233/ 简简单单小模拟要注意的是,这题有点类似于脑筋急转弯,需要仔细分析题意,带入假设量计算得出即可并且此题输入有点毒,可以用getline读入一行,再从string中一个一个的抠出来变量,也可用格式输入 #inclu 阅读全文
posted @ 2022-10-12 23:58 风乐 阅读(19) 评论(0) 推荐(0)
摘要:https://www.acwing.com/problem/content/description/1231/ 蒟蒻只会暴力而Y总的思路就特牛,直接从日起开始枚举,只需判断日期是否合法即可输出 #include <cstdio> #include <iostream> using namespac 阅读全文
posted @ 2022-10-11 11:11 风乐 阅读(23) 评论(0) 推荐(0)
摘要:https://www.acwing.com/problem/content/description/15/ 显然此题可以用桶法做,空间换时间 class Solution { public: int duplicateInArray(vector<int>& nums) { int a[1005] 阅读全文
posted @ 2022-10-10 16:28 风乐 阅读(24) 评论(0) 推荐(0)
摘要:https://www.acwing.com/problem/content/1221/ 根据样例,模拟一下得出规律即n/w的值决定n所在的行数是正向还是反向n/2为偶,则为正,为奇,则为反对于一个数,它的位置表示可以用,行:行/w,列:列%w细节点1:但是,对于边界值却不好处理例如:1 2 3 4 阅读全文
posted @ 2022-10-09 20:32 风乐 阅读(43) 评论(0) 推荐(0)
摘要:https://www.acwing.com/problem/content/description/790/ y总的思路我的理解究其分治,底层原理,大概是:利用归并排序的分治特点,一次分两组最终分成单位为1,即只有1个数的组即第1,第2中情况都被分成了第三种情况由于只有1个数.即每个序列都有序,可 阅读全文
posted @ 2022-10-08 12:12 风乐 阅读(22) 评论(0) 推荐(0)
摘要:力扣链接:剑指 Offer 03. 数组中重复的数字 acwing链接 最初的思路是,将所有数据放入桶中,数据存在,数据桶值就++,有数据重复就retrun nums[i],无数据重复就return -1,且需要考虑优先输出-1,其次才是重复值nums[i],因此我最初在acwing上的代码为: c 阅读全文
posted @ 2022-10-07 23:10 风乐 阅读(19) 评论(0) 推荐(0)
摘要:上传文件流程图,要点都在图上 阅读全文
posted @ 2022-10-07 15:33 风乐 阅读(56) 评论(0) 推荐(0)
摘要:https://www.acwing.com/problem/content/468/ 模拟题,洛谷也有一道 #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using namespace s 阅读全文
posted @ 2022-10-05 14:59 风乐 阅读(17) 评论(0) 推荐(0)
摘要:#include<iostream> #include<sstream> using namespace std; int a[1000]; int cnt,n; int main() { cin >> cnt; string line; getline(cin,line);//cin会被回车,空格 阅读全文
posted @ 2022-10-05 13:58 风乐 阅读(31) 评论(0) 推荐(0)
摘要:https://www.acwing.com/problem/content/1206/ 模拟题,但是输入方式有点恶心可以用EOF方式读入,也可以用sstream读入sstream可以参考这份做法也有两种,可以定义bool数组遍历a[i],寻找被赋值两次的st[i]的重号,以及st[i]值为0的断号 阅读全文
posted @ 2022-10-05 12:09 风乐 阅读(21) 评论(0) 推荐(0)
摘要:https://www.acwing.com/problem/content/1247/ 简单模拟水题一道 #include<algorithm> #include<cstring> #include<iostream> #include<cstdio> using namespace std; i 阅读全文
posted @ 2022-10-05 10:53 风乐 阅读(18) 评论(0) 推荐(0)
摘要:https://www.acwing.com/problem/content/1238/先用桶装有数的for(int i=1;i<=n;i++) cnt[a[i]]++;cnt[i]表示前i个数有数的,有就为1,无就为0再利用递推计算一下前缀和s[i]s[i]=cnt[0]+cnt[1]+cnt[2 阅读全文
posted @ 2022-10-04 18:55 风乐 阅读(251) 评论(0) 推荐(0)
摘要:https://www.acwing.com/problem/content/1212/简答模拟水题一道要注意的是题目给的条件是1~N的排列,不会有重复数字,那么稍加思考即可有,若排列排序后递增,则有排列中的Max-Min+1=序列长度,如此充要条件则可判断此排列为递增区间 #include<bit 阅读全文
posted @ 2022-10-03 22:11 风乐 阅读(29) 评论(0) 推荐(0)
摘要:https://www.acwing.com/problem/content/1216/ 定义f[i][j]为考虑前i个d,余数为j的count数需要注意的是,根据理解推得的公式,有多种等效形式我这里为n*x+1*d1+2*d2+3*d3+........+(n-1)*dn-1 + n*a;对于每一 阅读全文
posted @ 2022-10-03 18:23 风乐 阅读(29) 评论(0) 推荐(0)
摘要:思路与此篇差不多,即利用灵活的内存寻址方式定位 https://blog.51cto.com/144dotone/2953611 阅读全文
posted @ 2022-10-02 18:35 风乐 阅读(22) 评论(0) 推荐(0)
摘要:Amdahl定律我们定义α为加速部分占整个系统部分的比例k为性能加速比例,即加速后的性能比上加速前的性能由公式可知练习题1:A:根据定义理解,有α=1500/2500,k=150/100,可根据公式计算出加速比S=1.25X当然有更直接的理解,根据S=Told / Tnew,可直接计算知Told=2 阅读全文
posted @ 2022-10-02 17:16 风乐 阅读(76) 评论(0) 推荐(0)