last

玩具谜题

妖精的绣舞 提交于 2019-12-31 03:15:55
传送门: https://www.luogu.org/problemnew/show/P1563 模拟即可(这句话同样不是bb机说的 #include<cstdio> using namespace std; int n,m,x,y,last; struct node { int a; char s[10]; }t[100000]; int main() { scanf("%d%d",&n,&m); for(int i = 0;i < n;i++) { scanf("%d%s",&t[i].a,t[i].s); } for(int i = 1;i <= m;i++) { scanf("%d%d",&x,&y); if(x == 0)//左数 { if(t[last].a == 0)//小人朝里 { while(y != 0) { if(last - y >= 0) { last -= y; y = 0; } else { y -= last+1; last = n-1; } } } else//小人朝外 { last += y; last %= n; } } else//右数 { if(t[last].a == 0) { last += y; last %= n; } else { while(y != 0) { if(last - y >= 0) { last -= y; y =

超强PHP分页类(转自PHPCHINA)

我们两清 提交于 2019-12-30 03:35:02
<? /* * * filename: ext_page.class.php * @package:phpbean * @author :feifengxlq<feifengxlq#gmail.com><[url=http://www.phpobject.net/]http://www.phpobject.net/[/url]> * @copyright :Copyright 2006 feifengxlq * @license:version 2.0 * @create:2006-5-31 * @modify:2006-6-1 * @modify:feifengxlq 2006-11-4 * description:超强分页类,四种分页模式,默认采用类似baidu,google的分页风格。 * 2.0增加功能:支持自定义风格,自定义样式,同时支持PHP4和PHP5, * to see detail,please visit [url=http://www.phpobject.net/blog/read.php]http://www.phpobject.net/blog/read.php[/url]? * example: * 模式四种分页模式: require_once('../libs/classes/page.class.php'); $page=new page(array

Python 正则表式

大兔子大兔子 提交于 2019-12-29 21:33:20
1.1 查找文本中的模式 1 import re 2 pattern = 'this' 3 text = 'Does this text match the pattern?' 4 match = re.search(pattern,text) 5 6 s = match.start() 7 e = match.end() 8 9 print(match.re.pattern,match.string,s,e,text[s:e]) 1.2 编译表达式 1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 import re 4 5 regexes = [re.compile(p) for p in ['this','that']] 6 text = 'Does this text match the pattern?' 7 print("Text: %r\n",text) 8 9 for regex in regexes: 10 print('Seeking "%s" ->' % regex.pattern) 11 if regex.search(text): 12 print('Match') 13 else: 14 print("No match!") 1.3 多重匹配 1 import re 2 text =

Hotspot 垃圾回收之BarrierSet(二) 源码解析

ぃ、小莉子 提交于 2019-12-28 20:18:41
目录 一、CardTableExtension 1、定义 2、resize_covered_region 二、G1SATBCardTableLoggingModRefBS 1、write_ref_field_pre_work /write_ref_array_pre 2、set_card_claimed /g1_mark_as_young /mark_card_deferred 三、G1SATBCardTableLoggingModRefBS 1、构造方法和initialize 2、G1SATBCardTableLoggingModRefBSChangedListener 3、write_ref_field_work /write_region_work /write_ref_array_work /invalidate 4、resize_covered_region 本篇继续上一篇 《Hotspot 垃圾回收之BarrierSet(一) 源码解析》 探讨BarrierSet其他的子类的实现。 一、CardTableExtension 1、定义 CardTableExtension的定义在hotspot/src/share/vm/gc_implementation/parallelScavenge/cardTableExtension.hpp中

实验16配置PPP

半世苍凉 提交于 2019-12-28 13:33:11
实验任务一:PPP协议基本配置 建立物理连接 接口配置Ppp协议 [RTA-Serial1/0]link-protocol ppp [RTB-Serial1/0]link-protocol ppp [RTA-Serial1/0]baudrate 2048000 [RTA-Serial1/0]display interface Serial 1/0 Serial1/0 Current state: UP Line protocol state: UP Description: Serial1/0 Interface Bandwidth: 64 kbps Maximum transmission unit: 1500 Hold timer: 10 seconds, retry times: 5 Internet address: 10.1.1.1/30 (primary) Link layer protocol: PPP LCP: opened, IPCP: opened Output queue - Urgent queuing: Size/Length/Discards 0/100/0 Output queue - Protocol queuing: Size/Length/Discards 0/500/0 Output queue - FIFO queuing: Size

[Daily Coding Problem] 16. Last N order ids implementation

ぃ、小莉子 提交于 2019-12-28 11:35:00
This problem was asked by Twitter. You run an e-commerce website and want to record the last N order ids in a log. Implement a data structure to accomplish this, with the following API: record(order_id): adds the order_id to the log get_last(i): gets the ith last element from the log. i is guaranteed to be smaller than or equal to N. You should be as efficient with time and space as possible. Implementing a circular buffer suffices the requirement. It takes O(1) to record and get last ith. 1 public class LogDataStructure { 2 private int maxSize; 3 private int[] circularBuffer; 4 private int

nginx正则配置解释和fastadmin

你。 提交于 2019-12-28 07:24:02
参考: http://www.cnblogs.com/netsa/p/6383094.html 1 2 3 4 5 6 7 8 9 10 11 1、^: 匹配字符串的开始位置; 2、 $:匹配字符串的结束位置; 3、.*: .匹配任意字符,*匹配数量0到正无穷; 4、\. 斜杠用来转义,\.匹配 . 特殊使用方法,记住记性了; 5、(值1|值2|值3|值4):或匹配模式,例:(jpg|gif|png|bmp)匹配jpg或gif或png或bmp 6、i不区分大小写   一.正则表达式匹配,其中: * ~ 为区分大小写匹配 * ~* 为不区分大小写匹配 * !~和!~*分别为区分大小写不匹配及不区分大小写不匹配 二.文件及目录匹配,其中: * -f和!-f用来判断是否存在文件 * -d和!-d用来判断是否存在目录 * -e和!-e用来判断是否存在文件或目录 * -x和!-x用来判断文件是否可执行 三.rewrite指令的最后一项参数为flag标记,flag标记有: 1.last 相当于apache里面的[L]标记,表示rewrite。 2.break本条规则匹配完成后,终止匹配,不再匹配后面的规则。 3.redirect 返回302临时重定向,浏览器地址会显示跳转后的URL地址。 4.permanent 返回301永久重定向,浏览器地址会显示跳转后的URL地址。

【SPOJ 8093】Sevenk Love Oimaster

大兔子大兔子 提交于 2019-12-27 19:34:30
http://www.spoj.com/problems/JZPGYZ/ 查询一个询问串在上面n个串中多少个串的子串。 后缀数组+主席树,常熟有点大。。。 建出广义SAM,利用parent树的dfs序,每次相当于询问parent树的一个子树中出现了多少不同的颜色。 可以用主席树统计,pre表示dfs序上与这个位置属于同一个串的前一个位置在哪,主席树询问区间内的pre小于这个区间左端点的个数(也就是不同的颜色数)。 或者更方便地,把每个询问拆成parent树dfs序上的两个前缀和相减。 离线排序前缀和从左到右用bits维护pre为权值的树状数组并且查询小于某个区间左端点的pre的个数,统计答案时做一下减法就可以了(类似主席树)。 时间复杂度 \(O(n\log n)\) 。 还有不科学的暴力的做法,对于n个模板串,暴力在parent树上打标记,时间复杂度 \(O(n^2)\) 。 数据并没有卡这种做法。于是我本着复习广义后缀自动机的原则(和懒得写bits的原则),只写了这种暴力的做法。。。 将近花了一天重新脑补了一下广义SAM,感觉以前直接套用普通SAM的插入模板导致多出来了一些点不美观(当然多出来的这些点都可以合并到它们的parent),就重写了一下不会多出来点的广义SAM模板,常数更大,代码更长qwq,但保证所有节点的Right集合都是它们parent的Right集合的真子集

【算法】点分治初探

爱⌒轻易说出口 提交于 2019-12-27 07:23:17
参考: http://blog.csdn.net/nixinyis/article/details/65445466 【简介】   点分治是一类用于处理树上路径点权统计问题的算法, 其利用重心的性质降低复杂度。 【什么是重心】   某个其所有的子树中最大的子树节点数最少的点被称为重心,删去重心后,生成的多棵树尽可能平衡。 【重心的性质】   ①重心其所有子树的大小都不超过$\frac{n}{2}$。   ②树中所有点到某个点的距离和中,到树的重心的距离和是最小的,如果有两个重心,那么到它们的距离和相同。   ③把两棵树通过两个点相连得到一棵新的树,新的树的重心必定在连接两棵树的重心的路径上。   ④一棵树添加或删除一个节点,树的重心最多会移动一条边的位置。   点分治的复杂度基于重心的第一个性质。 【点分治】   点分治是对于每一棵子树,都求出它的重心,并且以重心为根跑一遍这棵子树并统计经过重心的路径,因为我们知道重心所有子树的大小都只有原树的一半,也就是我们这么做最多只会递归$logn$层,若一层的复杂度$O(f(n))$,则总的时间复杂度为$O(f(n)logn)$。   接下来以bzoj1468: Tree为例题讲一下点分治。   对于这道题,显然用上方说的方法,对于每一个子树求出dep,排序后两端指针往中间靠拢统计即可。但是可能会统计重复,如下图

后缀数组

旧巷老猫 提交于 2019-12-27 04:24:18
追随蔡大神的脚步,开始后缀数组的学习。 http://www.cnblogs.com/EC-Ecstasy/ //时间不够不定时不定期完善 一、后缀数组的定义 把一个字符串的后缀全部搞出来,比如“aabaaaab”的后缀就是"aabaaaab”,“abaaaab”,“baaaab”,“aaaab”,“aaab”,“aab”,“ab”,“b”,分别编号为1,2,3,4,5,6,7,8。 然后就有两个数组,一个是rank[],一个是sa[]。rank[i]表示第i个后缀排在第几名,sa[i]表示排第i名是哪个后缀。显然这两个数组为逆运算。(sa[rank[i]]=i,rank[sa[i]]=i) 基排倍增写法。 每次倍增,分两个关键字。 模版1(远古写法) var s:ansistring; n,tot:longint; c,x,y,rank,sa:array[0..1000]of longint; procedure first; var i:longint; begin readln(s); n:=length(s); for i:=1 to n do x[i]:=ord(s[i]); fillchar(c,sizeof(c),0); for i:=1 to n do inc(c[x[i]]); for i:=1 to 128 do inc(c[i],c[i-1]); for i: