UVAlive 3135 Argus Argus Time Limit: 3000MS   Memory Limit: Unknown   64bit IO Format: %lld & %llu Submit Status Description A data stream is a real-time, continuous, ordered sequence of items. Some examples include sensor data, Internet traffic, fin…
#include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> #include<string> #include<cmath> #include<map> #include<set> #include<vector> #include<algorithm> #include<stack> #in…
UVAlive 3026 Period 题目: Period   Time Limit: 3000MS   Memory Limit: Unknown   64bit IO Format: %lld & %llu Submit Status Description For each prefix of a given string S with N characters (each character has an ASCII code between 97 and 126, inclusive…
UVAlive 3942 Remember the Word 题目: Remember the Word   Time Limit: 3000MS   Memory Limit: Unknown   64bit IO Format: %lld & %llu Submit Status Description Neal is very curious about combinatorial problems, and now here comes a problem about words. Kn…
UVAlive 4329 Ping pong 题目: Ping pong Time Limit: 3000MS   Memory Limit: Unknown   64bit IO Format: %lld & %llu Submit Status Description N(3N20000) ping pong players live along a west-east street(consider the street as a line segment). Each player ha…
UVAlive 3027 Corporative Network 题目:   Corporative Network Time Limit: 3000MS   Memory Limit: 30000K Total Submissions: 3450   Accepted: 1259 Description A very big corporation is developing its corporative network. In the beginning each of the N ent…
UVAlive X-Plosives 思路:    “如果车上存在k个简单化合物,正好包含k种元素,那么他们将组成一个易爆的混合物”  如果将(a,b)看作一条边那么题意就是不能出现环,很容易联想到Kruskal算法中并查集的判环功能(新加入的边必须属于不同的两个集合否则出现环),因此本题可以用并查集实现.模拟装车过程即可. 代码: #include<cstdio> #include<cstring> #define FOR(a,b,c) for(int a=(b);a<(c…
UVAlive 4670 Dominating Patterns 题目:   Dominating Patterns   Time Limit: 3000MS   Memory Limit: Unknown   64bit IO Format: %lld & %llu Submit Status Description The archaeologists are going to decipher a very mysterious ``language". Now, they kno…
用优先队列维护每个时间点优先级最高的元素. #include<iostream> #include<cstdio> #include<cstdlib> #include<stack> #include<queue> #include<vector> #include<map> using namespace std; int n,m; struct Item { int Qnum,Period,Time; bool ope…
https://vjudge.net/problem/UVALive-3135 题意: 有一个系统有多个指令,每个指令产生一个编号为qnum的时间,每个指令的触发间隔不相同,现在给出若干个指令,现在的任务是模拟前k个事件. 如果时间在同一时间发生,那么qnum小的先输出. 思路: 很多相同的数值在同一时刻内,数值小的先输出,那么就是求若干个中最小的,那么就可以用优先队列进行维护. 这里,因为时间范围较小,之后每个事件的时间取余,那么符合的就把一个结构体扔进优先队列,这个结构体包括了qnum,pe…
有一系列的事件,它每Period秒钟就会产生编号为qNum的事件,你的任务是模拟出前k个事件,如果多个事件同时发生,先处理qNum小的事件 今天再看看数据结构.. #include <iostream> #include <cstdio> #include <sstream> #include <cstring> #include <map> #include <set> #include <vector> #includ…
UVa11991 Easy Problem from Rujia Liu?  思路:  构造数组data,使满足data[v][k]为第k个v的下标.因为不是每一个整数都会出现因此用到map,又因为每个数出现次数不等可能相差很大,因此用到vector. 注意:对于数据的清空与判空不要忘记,而map在调用之前必须有map.count的检查. 代码: #include<cstdio> #include<map> #include<vector> using namespac…
UVa11995  I Can Guess the Data Structure! 思路:边读边模拟,注意empty的判断! 代码如下: #include<iostream> #include<queue> #include<stack> using namespace std; int main(){ queue<int> q; priority_queue<int> pri_q; stack<int> sta; int n; wh…
范围最小值问题: 提供操作: Query(L,R):计算min{AL ~ AR } Sparse-Table算法: 定义d[i][j]为从i开始长度为2j的一段元素的最小值.所以可以用递推的方法表示. 预处理RMQ_init如下(感觉像区间DP): int RMQ_init(const vector<int>& A){ int n=A.size(); ;i<n;i++) d[i][] = A[i]; ;(<<j)<=n;j++) ;i+(<<j)-&…
Aho-Corasick自动机  算法: <功能> AC自动机用于解决文本一个而模板有多个的问题. AC自动机可以成功将多模板匹配,匹配意味着算法可以找到每一个模板在文本中出现的位置. <解释> KMP中对模板构造失配边,多模板每条模板独立构造失配边太过麻烦. 算法利用Trie+KMP中的失配边.insert(模板) 构造Trie+ getFail添加失配边->AC自动机的状态转移图. 匹配文本串text时只需要调用find,find依次匹配text中的每一个字符失败则沿着失…
KMP算法 KMP算法是字符串匹配算法,可以在O(n)的时间完成,算法包含两部分,分别是:构造适配函数与两串匹配. 失配边的使用大大提高了算法效率,可以理解为已经成功匹配的字符不在重新匹配,因为我们已经知道它是什么,对应到算法中 匹配失败后应该在最大前缀之后继续匹配,因为某后缀已与最大前缀匹配成功而不用重新比较. 以下为代码实现: + ; void getFail(char* P,int* f){ //构造失配边 int n=strlen(P); f[]=f[]=; ;i<n;i++){ //自…
前缀树Trie Trie可理解为一个能够快速插入与查询的集合,无论是插入还是查询所需时间都为O(m) 模板如下: +; ; struct Trie{ int ch[maxnode][sigma_size]; int val[maxnode]; int sz; ; memset(ch[],,])); } int ID(char c){ return c='a'; }; void insert(char* s,int v){ //向Trie中插入 , n=strlen(s); ;i<n;i++) {…
UVa 11235 Frequent values Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 11241   Accepted: 4110 Description You are given a sequence of n integers a1 , a2 , ... , an in non-decreasing order. In addition to that, you are given several qu…
UVa11997 K Smallest Sums  题目: K Smallest Sums You're given k arrays, each array has k integers. There are kk ways to pick exactly one element in each array and calculate the sum of the integers. Your task is to find the k smallest sums among them. In…
看下面这个问题(动态连续和查询): 有一个数组A(长度为n),要求进行两种操作: add(i,x):让Ai增大x: query(a,b):询问Aa+Aa+1+...+Ab的和: 若进行模拟,则每次query操作的最坏的时间复杂度为O(n),在n较大时速度较慢.用前缀和也不能提高效率(每次add操作最坏为O(n)).有一种数据结构,可以在O(n)时间里初始化,用O(logn)的速度执行add操作或查询前缀和,从而执行query操作. 首先,我们来介绍“lowbit”.对于一个数x,lowbit(x…
概要   熟悉 Python 的都知道字典 Dict 类型数据结构功能的强大,Matlab 中虽然有表结构,但是其列名必须是亦变量名类型的字符串,如果我想用数字开头的字符串作键值,其表结构就无能为力了.此时 containers.Map 就派上用场了.   初始化操作   containers.Map 初始化一般有两种方式.第一种是先声明一个 Map 对象,然后依次添加键值对,示例如下: >> stocks = containers.Map; % 声明 Map 对象 >> stoc…
看题:传送门 大意就是让你编写一个称为argus的系统,这个系统支持一个register的命令: Register  Q_num Period 该命令注册了一个触发器,它每Period秒就会残生一个编号为 Q_num的事件.你的任务就是模拟出前k个事件.如果多个事情同时发生,先处理Q_num小的事件. 优先队列的使用. 练习了用struct类自定义优先级. #include<iostream> #include<cstring> #include<cstdio> #in…
A: http://acm.hust.edu.cn/vjudge/contest/view.action?cid=83690#problem/A 题意:N*M的格子,从左上走到右下,要求在每个点的权值必须大于0,问起始的时候必须有多少能量 思路:二分答案 #include<iostream> #include<cstdio> #include<string> #include<cstring> #include<vector> #include&…
3135 - Argus A data stream is a real-time, continuous, ordered sequence of items. Some examples include sensordata, Internet traffic, financial tickers, on-line auctions, and transaction logs such as Web usage logsand telephone call records. Likewise…
一.简介 Folly是,Facebook于2012年6月初开源的一个基于C++11的C++组件库,提供了类似Boost库和std库的功能,包括散列.字符串.向量.内存分配.位处理等,以满足大规模高性能的需求,对Boost和std进行很好的补充和增强.Folly主要进行了速度上的提高.内存优化,以及数据结构类型的丰富.Folly由分布在61个头文件(还有20个cpp实现文件),40多个组件构成,涉及内存管理(Arena等).高性能的数据结构(string和vector等).实用数据结构(延时队列)…
MINIX3 进程通信分析 6.1MINIX3 进程通信概要 MINIX3 的进程通信是 MINIX3 内核部分最重要的一个部件,我个人认为其实这 是内核中的“内核”,怎么来理解这个概念呢?其实 MINIX3 进程间通信部件的 实行不完全依赖任何一个部件,这个在后面会详细的看到.Minix3  实现进程通 信的方法是----消息机制.何为消息机制呢? 就是进程 A 有消息发送进程 B,希望进程 B 给进程 A 一个服务,进程 A 和 B 在 这里就发生了进程间的通信 注意这里的消息机制其实是不受…
C 语言资源大全中文版 我想很多程序员应该记得 GitHub 上有一个 Awesome - XXX 系列的资源整理.awesome-c 是 koz.ross 发起维护的 C 语言资源列表,内容包括了:构建系统.编译器.数据库.加密.初中高的教程/指南.书籍.库等等. Awesome 系列虽然挺全,但基本只对收录的资源做了极为简要的介绍,如果有更详细的中文介绍,对相应开发者的帮助会更大.这也是我们发起这个开源项目的初衷. 我们要做什么? 基于 awesome-c 列表,我们将对其中的各个资源项进行…
JVM初探-使用堆外内存减少Full GC 标签 : JVM 问题: 大部分主流互联网企业线上Server JVM选用了CMS收集器(如Taobao.LinkedIn.Vdian), 虽然CMS可与用户线程并发GC以降低STW时间, 但它也并非十分完美, 尤其是当出现Concurrent Mode Failure由并行GC转入串行时, 将导致非常长时间的Stop The World(详细可参考JVM初探- 内存分配.GC原理与垃圾收集器). 解决: 由GCIH可以联想到: 将长期存活的对象(如L…
ST表是用来求RMQ问题(求区间最大或最小值问题)的实用数据结构,支持\(O(nlog_n)\)建立,\(O(1)\)查询,是比较高效的结构 其原理实质上是DP(我最讨厌的东西) 题面:屠龙宝刀... 这是一道ST表经典题--静态区间最大值 请注意最大数据时限只有0.8s,数据强度不低,请务必保证你的每次查询复杂度为 O(1) 本题所需处理仔细琢磨琢磨就是DP,先完成范围小一些的任务,然后再进行状态转移 转移方程(就是完成左右两区间处理后合并): \(f_{i,j}=max(f_{i,j-1},…
原创,转载请注明出处! 程序具有一下功能窗口界面1,Input输入(读入文件,所有的文件都读入)2,Output输出(检验是否读取正确,从结构体数组读入)3,Length统计(此文件里有110本图书)4,Locate查找(根据图书的名字查找,可根据输入的图书名称查找该图书所在的位置从1开始,满足该名称的图书有多本,都要输出,输出满足条件图书的所有信息)5,Get(该查找有个位置i,找出该列表中第i本书的信息,结果唯一)6,Insert(i,插入新的图书,在指定位置i插入图书,总数+1,反映到文件…