-
基础算法学习--hash表
#hash表的作用 将一个大的集合的数存进一个小的区域里 离散化是一种极其特殊的hash表 有开放寻址法和拉链法两种方法,开放寻址法只需要开一个数组,拉链法更接近stl但要多开一个链表 #hash表模板(开放寻址法 模拟 #include<iostream> #include<cstring> us -
1511D. Min Cost String
D. Min Cost String 需求数组放在char res[]里。 理解过后不难看出要求构造一个字符串,字符串要求Si+S(i+1) != Sj+S(j+1)。 最初理解是将a放在res[0]里,后面依次放入一对与前面不同的字符,如k==4的时候字符串为aabacadbcbdcd。--wa了 -
基础算法学习--堆的模拟
#什么是堆? 一颗完全二叉树,根是整棵树的最小值 每一层的子节点都大于对应根节点 #堆的模板(不考虑数是第几个插入的) int h[N]; //value int idx; //树的大小 //将当前的数向下排序 void down(int num){ int t = num; if(num * 2 -
Codeforces-Div.1及格计划
Problem Set Problem Set #715 0 solved, 2 after-solved. problem A string and stack Binary Literature WA and TLE Solve. problem B binary search, regular -
python的discard和remove方法
#python的discard和remove方法 两者都是对集合类型的元素进行删减 格式: 集合名.discard(element) 集合名.remove(element) ##代码 set_actors = {"张牧之","黄四郎","胡万","汤师爷","马邦德"} print(set_acto -
C++学习笔记之NULL vs nullptr
C++学习笔记之NULL vs nullptr 资源 C++学习笔记之NULL vs nullptr NULL具有具有两义性,既可以用字符指针的类型来接收,也可以用整型类型来接收。而这也就意味着在重载函数中,有可能会出现问题(如果存在两个同名函数,其中一个函数的参数是字符指针类型,另一个函数的参数是 -
笔记---无穷大数表示
#如何表示无穷大 可以使用0x3f3f3f3f或0x7fffffff 0x3f3f3f3f的十进制是1061109567,也就是109级别的(和0x7fffffff一个数量级),而一般场合下的数据都是小于109的,所以它可以作为无穷大使用而不致出现数据大于无穷大的情形。 另一方面,由于一般的数据都不 -
哈姆雷特单词的排名
哈姆雷特单词的排名 ###代码 def getText(): txt = open("hamlet.txt","r").read() txt = txt.lower() for ch in '''~!@#$%^&*()_+{}|:"<>?;',./''': txt = txt.replace(ch, -
基础算法学习--并查集
#并查集模板 //查找并返回根节点 int find(int x){ if(p[x] != x) p[x] = find(p[x]); //若不是根节点的话就调用find函数查找上一个节点,并在结束时压缩路径优化 return p[x]; //返回根节点编号 } int main(){ for(in -
数组模拟栈和队列
数组模拟栈 实现一个栈,栈初始为空,支持四种操作: push x – 向栈顶插入一个数 x; pop – 从栈顶弹出一个数; empty – 判断栈是否为空; query – 查询栈顶元素。 现在要对栈进行 M 个操作,其中的每个操作 3 和操作 4 都要输出相应的结果。 输入格式 第一行包含整数