![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
零碎
桃花仙人~
这个作者很懒,什么都没留下…
展开
-
Git merge 报告 “Already up-to-date“尽管存在差异
Git merge 报告 "Already up-to-date"尽管存在差异原创 2023-02-09 16:47:42 · 1543 阅读 · 2 评论 -
x&x-1的作用
x & (x-1)的作用原创 2022-12-19 21:37:13 · 271 阅读 · 0 评论 -
信息学奥赛总结01
信息学奥赛总结原创 2022-07-02 12:02:27 · 377 阅读 · 8 评论 -
蚂蚱跳跃问题
蚂蚱跳跃问题题目大意:一个蚂蚱最初位于坐标轴的原点,现在蚂蚱要跳跃到坐标轴的s点,跳跃规则是蚂蚱既可以往正方向跳跃,也可以往负方向跳跃,蚂蚱第一次跳跃1个单位,以后的跳跃步数在前一步的基础上加一。现在求蚂蚱跳跃到s点最少需要多少步数?原题截图如下:题意分析:首先看题目的数据最大约为10亿,意味着不可能采用搜索、暴力等一些耗时的解决办法,也不会让你在代码中开辟较大的数组,那么拿到这个问题如何去解决呢?初步分析假如S为负,则只需求正S的结果如果目标点S恰好能等于S = F(n) =(n(n+1原创 2022-03-13 23:24:49 · 492 阅读 · 0 评论 -
Windows10关闭占用某一端口号的进程
查看端口,找到PIDnetstat -ano:查看所有端口的占用情况netstat -aon|findstr “端口号”:查看指定端口的占用情况关闭进程taskkill -PID 进程的pid -F原创 2022-01-07 16:32:36 · 266 阅读 · 0 评论 -
Crossing River 过河问题
Crossing River 一群人过河,只有一条船,可以称作两个人,过河时间由慢的那个人决定,船到达对岸必须有一人在开回来. 现给出每个人的过河时间,求将所有人过河需要的最短时间Sample Input141 2 5 10Sample Output17这时一道贪心题,最优的过河方法有两种:当 n>3时,先将最快和次快的过河,然后最快的划船回来,然后最慢和次慢的过河,最后次快的划船回去,s1 = nums[0] + 2 * nums[1] + nums[n-1]第二种是,最快的原创 2021-03-19 19:27:45 · 387 阅读 · 0 评论 -
快速排序边界条件的处理及选择
快速排序的核心思想是分治,即将一个序列划分成左部分小于等于x,右部分大于等于x其中设置两个指针i,j(i从左边,j从右边)从两端开始,i遇到大于等于x的停下来,j遇到小于等于x的停下来,然后如果(i<j)就交换q[i],q[j],之后结束循环,递归因为左部分小于等于x,右部分大于等于x,所以递归只有两种情况即sort(l,i-1),sort(i,r);或者 sort(l,j),sort(j+1,r);因为对于i来说,i的左边的值是确定的,一定小于等于x,(因为i在j的右边,j右边的值都是原创 2021-03-15 08:31:55 · 934 阅读 · 2 评论 -
HDU - 2044一只小蜜蜂 一道递推题
一只小蜜蜂#include<iostream>#include<cstdio>#include<cstring>#include<cmath>#include<queue>#include<map>#include<vector>#include<algorithm>using namespace std;typedef long long LL;const int N=55;LL f原创 2020-12-04 19:23:53 · 93 阅读 · 0 评论 -
单调栈问题
单调栈能够求得 该数左边离他最近的大于/小于的数(其他问题也可以转换为此问题)例如 求 a[i]左边第一个小于a[i]的数对于a[i]每次入栈如果有大于等于a[i]的数,直接出栈证明:如果求左侧第一个小于a[i]的数如果a[i]入栈后左侧有大于a[i]的数,则那个数不仅是大值而且还出现的比较早,所以他永远不会被用到,所以直接出栈单调栈板子#include<iostream>#include<cstdio>#include<cstring>...原创 2020-12-03 21:11:13 · 189 阅读 · 0 评论 -
食物链---带权并查集
食物链d[x]维护的是跟根节点的距离 如果x,y在同一个集合中,然后通过两个根节点的距离就可以知道两个之间的关系d[x] 可以为负数,如果为负数的话,是反向转食物链例如y距离根节点为 -1 x距离根节点为 -5 则-1-(-5)-1mod3 ==0 所以y吃x 画图的话需要反向转圈如果 x y 为同类 则 d[x]-d[y] mod 3==0 如果构建x y为同类 则 d[x] +d[y] +d[p[x] ] mod 3==0 所以d[p[x]]= d[y]-d[x]...原创 2020-11-13 23:44:13 · 87 阅读 · 0 评论 -
单调栈小结
单调栈查找左边第一个比他小的数这是查找过程是有单调性的53 4 2 7 5当插入第三个数的时候,可以看到前面的数没有比它小的,此时再来看第四个数,如果第四个数比第三个数大,那么答案则会输出第四个数的值,如果第四个数小于第三个数,则会输出-1,这样看来,对于第四个数来说,第三个数前面的数对四个数毫无作用所以单调性就出来,如果进来的数大于前一个数则入栈,否则让前一个数出栈直到栈为空或者找到一个小于这个数的如果找第一个左边/右边第一个大于/小于这个数的类型的题都..原创 2020-11-07 18:35:38 · 81 阅读 · 0 评论 -
强盗团伙
强盗团伙朋友的朋友是朋友,敌人的敌人是朋友关于反集如果a和b是敌人,合并n+b和a,n+a和b 如果c和a是敌人,合并n+c和a,n+a和c 那么b和c就并在一起了 这样就符合了题目敌人的敌人是朋友的规则合并时要切记将b+n设为a的儿子,不能反过来#pragma GCC optimize(2)#include<bits/stdc++.h>using namespace std;const int N = 2500;int p[N];int n,m;in.原创 2020-10-30 20:18:46 · 153 阅读 · 0 评论 -
利用STL排列
接下来的第k个排列next_permutation(a,a+n)如果没有下一个排列方式了会返回NULL#include<iostream>#include<algorithm>#include<cstdio>using namespace std; int main(){ int i,j,k,m,n; int a[1025]; cin>>m; while(m--) { cin>>n>>k; f原创 2020-10-15 19:49:03 · 54 阅读 · 0 评论 -
蛇形矩阵题解
蛇形矩阵#include<iostream>#include<algorithm>#include<cstdio>#include<cstring>using namespace std;const int N=103;int arr[N][N];int main(){ int n,m; cin>>n>>m; int t=1,sr=1,sc=1; int up=1,left=1,ri原创 2020-09-16 19:50:11 · 153 阅读 · 0 评论