InTheBloodHorse

InTheBloodHorse

Hey~

数据结构与算法(1)-二叉堆
二叉堆1:什么是二叉堆?ans:二叉堆的本质是完全二叉树,可以分为最大堆和最小堆。二叉堆可以实现优先队列,插入和删除的复杂度都为O(logN)用堆实现的优先队列 数据结构与算法(4) 堆(优先队列) 最大堆最大堆任何父节点的值,都大于等于它的左右子节点的值。 最小堆最小堆任何父节点的值,都小于等于它的左右子节点的值。 二叉堆的根节点叫做堆顶,毫无疑问,就是二叉树的最大值或者最小值 插入节点(复杂度 log(N))假设我们已经有了一个最小堆,如图1.我们插入一个节点为 0(绿色),我们需要把插入的节点追加到树的最后一个节点 如图2.将插入的节点与父节点比较,假如值小于父节点,使父节点下沉。...
每日一题(5)codeforces 1036A
题目地址题意:(先看题目的图)给两个数字,n,k,要求图内(0~2n)组成的三角形面积之和等于k,的情况下,输出最小的高。思路:画个图就明白了。当h为1的时候,最大的面积为 底高 /2 = (2n 1)/2 = nk在 (n (h-1) , n * h] (h >= 1 )求 h 就可以了。AC代码:12345678#include<bits/stdc++.h>using namespace std;int main(){ long long a,b; cin >> a >> b; cout << (b-1)...
每日一题(4) codeforces 1038D
题目地址题意:有n个史莱姆,每个史莱姆有值为 x,史莱姆A可以吃掉任意一个相邻位置的史莱姆B(值为y),因此史莱姆B就消失了,史莱姆A的值变成了 x-y。问一直吃,吃到最后一个,留下来的史莱姆最大的值为多少。思路:一开始以为是dp题,被吓坏了,后来琢磨下可以得出1:最大的肯定是留到最后的,最小的必须去吃其余的,因为一个大的史莱姆去吃小的史莱姆,就亏了,因为大的史莱姆的值小了,但是他还是正数,最大的吃这个史莱姆,也会变小,所以要想办法得到负数的史莱姆2:所有值都大于0的话,答案就是 所有数字之和 - 2*min3:所有的值小于0的话,取个绝对值,和大于0的情况一样,自己在纸上写一下就知道为...
Redis学习(2)Windows下安装和可视化工具安装
1.安装 redisgithub下载地址进去下载对应的文件就好,但是我下载的很慢,不知道为啥,可能是对方服务器的问题,所以我就去阿里云服务器上 wget下载了,速度还过得去,然后拉到本地。接下来的安装和别的没差,记住勾选 添加到本地环境就好。2.redis使用cmd下面运行1redis-server.exe redis.windows.conf 假如没报错,说明就OK了。报错的话可能是(因为我就遇到了这个)1# Creating Server TCP listening socket 127.0.0.1:6379: bind: No error 解决方法123redis-cli.exes...
每日一题(3) codeforces 1038C
题目地址题意:A,B两人,分别有list,有n个元素,A,B轮流行动,每人有两种选择:1:移除对方的一个元素2:移除自己的一个元素,并且自己的分数加上那个元素的分值假设两个人都做出最优的前提下,A,B的分值之差(A-B)思路:一开始还以为是一道博弈题目,后面读题目就知道,只要先排序,然后轮流模拟A,B的操作,到最后就可以得出答案。坑点:1e5*1e6 = 1e11 分数定义成int的话 就爆掉了,留个心眼。AC代码:12345678910111213141516171819202122232425262728293031323334353637383940414243444546#inc...
Redis学习(1) Linux下安装
1.安装1sudo apt-get install redis-server 2.卸载1sudo apt-get pruge --auto-remove redis-server 3.启动:安装redis后,默认自动启动,通过以下查看1ps -ef|grep redis 或者1sudo service redis-server start 3.停止1sudo service redis-server stop
每日一题(2) codefroces 1038B
题目地址今天的题目倒是很友好。题意:输入一个n,将1~n 分为两个集合,每个数字只能用一次,问能否找到两个区间,s1,s2gcd(sum(s1),sum(s2)) > 1 ,换句话说就是 两个集合的总和 不能互质。解题思路:可以先打表,看到 sum 是有规律的,比如 1,3(1+2),6(1+2+3),10(1+2+3+4),15(1+2+3+4+5),四个一组,奇奇偶偶,这样子,偶数就很简单了,偶数-偶数,还是偶数,所有偶数的情况只要取出一个2,其他的是2的补集,就OK了。奇数的话,其实只要判断是不是素数就可以了,但是我这个素数的板子用反了,应该是用判断这个数是不是素数的板子,不...
每日一题(1) codeforces 1038A
题目地址题意:说真的一开始看了老半天硬是没看懂,后面就看了Note,也是似懂非懂,后来瞎看就大致知道了。就是给 n,k,给string s求所有字母里出现次数最少的 * k(这道题就是题意太坑了) AC代码:1234567891011121314151617#include<bits/stdc++.h>using namespace std;int v[27];int main(){ string s; int n,k; cin >> n >> k >> s; int min1 = 1e9; for(int i=0;i<s....
avatar
InTheBloodHorse
你得抛开过去的事
FRIENDS
阿汤哥