【GDOI2017 day1】微信

GDOI2017总结 GDOI2017总结By Semiwaker 阅读详情

题目大意:

给出20棵trie。

每次询问问某几棵trie的子串的lcs。

总长小于10^6。

题解:

已经退役的wyx当时说:“又是裸题,真没意思。”

呵呵。可惜初二的我连后缀自动机是什么都不知道,只会那个弱弱的AC自动机。

如果没有每次的询问,那么这个跟SPOJ的lcs2没有什么区别,这个只是广义后缀自动机。

前一篇博客已经讲过,广义后缀自动机和正常的真的没有毛线区别。

现在重点在于每次询问某几棵怎么办?

只有20个trie启发我们暴力一次算出所有的答案,存下来,O(1)回答。

做法是合并二十个trie。

每个点存一个二进制状态表示从根到它的路径是哪些原来的trie的公共部分。

那么我们把这个点丢到SAM里去,它对应状态所代表的子串显然可以在这个二进制状态的基础上,所以or一下。

由于一个状态的right一定是虚边父亲的right的子集,所以Turpo一下,给它的父亲也or一下。

每个状态x所代表的最大长度是step[x],所以去个max。

最后注意如果有二进制状态x,y,x是y的子集,既然y所对应的lcs有这么长,x更少,那么一定也可以。所以-每个二进制状态也要给子状态传一下答案。

时间复杂度是O(2n∗n+106)。

Code:

#include<cstdio> 
#include<cstring>
#define fo(i, x, y) for(int i = x; i <= y; i ++)
#define max(a, b) ((a) > (b) ? (a) : (b))
using namespace std;

const int N = 1e6 + 5;

int a2[21];

int n, Q, x; char s[N];

int next[N][26], tot, last[N], fa[N], z[N];

int ans[1048577];

struct suffix_automation {
    int tot, fa[N * 2], son[N * 2][26], dep[N * 2], z[N * 2];
    #define push(v) dep[++ tot] = v;
    int Extend(int last, int c, int zz) {
        push(dep[last] + 1);
        int p = last, np = tot; z[np] |= zz;
        for(; p && !son[p][c]; p = fa[p]) son[p][c] = np;
        if(!p) fa[np] = 1; else {
            int q = son[p][c];
            if(dep[p] + 1 < dep[q]) {
                push(dep[p] + 1);
                int nq = tot; z[nq] |= zz;
                memcpy(son[nq], son[q], sizeof son[q]);
                fa[nq] = fa[q]; fa[q] = fa[np] = nq;
                for(; son[p][c] == q; p = fa[p]) son[p][c] = nq;
            } else fa[np] = q;
        }
        last = np;
        return last;
    }
    int d[N * 2], r[N * 2];
    void Turpo() {
        fo(i, 1, tot) r[fa[i]] ++;
        int st = 1, en = 0;
        fo(i, 1, tot) if(!r[i]) d[++ en] = i;
        for(; st <= en; st ++) {
            int x = d[st]; z[fa[x]] |= z[x];
            if(!(-- r[fa[x]])) d[++ en] = fa[x];
        }
    }
    void Gao() {
        fo(i, 1, tot) ans[z[i]] = max(ans[z[i]], dep[i]);
        for(int i = a2[n] - 1; i >= 1; i --) {
            fo(j, 0, n - 1) if(i & a2[j])
                ans[i - a2[j]] = max(ans[i - a2[j]], ans[i]);
        }
    }
} suf;

void dg(int x, int F, int c) {
    if(x == 0) {
        last[x] = suf.tot = 1;
    } else {
        last[x] = suf.Extend(last[F], c, z[x]);
    }
    fo(j, 0, 25) if(next[x][j]) {
        int y = next[x][j];
        dg(y, x, j);
    }
}


int main() {
    freopen("wechat.in", "r", stdin);
    freopen("wechat.out", "w", stdout);
    a2[0] = 1; fo(i, 1, 20) a2[i] = a2[i - 1] * 2;
    scanf("%d", &n);
    fo(i, 1, n) {
        scanf("%s", s);
        int m = strlen(s);
        x = 0; z[x] |= a2[i - 1];
        fo(j, 0, m - 1) {
            if(s[j] == '<') {
                x = fa[x];
            } else {
                int c = s[j] - 'a';
                if(next[x][c] == 0) next[x][c] = ++ tot, fa[tot] = x;
                x = next[x][c];
                z[x] |= a2[i - 1];
            }
        }
    }
    dg(0, 0, 0);
    suf.Turpo();
    suf.Gao();
    for(scanf("%d", &Q); Q; Q --) {
        scanf("%s", s);
        x = 0;
        fo(i, 0, n - 1) x += a2[i] * (s[i] == '1');
        printf("%d\n", ans[x]);
    }
}
Slurm集群调度策略详解(1)-主调度 Slurm调度系统中针对作业的调度主要有三种,主调度,回填调度,GANG调度,这篇文章主要针对主调度进行解析。 阅读详情

相关推荐

安信可TB蓝牙模组系列 实战Ble Mesh智能照明系统搭建

本文详细介绍了如何使用安信可TB蓝牙模组系列搭建Ble Mesh智能照明系统。从硬件准备、固件烧录到手机APP组网全流程,提供了实战步骤和优化建议,特别适合智能家居开发者入门。Ble Mesh的自组网能力解决了蓝牙传输距离限制,实现全屋灯光智能控制。

weixin_30856725的博客 353

【GDSOI2017】中学生数据结构题

DescriptionInput第一行有一个整数 N,表示 S 国城市的数量。 接下来有 N-1 行,每行两个数 u,v 表示一条道路。 第 N+1 行为一个整数 Q,表示接下来有 Q 个操作。 接下来有 Q 行,每行表示一个操作,格式如题目描述所示。 Output对于每一个 QUERY 操作,输出一个数,表示询问的当前编号为 X 和编号为 Y 的城市的最短路径间的城市 (包括编号为 X 的城

Jacky35 565

实测对比:Gromacs GPU版vsCPU版性能差异到底有多大?2023最新基准测试

本文通过2023年最新基准测试,详细对比了Gromacs GPU版与CPU版的性能差异。测试显示,GPU版本在计算速度上可提升54倍,同时显著降低内存需求和能耗成本。文章还提供了GPU版安装优化实践和硬件选购指南,为计算生物学研究提供关键参考。

weixin_29243063的博客 337

【gdoi2017总结】

第一天第一题正常kmp,对拍过了,常数控制得比较好。第二题dfs序搞一下,题目没读懂,只码了20分,拿到了该有的分。第三题广义sam,不会算法死穴。第四题生成函数,卡特兰数次幂fft,不会公式推导,不会算法死穴。小结出题人丧病,不好好出题面,读题能力差,真的读了好几遍问了评委还是读错了,还是好好学语文吧。高级算法不会,公式推导不会,之前给太多理由自己去放弃一些知识,之后不要放过任何一个出现过的知识点

inklutcuah’s blog 592

YOLOv11 TensorRT极致加速:C++部署性能优化完全指南

购买即可解锁300+YOLO优化文章,并且还有海量深度学习复现项目,价格仅需两杯奶茶的钱,别人有的本专栏也有!

LXY_LOVE36的博客 118

OData 请求里的 Nextlink 实战:在 ABAP Client Proxy 中优雅处理长列表分页

本文介绍了OData v4标准中的@odata.nextLink分页机制及其在SAP ABAP中的实践应用。重点解析了该机制通过服务端提供的完整URL实现分页获取,客户端只需循环处理直到该字段消失的特点。文章提供了清晰的ABAP代码模板,展示如何通过Remote Client Proxy实现分页数据获取,并强调了仅支持OData v4和远程消费的限制条件。通过HR员工数据聚合的实际案例,说明了流式分页处理的最佳实践,包括服务端过滤、稳定排序和内存控制等关键技术要点,为ABAP开发者提供了可直接落地的解决方案

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 273

GDOI2017

原版是某篇2000字的短文。这次GDOI真叫人命苦! 辛辛苦苦地做准备,发现第一题都可以做,结果打错了的选手(那就是我),表示恨不得将自己的手给砍了,高自尊的我容不得出现这样的错误(当然我是不会砍的,不立flag)Day0: 高高兴兴地离开学校,迎来了我准备已久的GDOI,表示我在这之前粗略玩了玩splay,毕竟上一年都没有考到它,碰碰今年的运气看能不能切掉splay的题目。Day1: 5:4

white_elephant的博客 709

YOLOv5源码逐行超详细注释与解读(1)——项目目录结构解析

全网最全YOLOv5项目目录结构超详细分析。逐个文件注释,小白上手必备

路人贾的博客 9万+

【JZOJ5098】【GDOI2017 day1】微信

DescriptionData ConstraintSolution我们可以建出一颗trie,在trie上建广义后缀自动机sam,在sam上打好二进制标记,由于sam中fa[x]与x的关系是fa[x]的right集包含x的right集,所以我们可以将x的二进制与fa[x]or一下并更新答案,最后我们还可以发现一个二进制的答按肯定没有它的子集劣,O(2^N*N)下传一下即可,对于询问O(1)输出。Co

dance in th dark的博客 735

DC/DC开关电源学习笔记(十三)Buck-Boost升降压电路工作原理

Buck-Boost电路是一种能够实现输出电压高于或低于输入电压的DC-DC变换器,且输出电压极性与输入电压相反。它结合了Buck(降压)和Boost(升压)两种拓扑的特点,广泛应用于需要灵活电压调整的场合,如电池供电设备、LED驱动和工业控制系统。本文将从电路结构、工作原理、关键公式推导及实际应用等方面进行详细分析。

小幽余生不加糖 3505

R语言广义加型模型(GAM)的运用例子及实现教程

一旦拟合了广义加型模型,我们可以查看模型摘要和诊断,以评估模型的质量和拟合情况。# 查看模型摘要响应变量:mpg(汽车的燃油效率)拟合函数:mpg ~ s(hp) + s(wt)

Mrrunsen的博客 3446

【GDOI2017 day1 T3】微信 && SAM学习小记

SAM学习小记【GDOI2017 day1 T3】微信Description Input Output Sample Input3 idont<<<<loveyou i<youloveme lovingyou 2 110 111 Sample Output4 3 Data Constraint 一道字符串题,比赛以前,只会KMP,ExKMP,SA,Manachar,Trie。。。

white_elephant的博客 1469

uniapp:在map地图组件上添加控件,在地图上添加浮层展示自定义按钮或元素,uniApp如何在Map组件地图上添加悬浮在上面的图标/图片(全平台兼容安卓苹果app、H5网页、微信小程序、nvue)

uni-app的map添加控件问题,uniapp实现地图展示控件,uniapp小程序如何在map组件上增加按钮,uni-app,h5移动端网页,微信小程序,支付宝小程序,Android安卓,苹果ios,app,nvue,Uniapp腾讯地图添加控件,uniapp百度地图添加控件,地图上展示控件并可以点击,在地图上展示控件信息,uniapp map地图怎么向地图上增加工具栏,使用cover-view将控件在地图上展示,解决uniapp map上添加浮层无法显示问题,不显示怎么办,css样式不生效,地图等最高层

✅ 精选推荐文章 3231

【jzoj5098】【GDOI2017 day1】【微信】【tire上建sam】

题目大意给出n个操作序列,每个操作序列包括两种操作,加一个字符和删除最后一个字符。中途所出现的串的子串成为这操作序列的生成子串,给定一个操作序列集,求其生成子串的交集,串的最长的长度。解题思路对每个操作序列建sam,每加入一个字符记录一下前驱,退格的时候是直接退,其他按sam的增量构建法来建。特别注意新加字符的时候,原本可能就有转移,我们看一下他们的mx是否相邻,否则就另建新点,同nq的情况。对于不

inklutcuah’s blog 585

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

GDOI2017再次酱油记

今天是2017/6/8,DCDCBigBig的第二十篇博文 这篇酱油记在GDOI Day1晚上就开始写了,到现在都没写完。。。(我tm到底有多懒啊。。。)不管了,先发上来,以后再慢慢填坑吧。。。 Day 0 13:00 pm 啊。。。今天中午一点钟从ez出发,感觉吼有趣啊。出发前先大喊一声YEXI,在书包里放一本党史,感觉玄学可以救命【滑稽】 15:00 pm 到达东莞,...

DCDCBigBig的博客 805

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

GDOI2017 再次酱油记

Day 0 13:00 pm 啊。。。今天中午一点钟从ez出发,感觉吼有趣啊。出发前先大喊一声****,在书包里放一本党史,感觉玄学可以救命【滑稽】 15:00 pm 到达东莞,坐标:石龙名冠金凯悦大酒店。哇!这个酒店好大好气派丫!哇!五星级酒店!想起去年在四会的痛苦经历。。。不堪回首。。。 17:30pm 去到东华中学&&吃晚饭。哇!这个学校巨大丫!小学和初中都在一起...

weixin_30408165的博客 150

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Collections

WC前新一轮写杂题: 11.28【CF809C】find a car 11.29【THUWC2017】在美妙的数学王国中畅游 【BZOJ1814】Ural 1519 formula 1 11.30【BZOJ1187】[HNOI2007]神奇游乐园 12.3【BZOJ1502】【NOI2005】月下柠檬树 12.4【BZOJ2178】圆的面积并 12.6【THUWC2017】在美妙的数学...

weixin_30843605的博客 220

*后缀自动机

今天是2018/4/4,DCDCBigBig的第三十二篇博文 zrO WJMZBMR Orz 膜拜陈立杰…… 后缀自动机 //SPOJ8222 //题目大意: //给长度为 n 的字符串 S , 对任意的 L , 求长度为 L 的子串最多出现的次数 #include&lt;iostream&gt; #include&lt;cstring&gt; #include&lt;cstdio...

DCDCBigBig的博客 338

【GDOI2017模拟11.2】相位幻击

题目大意给你一个n个节点的有根树,每个点有一个点权。有m次操作,两种操作: 1. 把一个子树的权值全部xor上一个数x 2. 询问两个节点路径上所有数的xor和n,m≤200000 点权在int范围分析看到子树修改、路径查询,top-tree? 然而没有强制在线,所以可以考虑离线做。 对于询问u,v的路径上的异或和,可以拆成u、v到根的路径的xor和,再减去lca和lca的父亲的答案。

WorldWide_D的博客 525

[GDOI2017模拟]最大值(贪心+递推)

【题面】 【解题思路】 以下的数均已转为二进制数 AND:贪心,从高位往低位,如果集合里的数有这一位的个数小于2,说明答案里不可能包含这一位,继续做下一位的操作;如果个数大于2,显然取有这一位的数会比其他数更优,把其他数从集合中删除。 XOR:贪心,建一棵字典树,同样是尽量使高位为1 OR:递推,设f[x](x为压缩状态)为是否有数包含x集合,

S_G_G的博客 471

GDOI2017模拟04.15总结

Summary今天依然被虐惨qwq 一看第一题,第一眼以为是lct套路题,于是就沿着莫队+lct的方向去想,结果没什么进展。然后想想线段树,结果再一次估错了线段树的空间复杂度,放弃了这种正解的想法。接着开始想分块,搞出了一个看起来可以试一试的O(qnm−−−√lognm−−−√)\mathrm O(q\sqrt{nm}\log\sqrt{nm})的算法。 第二题一开始想错了,以为很简单,每次抽出

待成熟的葡萄 490

[GDOI2017]房屋购置——[kmp]

【题目描述】 涛涛最近准备要结婚了,但这在这之前他需要买套房子。买房子的确是人生大事哟,所以涛涛要好好斟酌。 于是他去房屋中介网上爬到了各种房子的数据,并得到了这些房子的特征,但是现在有一个问题感到很困惑, 但他知道你编程贼 6,所以希望你能帮帮他。 现在有 N 幢房子,每幢房子用一个字符串 si 来描述。但同样的房子不同的开发商会用不同的词汇来描述。 某些字符串存在缩写,例如 swimmingp...

sleepyNick 379

[GDOI2017游记]一次刺激的冲省队历程

Before Contest比赛前机房组织了整整4轮12场的GDOI12连测。状态一直不怎么好,每一轮三天总要挂至少一天,而且是挂到全机房垫底那种。直到最后一场才勉强摸到了校线(第五名)的后面一位。感觉自己状态很差,所以对这次省选也没有抱什么太大的期望,想着能够达到B类分数,体验一下被卡校线的滋味,就已经很满足了。 (12连测完后无聊改了改hackerrank审查元素截的图) Day 0报道日,

待成熟的葡萄 3529
上一篇: 【ZJOI2015】诸神眷顾的幻想乡(广义后缀自动机)
下一篇: 回文树(回文自动机)学习小记
Cold_Chair
博客等级 码龄11年 158粉丝 410原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值