数据结构与算法
文章平均质量分 57
breeze_blows
这个作者很懒,什么都没留下…
展开
-
大数阶乘(C语言实现)
本来java里面会有大数类比较容易实现这些大数的运算,但是用c语言就要用到一些转化了,一下附上源代码#include <stdio.h>#include <string.h>int main(){ char a[50], b[50]; scanf("%s %s", a, b); int n1 = strlen(a), n2 = strlen(b); in...原创 2017-06-28 22:54:02 · 1498 阅读 · 0 评论 -
历届试题 国王的烦恼
历届试题 国王的烦恼 时间限制:1.0s 内存限制:256.0MB 问题描述 C国由n个小岛组成,为了方便小岛之间联络,C国在小岛间建立了m座大桥,每座大桥连接两座小岛。两个小岛间可能存在多座桥连接。然而,由于海水冲刷,有一些大桥面临着不能使用的危险。 如果两个小岛间的所有大桥都不能使用,则这两座小岛就不能直接到达了。然而,只要这两座小岛的居民能通过其他的桥或者其他的小岛互相到...原创 2018-06-19 14:34:18 · 444 阅读 · 0 评论 -
标题:日志统计
标题:日志统计小明维护着一个程序员论坛。现在他收集了一份"点赞"日志,日志共有N行。其中每一行的格式是:ts id 表示在ts时刻编号id的帖子收到一个"赞"。 现在小明想统计有哪些帖子曾经是"热帖"。如果一个帖子曾在任意一个长度为D的时间段内收到不少于K个赞,小明就认为这个帖子曾是"热帖"。 具体来说,如果存在某个时刻T满足该帖在[T, T+D)这段时间内(注意是左闭右开区间)收到不少于K...原创 2018-04-29 15:46:45 · 1577 阅读 · 0 评论 -
bitset的运用
标题:明码汉字的字形存在于字库中,即便在今天,16点阵的字库也仍然使用广泛。16点阵的字库把每个汉字看成是16x16个像素信息。并把这些信息记录在字节中。一个字节可以存储8位信息,用32个字节就可以存一个汉字的字形了。把每个字节转为2进制表示,1表示墨迹,0表示底色。每行2个字节,一共16行,布局是: 第1字节,第2字节 第3字节,第4字节 .... 第31字节, 第32字...原创 2018-04-29 11:15:38 · 376 阅读 · 0 评论 -
乘积尾零
标题:乘积尾零如下的10行数据,每行有10个整数,请你求出它们的乘积的末尾有多少个零?5650 4542 3554 473 946 4114 3871 9073 90 4329 2758 7949 6113 5659 5245 7432 3051 4434 6704 3594 9937 1173 6866 3397 4759 7557 3070 2287 1453 9899 1486 5722 3...原创 2018-04-29 11:13:26 · 1177 阅读 · 0 评论 -
连续子数组的最大乘积、最小乘积
#include <stdio.h>#include <iostream>#include <algorithm>using namespace std;int main(){ int a[10]; int n; cin >> n; for(int i = 0; i < n; ++i) { cin >>...原创 2018-05-01 10:16:28 · 897 阅读 · 0 评论 -
并查集的运用
1.简单运用例题:L2-010 排座位2.与set的综合运用例题:L2-024 部落3.与结构体数组排序综合运用例题:L2-007 家庭房产原创 2018-05-01 10:24:50 · 281 阅读 · 0 评论 -
set的运用
1.用set去掉集合中的重复元素例题:L2-005 集合相似度2.利用set进行自动排序,与进行相应元素的删除,速度快例题:L2-014 列车调度(对比运行速度)3.用set检验某元素是否存在与现集合中,进行insert操作,如果大小没变,证明存在例题:L2-019 悄悄关注...原创 2018-04-30 15:23:14 · 196 阅读 · 0 评论 -
01背包与完全背包问题
介绍01背包与完全背包的思想与一些应用一.01背包/*10 53 52 34 46 105 8*//*//方法一: #include <stdio.h>#include <iostream>#include <algorithm>using namespace std;int main(){ int m, n; int a[...原创 2018-03-05 22:34:52 · 805 阅读 · 0 评论 -
c++中vector,stack,queue,set, string的常用操作
介绍c++ STL中关于vector,stack,queue,set的一些常用操作一.vectorvector<int> v;v.size(); //大小v.empty(); //为空返回truev.push_back(val); //末尾添加元素v.pop_back(); //末尾删除元素v.insert(v.begin(),val);//在最前面插入新元...原创 2018-01-25 12:40:34 · 1038 阅读 · 0 评论 -
一个大小为n的数组,里面的数都属于范围[0, n-1],有不确定的重复元素,找到至少一个重复元素,要求O(1)空间和O(n)时间
转自:点击打开链接这个题目要求用O(n)的时间复杂度,这意味着只能遍历数组一次。同时还要寻找重复元素,很容易想到建立哈希表来完成,遍历数组时将每个元素映射到哈希表中,如果哈希表中已经存在这个元素则说明这就是个重复元素。因此直接使用C++ STL中的hash_set(参见《STL系列之六 set与hash_set》)可以方便的在O(n)时间内完成对重复元素的查找。 但是题目却在空间复杂度上有限...转载 2018-07-10 15:50:51 · 1338 阅读 · 0 评论