$("head").append('')
该文被密码保护。 阅读全文
posted @ 2021-10-20 12:37 returnG 阅读(17) 评论(0) 推荐(0) 编辑
摘要: 1. 功能 根据数据自动随机分组,目前不支持输入中文等非c++自带的语言库。 2. 使用方法 需要读取的数据有两个:data.txt和list.txt。 data.txt data.txt表示组别的要求,包含两个要素:组数和每组的大小,比如: 3 3 3 2 表示分3组,第一组3个元素,第二组3个元 阅读全文
posted @ 2021-04-02 16:50 returnG 阅读(551) 评论(0) 推荐(0) 编辑
摘要: 题目链接 #include <bits/stdc++.h> using namespace std; int n,m,q; struct edge{ int u; int v; int num; }e[500005]; bool cmp(edge x,edge y){ return x.num>y. 阅读全文
posted @ 2020-08-23 19:24 returnG 阅读(91) 评论(0) 推荐(0) 编辑
摘要: 题目链接 写在前面: ​ 显而易见的线段树开根号模板,网上的题解比比皆是,但大多数的思路是$\sqrt{0}=0,\sqrt{1}=1$,除此之外的都是一个一个开根号,而一个元素最多开6次,所以时间最多可以卡到其它线段树的6倍,而我用的开根号则会尝试不去一个一个地去开根号. 思路: ​ 维护每个线段 阅读全文
posted @ 2020-08-07 11:15 returnG 阅读(97) 评论(0) 推荐(0) 编辑
摘要: 题目链接 思路: ​ 看到此题,第一个想到的是贪心:要从(0.0,5.0)走到(10.0,5.0),就要绕过一些墙,那就会经过一些墙的端点(下文称之为节点),单从样例看来,就会说走到离当前节点距离最小的点就行了,但真的是这样吗? ​ 显然不是,原因有二: 如果起点到终点没有障碍,那么走其它节点是不是 阅读全文
posted @ 2020-08-05 14:43 returnG 阅读(109) 评论(0) 推荐(0) 编辑
摘要: 题目链接 题意: ​ 对于给定序列,求出前奇数个元素的中位数。 思路: ​ 既然要求中位数,根据题目一看,有点类似与滑动窗口那道题,但想了想,不一样。暴力维护队列,O(\(n^2\))的时间复杂度面对十万肯定会爆,再试试之前学过的STL模板的优先队列和set是否可以,发现两者对于中位数的查找似乎显得 阅读全文
posted @ 2020-06-22 20:32 returnG 阅读(166) 评论(0) 推荐(1) 编辑
摘要: 题目链接 题意: ​ 有10000000个元素,给定n对数字A,B,将A,B所在的集合合并(一开始每个元素所在的集合只有它自己),选择一个元素所在的集合,求这个集合的元素个数最多为多少? 思路: ​ 典型的并查集题型,但除了要用到基础的合并外,还多了求集合大小和最大的集合大小的操作,这是需要自己去思 阅读全文
posted @ 2020-06-16 21:42 returnG 阅读(92) 评论(0) 推荐(0) 编辑
摘要: ​ 说起哈夫曼树及其思想,最经典也是最早接触的当属合并果子了。哈夫曼反映的经典贪心思想与其数学逻辑在初学者中独占一席,虽然其思想简单易懂,但其代码实现起来并不简单易懂,网上的代码大多都是用指针、内定义函数、地址符等来实现的,像我这种蒟蒻总是容易看得一头雾水,十分的不友好,考虑到哈夫曼树通常是静态的, 阅读全文
posted @ 2020-06-16 20:32 returnG 阅读(376) 评论(0) 推荐(0) 编辑
摘要: 题目链接 题意: ​ 有两个长度都为N(1<=N<=100000)的序列A和B,在A和B中各取一个数相加可以得到N2个和,求这N2个和中最小的N个。 思路: ​ 首先会想到暴力,O(N^2),一看范围十万,肯定受不了。 ​ 再考虑贪心,以两个队列的头相加,进入前n小的和中,然后选择两头中较大的元素弹 阅读全文
posted @ 2020-06-16 18:32 returnG 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 题目链接 题意: ​ 给定初始长度为np的序列级其排列顺序,以ng为周期,每次在周期内进行比较,只保留周期内最大的元素,重复操作直到只剩最后一个元素(即最大的元素),然后对其进行排名,同一批被刷掉的元素排名相同,计算排名时,前面如果有相同的元素也要算作两个来计。 思路: ​ 将读入的奶牛排好序,然后 阅读全文
posted @ 2020-06-11 20:55 returnG 阅读(110) 评论(0) 推荐(0) 编辑