每个 UCloud 用户会构造一个由数字序列组成的秘钥,用于对服务器进行各种操作。作为一家安全可信的云计算平台,秘钥的安全性至关重要。因此,UCloud 每年会对用户的秘钥进行安全性评估,具体的评估方法如下:

首先,定义两个由数字序列组成的秘钥 aaa 和 bbb 近似匹配(≈\approx≈) 的关系。aaa 和 bbb 近似匹配当且仅当同时满足以下两个条件:

  • ∣a∣=∣b∣|a|=|b|∣a∣=∣b∣,即 aaa 串和 bbb 串长度相等。
  • 对于每种数字 ccc,ccc 在 aaa 中出现的次数等于 ccc 在 bbb 中出现的次数。

此时,我们就称 aaa 和 bbb 近似匹配,即 a≈ba \approx ba≈b。例如,(1,3,1,1,2)≈(2,1,3,1,1)(1,3,1,1,2)\approx(2,1,3,1,1)(1,3,1,1,2)≈(2,1,3,1,1)。

UCloud 每年会收集若干不安全秘钥,这些秘钥组成了不安全秘钥集合 TTT。对于一个秘钥 sss 和集合 TTT 中的秘钥 ttt 来说,它们的相似值定义为:sss 的所有连续子串中与 ttt 近似匹配的个数。相似值越高,说明秘钥 sss 越不安全。对于不安全秘钥集合 TTT 中的每个秘钥 ttt,你需要输出它和秘钥 sss 的相似值,用来对用户秘钥的安全性进行分析。

输入格式

第一行包含一个正整数 nnn,表示 sss 串的长度。

第二行包含 nnn 个正整数 s1,s2,...,sn(1≤si≤n)s_1,s_2,...,s_n(1\leq s_i\leq n)s​1​​,s​2​​,...,s​n​​(1≤s​i​​≤n),表示 sss 串。

接下来一行包含一个正整数 mmm,表示询问的个数。

接下来 mmm 个部分:

每个部分第一行包含一个正整数 k(1≤k≤n)k(1\leq k\leq n)k(1≤k≤n),表示每个 ttt 串的长度。

每个部分第二行包含 kkk 个正整数 t1,t2,...,tk(1≤ti≤n)t_1,t_2,...,t_k(1\leq t_i\leq n)t​1​​,t​2​​,...,t​k​​(1≤t​i​​≤n),表示 TTT 中的一个串 ttt。

输入数据保证 TTT 中所有串长度之和不超过 200000200000200000。

对于简单版本:1≤n,m≤1001\leq n,m\leq 1001≤n,m≤100;

对于中等版本:1≤n≤50000,1≤m≤5001\leq n\leq 50000,1\leq m\leq 5001≤n≤50000,1≤m≤500;

对于困难版本:1≤n≤50000,1≤m≤1000001 \le n \le 50000, 1 \le m \le 1000001≤n≤50000,1≤m≤100000。

输出格式

输出 mmm 行,每行一个整数,即与 TTT 中每个串 ttt 近似匹配的 sss 的子串数量。

样例解释

对于第一个询问,(3,2,1,3)≈(2,3,1,3)(3,2,1,3)\approx(2,3,1,3)(3,2,1,3)≈(2,3,1,3),(3,2,1,3)≈(3,1,3,2)(3,2,1,3)\approx(3,1,3,2)(3,2,1,3)≈(3,1,3,2);

对于第二个询问,(1,3)≈(3,1)(1,3)\approx(3,1)(1,3)≈(3,1),(1,3)≈(1,3)(1,3)\approx(1,3)(1,3)≈(1,3);

对于第三个询问,(3,2)≈(2,3)(3,2)\approx(2,3)(3,2)≈(2,3),(3,2)≈(3,2)(3,2)\approx(3,2)(3,2)≈(3,2)。

样例输入

5
2 3 1 3 2
3
4
3 2 1 3
2
1 3
2
3 2

样例输出

2
2
2

思路:简单版只需要按照要求进行模拟即可。

package jisuanzhidao.chusai5;import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Collections;public class Two {public static void main(String[] args) throws IOException{// TODO Auto-generated method stubBufferedReader br=new BufferedReader(new InputStreamReader(System.in));String line=null;line=br.readLine();int n=Integer.parseInt(line);String s=br.readLine();String [] strs=s.split(" ");line=br.readLine();int m=Integer.parseInt(line);while((m--)>0){line=br.readLine();int k=Integer.parseInt(line);String t=br.readLine();String [] strst=t.split(" ");int ans=num(strs,strst);System.out.println(ans);}}public static int num(String[] a,String[] b){if(a.length<b.length){return 0;}else{int la=a.length;int lb=b.length;int ans=0;for(int i=0;i+lb<=la;i++){String [] temp=Arrays.copyOfRange(a, i, i+lb);if(similar(temp,b)){++ans;}}return ans;}}public static boolean similar(String[] a,String[] b){if(a.length==b.length){Arrays.sort(a);Arrays.sort(b);for(int i=0;i<a.length;++i){if(!a[i].equals(b[i])){return false;}}return true;}return false;}}

UCloud 的安全秘钥(简单)解题报告相关推荐

  1. 2017 计蒜之道 初赛 第五场 B. UCloud 的安全秘钥(简单)

    暴力. 暴力枚举$S$串的每一个长度为$m$的子串,排序判断即可. #include <iostream> #include <cstdio> #include <cst ...

  2. 生成自签名证书:生成证书和秘钥

    生成证书和秘钥 简单生成的方法: 1.mkdir  /certs 2.cd  /certs 3.生成自签名证书 sudo openssl req -newkey rsa:2048 -new -node ...

  3. 解题报告(一)C、(牛客练习赛41 F)简单数学题(数论 + FWT)(3.5)

    繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量题解和代码,题目难度不一定按照题号排序,我会在每道题后面加上题目难度指数(1∼51 \sim 51∼5),以模板题难度 11 ...

  4. git生成秘钥配置SSH公钥的简单方法

    为什么配置SHH呢?是为了方便我们剪切代码的时间免密码输入,特别方便如何配置呢? 首先安装git: 先到官网下载:官网下载git 然后安装后在桌面任意空白处右击,选择Git Base Here即可如下 ...

  5. uniapp简单搞定支付传统的开发支付需要前后端做很多工作,各种参数的处理,签名,秘钥的验证校验等,尤其是涉及到多种不同的平台支付,更是繁琐;而且以往的支付是由后端主导的,如果后端是个菜鸡,那么做这

    uniapp简单搞定支付 传统的开发支付需要前后端做很多工作,各种参数的处理,签名,秘钥的验证校验等,尤其是涉及到多种不同的平台支付,更是繁琐:而且以往的支付是由后端主导的,如果后端是个菜鸡,那么做这 ...

  6. 解题报告(十八)数论题目泛做(Codeforces 难度:2000 ~ 3000 + )

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量的题解和代码,题目难度不一 ...

  7. 解题报告(十三)中国剩余定理(ACM / OI)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量的题解和代码,题目难度不一 ...

  8. 解题报告(四)生成函数(ACM/ OI)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量的题解和代码,题目难度不一 ...

  9. 解题报告(五)组合计数(ACM / OI)超高质量题解

    繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量题解和代码,题目难度不一定按照题号排序,我会在每道题后面加上题目难度指数(1∼51 \sim 51∼5),以模板题难度 11 ...

最新文章

  1. JQueryEasyUI学习笔记(十四)tree
  2. 【Boost】boost库中thread多线程详解10——condition条件变量
  3. 探讨ASP.NET 2.0中的Web控件改进技术(2)
  4. 512M内存编译php出错
  5. Android笔记-雷电模拟器(Android5.1.1)安装Xposed
  6. python入门-windows下anaconda环境搭建
  7. VirtualBox虚拟机硬盘容量扩容
  8. 过拟合的含义、出现原因及解决方案
  9. python量化交易通达信_分享一个可以实战的量化交易策略(适用于通达信系统)...
  10. kindeditor php 漏洞,KindEditor漏洞、优化以及漏洞、BUG修复方案汇总
  11. 基于jQuery/express/socket.io实现的匿名聊天室
  12. java线上问题定位神器 Arthas入门
  13. Debian修改DNS
  14. 什么蓝牙耳机好用又不贵?好用不贵的蓝牙耳机推荐
  15. 多元随机森林回归(Multivariate Random Forest Regreesor)经验总结
  16. markdown解析
  17. visio2016安装遇到的坑
  18. 通过付款码来区分是属于支付宝、微信、还是银行
  19. asp之小旋风服务器
  20. Word插入希腊字母及特殊符号 分类整

热门文章

  1. Guava之RateLimiter限流
  2. 8b/10b编码方式(详细)总结附实例快速理解
  3. c#飞行棋游戏(控制台)
  4. 爬虫概念与编程学习之如何爬取网页源代码(一)
  5. 利用python求行列式、矩阵的秩和逆
  6. 干货:大学考试不挂科的小窍门
  7. 计算机系统结构划分,计算机系统结构59288.ppt
  8. word文档打开密码解密怎么解
  9. 何训田介绍(二)——黄孩子
  10. windows server 2016 部署FTP服务器