last

HDU 4638 Group 莫队

混江龙づ霸主 提交于 2019-11-27 20:59:07
注意:这个题中得注意先要移动右指针在移动左指针。 #include<bits/stdc++.h> using namespace std; const int maxn=1e5+10; struct note { int id,l,r,ans; } q[maxn]; int block[maxn]; int mp[maxn]; int num[maxn]; int cmp1(note a,note b) { if(block[a.l]<block[b.l]) return 1; if(block[a.l]>block[b.l]) return 0; return a.r<b.r; } int cmp2(note a,note b) { return a.id<b.id; } int last_l,last_r; int main() { int t; scanf("%d",&t); for(int it=1; it<=t; it++) { last_l=1; last_r=0; memset(mp,0,sizeof(mp)); int n,m; scanf("%d%d",&n,&m); for(int i=1; i<=n; i++) scanf("%d",&num[i]); for(int i=1; i<=m; i++) { scanf("%d%d",&q[i].l,&q[i].r

HDU - 2896 病毒侵袭 (AC自动机,last优化)

吃可爱长大的小学妹 提交于 2019-11-27 20:52:07
题目链接: HDU - 2896 题意:给你n个模式串,对应每个模式串由编号,给出m个文本串,然后你要输出对应所匹配出模式串序号,以及有多少个文本串中有模式串 思路:比起比较基本统计个数,这里我们可以用set或者map来统计模式串序号 这里总结一下新学习的last优化。 参考博客: (1) last相当于一个超级fail指针: 因为我们只有到根节点时才会重新匹配一个字母,所以我们此时直接记录一个last ,直接结束当前匹配过程.直接省去原 Fail 指针到可以匹配的节点之间的距离. 同时结合路径压缩,在匹配时可以完全不使用原 Fail.可以看下参考博客里面的图片。 code: 详细注解 #include<bits/stdc++.h> const int N=100000+5; using namespace std; struct AC_automaton{ int trie[N][128];//字典树 int val[N];//字符串结尾标记 int fail[N];//失配指针 int last[N];//last[i]=j表j节点表示的单词是i节点单词的后缀,且j节点是单词节点(last优化) int tot;//编号 void init(){//初始化0号点 tot=1; val[0]=fail[0]=last[0]=0; memset(trie[0],0,sizeof

数据结构慕课PTA 05-树9 Huffman Codes

核能气质少年 提交于 2019-11-27 20:49:53
题目内容 In 1953, David A. Huffman published his paper "A Method for the Construction of Minimum-Redundancy Codes", and hence printed his name in the history of computer science. As a professor who gives the final exam problem on Huffman codes, I am encountering a big problem: the Huffman codes are NOT unique. For example, given a string "aaaxuaxz", we can observe that the frequencies of the characters 'a', 'x', 'u' and 'z' are 4, 2, 1 and 1, respectively. We may either encode the symbols as {'a'=0, 'x'=10, 'u'=110, 'z'=111}, or in another way as {'a'=1, 'x'=01, 'u'=001, 'z'=000}, both compress

「模拟8.18」字符串(卡特兰数)·乌鸦喝水(树状数组,二分)·所驼门王的宝藏(tarjan,拓扑)

社会主义新天地 提交于 2019-11-27 19:21:48
最近好颓啊,所以啥都做不出来 简单说一下这次考试,分机房了,还分不同考卷,果然我还是留在二机房的蒟蒻, 大概也只有这样的简单题,才能勉强水个rank 3吧........ 其实不必管在哪个机房,努力便好,不必在意什么,这么多的考试,对于成绩的好与坏大概都看淡了,无论如何无愧于心便好。 ************************ T1 字符串 一看就是卡特兰的裸题, 卡特兰........(留坑待补...) 然后C(n+m,n)-C(n+m,m-1)结束了 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<cmath> 5 #include<string> 6 #include<algorithm> 7 #define int long long 8 #define MAXN 2500001 9 using namespace std; 10 const int mod=20100403; 11 int n,m; 12 int jie[MAXN]; 13 int poww(int x,int y) 14 { 15 int ans=1ll; 16 while(y) 17 { 18 if(y&1)ans=ans*x%mod; 19 x=x*x%mod; 20 y>>=1; 21 } 22

HTML文件上传与下载

放肆的年华 提交于 2019-11-27 19:09:35
文件下载 传统的文件下载有两种方法: 使用<a/>标签,href属性直接连接到服务器的文件路径 window.location.href="url" 这两种方法效果一样。但有个很大的问题,如果下载出现异常(连接路径失效、文件不存在、网络问题等),会导致原本的页面被覆盖掉,显示404等错误信息。 大致的优化思路如下: 使用<a/>标签HTML5新的属性download。 使用<iframe><iframe/>元素进行下载。 使用ajax、axios、fetch等方法异步下载。 使用websocket下载。 我们来逐一分析: <a/>标签的download属性,需要和href一起用,download的作用是为下载的文件赋文件名。 如果服务端没有指定文件名,就以此属性规定的名称命名。 如果下载出现异常,该属性的存在能够保证页面不会出问题。 如果服务端返回的不是文件、而是字符,如果download=‘’error.txt”,能够通过打开此文件查看到返回的文本信息。 <iframe>标签可以做到在现有的页面下,内嵌一个子页面。当用户点击文件下载时,将隐藏的iframe元素的src属性指向文件下载路径。 如果没有异常,文件将会直接下载。 如果出现异常,iframe子页面会报错,父页面不会受任何影响。 使用异步请求进行下载。 在网上看了看,大致的流程是

限流常规设计和实例

泄露秘密 提交于 2019-11-27 16:49:45
限流算法 计数器限流 固定窗口 滑动窗口 桶限流 令牌桶 漏桶 计数器 计数器限流可以分为: 固定窗口 滑动窗口 固定窗口 固定窗口计数器限流简单明了,就是限制单位之间内的请求数,比如设置QPS为10,那么从一开始的请求进入就计数,每次计数前判断是否到10,到达就拒绝请求,并保证这个计数周期是1秒,1秒后计数器清零。 以下是利用redis实现计数器分布式限流的实现,曾经在线上实践过的lua脚本: local key = KEYS[1] local limit = tonumber(ARGV[1]) local refreshInterval = tonumber(ARGV[2]) local currentLimit = tonumber(redis.call('get', key) or '0') if currentLimit + 1 > limit then return -1; else redis.call('INCRBY', key, 1) redis.call('EXPIRE', key, refreshInterval) return limit - currentLimit - 1 end 一个明显的弊端就是固定窗口计数器算法无法处理突刺流量,比如10QPS,1ms中来了10个请求,后续的999ms的所有请求都会被拒绝。 滑动窗口 为了解决固定窗口的问题

ORACLE常用函数

不羁岁月 提交于 2019-11-27 16:31:49
知道了基础查询语句,就需要了解与其相关的一些常用函数,根据我自己了解过的知识而言大概分为单行函数,分组函数。下面我就以单行和分组两个部分来整理了它的一些知识用法。 单行函数顾名思义它只对只对一行进行变换,每行返回一个结果。它包括字符.数值.日期.转换.通用。 字符函数有大小写控制函数,字符控制函数。LOWER转大写为小写,upper转小写为大写。 (select lower(last_name) from employees).再说字符控制函数,它的种类就多余前者。 ①CONCAT 连接字符串要显示全名,前面用到过||字符串连接符,当然也可以用concat。 (select concat(last_name,first_name) from employees) ②SUBSTR 截取指定的字符串位置。(select substr(‘last_name’,1,5) from employees) ③LENGTH字符串长度,(select length(‘last_name’) from employees) ④INSTR(select instr(‘last_name’,‘n’) from employees)判断字符的位置 ⑤LPAD(select LPAD(salary,10,’ ’) from employees)左补齐⑥RPAD右补齐 用法同左补齐 ⑦TRIM去除选中部分

[LeetCode] 203. 移除链表元素

假如想象 提交于 2019-11-27 16:31:28
题目链接: https://leetcode-cn.com/problems/remove-linked-list-elements/ 题目描述: 删除链表中等于给定值 val 的所有节点。 示例: 输入: 1->2->6->3->4->5->6, val = 6 输出: 1->2->3->4->5 思路: 迭代 class Solution: def removeElements(self, head: ListNode, val: int) -> ListNode: dummy = ListNode(0) dummy.next = head prev = dummy last = prev.next while last : if last.val == val: prev.next = last.next last = prev.next else: prev = prev.next last = prev.next return dummy.next 递归 class Solution: def removeElements(self, head: ListNode, val: int) -> ListNode: if not head: return head.next = self.removeElements(head.next, val) return head

The last discussion about the inherit

纵饮孤独 提交于 2019-11-27 16:07:16
point about inherit:   1:subclass can get SuperClass`s message   2:subclass rewrite SuperClass`s message   3:many subclass Share a piece of memory the inherit plan in javascript   1:subClass get superClass by __proto__   2:subClass can reWrite superClass   3:when subClass initialize,is must initialize superClass by call    the principle about instence   current instence keeping find the attrbute by __proto__,such as:    var a = new A(); a instence Object?   1:a.__proto__ != Object.prototype   2:a.__proto__ -> A.prototype so we judge:A.prototype.__proto__ == Object.protype   so a.__proto__._

牛客——数据库实战(31~61)

我与影子孤独终老i 提交于 2019-11-27 15:58:01
文章目录 31. 获取select 32. 将employees表的所有员工的last_name和first_name拼接起来作为Name,中间以一个空格区分 33. 创建一个actor表,包含如下列信息 34. 批量插入数据 35. 批量插入数据,如果数据已经存在,请忽略,不使用replace操作 36. 创建一个actor_name表,将actor表中的所有first_name以及last_name导入改表 37. 对first_name创建唯一索引uniq_idx_firstname,对last_name创建普通索引idx_lastname 38. 针对actor表创建视图actor_name_view 39. 针对上面的salaries表emp_no字段创建索引idx_emp_no,查询emp_no为10005, 40. 在last_update后面新增加一列名字为create_date 41. 构造一个触发器audit_log,在向employees表中插入一条数据的时候,触发插入相关的数据到audit中 42. 删除emp_no重复的记录,只保留最小的id对应的记录。 43. 将所有to_date为9999-01-01的全部更新为NULL 44. 将id=5以及emp_no=10001的行数据替换成id=5以及emp_no=10005,其他数据保持不变