摘要: 【题意】: 有 n 个队员 , 玩了好久后统计他们传球的次数。 第 i 个队员传了 a【 i 】 次球 。 问 最少应该玩了几轮 。 【思路】: 记录踢得最多的一个球员。 记录除了这个球员的其他人踢得总和。 如果 踢得最多的那个人比其他人加起来都多,那么就要踢 (max-sum)轮 。 如果 踢得最 阅读全文
posted @ 2022-03-16 15:09 Pan_c 阅读(127) 评论(0) 推荐(0)
摘要: 【用法】 将字符串的所有前缀表示为一个哈希值。 先设置成一个p进制 ( 一般取131 或者 13331 ) , 哈希值R为2^64 次 ( 或者开 unsigned longlong 当做取模了) 【作用】 判断字符串的子串是否相等。 【代码】 #include <bits/stdc++.h> #i 阅读全文
posted @ 2022-03-16 13:24 Pan_c 阅读(27) 评论(0) 推荐(0)
摘要: 【题意】 给你一个n*m的白色桌面。将其变成一个黑白相间的图案(1代表黑色,0代表白色)。每次操作可以选定一个大小的矩形,按照左上角是白色,黑白间隔的染色。 如果可以是,输出操作次数(不用最小),并输出路径。如果不可以输出-1。 【思路】: 数据范围为100*100 不用担心时间复杂度。 我们从右下 阅读全文
posted @ 2022-03-16 00:24 Pan_c 阅读(79) 评论(0) 推荐(0)
摘要: 【题目大意】: 如果任意两个最大矩形不相交则输出YES,否则输出NO。 【思路】: 数据范围比较小,100*100.所以可以暴力遍历。 找到最大矩形相交 不能出现【俄罗斯方块中的L形】 , 例如一个点右边下边都是1 但是右下角是0 就不行。 所以是任意点的右,下,右下中不能有三个是1,一个是0。这样 阅读全文
posted @ 2022-03-15 23:41 Pan_c 阅读(106) 评论(0) 推荐(0)
摘要: 【题目大意】 输入一个字符串。执行任意次【删除同种字符】操作使其成为回文串。可以实现输出最小操作次数,不然输出-1. 【思路】 用双指针 i, j 指向字符串的头尾。 遍历26个字母,将每个字母当做应该删的【同种字符】‘p’。时间复杂度o(26n)。 1. s【i】==s【j】 外围相等 , 不影响 阅读全文
posted @ 2022-03-10 20:51 Pan_c 阅读(33) 评论(0) 推荐(0)
摘要: 字典树csdn链接: trie是哈希树的一种。查询是否存在字符串,统计前缀, Trie树的核心思想是空间换时间,利用字符串的公共前缀来降低查询时间的开销以达到提高效率的目的。 Trie树的最坏空间复杂度为O(m^n)。Trie树的最坏时间复杂度为O(n)。 字典树典型的应用 1.字典树在串的快速检索 阅读全文
posted @ 2021-11-21 11:21 Pan_c 阅读(56) 评论(0) 推荐(0)
摘要: 离散化 当不需要那么多结点的时候,就需要将题目给的区间给离散化。 题目输入n个区间 a,b。将a,b对应存入到数组ls中。( 第一个区间的ab分别是ls[0],ls[1] ) 将所有a,b再保存到同一个数组c里,对c数组进行排序(sort)和去重(unique(c,c+p)-c)得到有多少个不重复的 阅读全文
posted @ 2021-11-11 19:23 Pan_c 阅读(80) 评论(0) 推荐(0)
摘要: 归并排序的理解: 归并排序(MERGE-SORT)是利用归并的思想实现的排序方法,该算法采用经典的分治(divide-and-conquer)策略(分治法将问题分(divide)成一些小的问题然后递归求解,而治(conquer)的阶段则将分的阶段得到的各答案"修补"在一起,即分而治之)。 分到不能再 阅读全文
posted @ 2021-10-26 23:58 Pan_c 阅读(93) 评论(0) 推荐(0)
摘要: 位运算基本字符 & | ^ ~ << >> & (与) | (或) ^(异或) ~(取反) a<<b ( a<<b 表示把a转为二进制后左移b位(在后面添加 b个0) ) a在变大 a>>b (a>>b表示二进制右移b位(去掉末b位),相当于a除以2的b次方(取整)) 阅读全文
posted @ 2021-09-26 11:36 Pan_c 阅读(23) 评论(0) 推荐(0)
摘要: rmq解决多区间多询问区间最值 问题。 预处理每个区间的最值 o(longn) 查询 o(1); 阅读全文
posted @ 2021-09-16 20:09 Pan_c 阅读(26) 评论(0) 推荐(0)