A:链接:https://ac.nowcoder.com/acm/contest/393/A

时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 262144K,其他语言524288K
64bit IO Format: %lld

题目描述

给定两个等长的由小写字母构成的串 A,BA,B,其中 |A|=|B|=n 。

现在你需要求出一个子区间 [l,r]使得 LCP(A[l,r],B[l,r])×LCS(A[l,r],B[l,r])+LCP(A[l,r],B[l,r])+LCS(A[l,r],B[l,r]) 最大,并输出这个值。

LCP(S,T)表示S和T的最长公共前缀,LCS(S,T)表示S和T的最长公共后缀。

输入描述:

第一行一个字符串 AA。

第二行一个字符串 BB 。

输出描述:

一行一个整数,表示答案。
示例1

输入

aaabbbcccddd
aaaddddddddd

输出

15

说明

选择 l=1,r=12  是一种可行的最优解。

备注:

对于所有数据,保证 n≤200000 ,串 A,B仅由小写字母构成。

思路:一眼看是最长公共前缀和最长公共后缀。但是稍微想一下,其实只需要求一次最长公共前缀就行了,因为无论怎么样对于一段连续字符串来说,最长前缀和最长后缀是一样的。
    比如说aaabab和aaaccc,最优情况是选前三个字母aaa。
#include<bits/stdc++.h>
using namespace std;
#define LL long long
const LL mod = ;
int dp[];
int main(){
string s1,s2;
cin>>s1>>s2;
memset(dp,,sizeof(dp));
int a = ,b = ;
for(int i = ; i <= s1.size() ; i ++){
if(s1[i-] == s2[i-]){
dp[i] = dp[i-]+;
}else{
dp[i] = ;
}
a = max(a,dp[i]);
}
LL ans = a*a*1LL + 2LL*a;
printf("%lld\n",ans);
}/*
aaabbbddccdd
aaaddddddddd
*/
B:链接:https://ac.nowcoder.com/acm/contest/393/B
来源:牛客网
时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 524288K,其他语言1048576K
64bit IO Format: %lld

题目描述

注意本题有模数
给定一个 长度为 n 的序列 { a } ,求:
max1≤i≤j≤n{(ai⊕ai+1⊕⋯⊕aj)+(ai+ai+1+⋯+aj)}mod100000007
其中 ⊕ 表示异或

输入描述:

第一行一个整数 n 。
第二行 n 个整数,表示 ai 。

输出描述:

一行一个整数 ans ,表示答案。
示例1

输入

3
1 2 3

输出

6

说明

我们 显然需要将所有的数字都选上显然需要将所有的数字都选上,此时 ans=(1⊕2⊕3)+1+2+3=6 。

备注:

对于所有的数据,保证 1≤n≤3×105,0≤ai<220 。

样例:想不到吧,你的做法至少能过样例!

思路:没啥好说的,对于一个数a_i,即使前面出现过a_i这个数,大不了就是异或等于0,但是会再加上a_i,对ans贡献肯定是增大的。所以选所有数就好啦。

#include<bits/stdc++.h>
using namespace std;
#define LL long long
const LL mod = ;
int main(){
int n;
scanf("%d",&n);
LL s1 = ,s2 = ;
for(int i = ; i < n ; i ++){
LL x;
scanf("%lld",&x);
s1 += x;
s1 %=mod;
s2 ^= x;
s2 %= mod;
}
printf("%lld\n",(s1+s2+mod)%mod);
}

C:链接:https://ac.nowcoder.com/acm/contest/393/C
来源:牛客网

时间限制:C/C++ 2秒,其他语言4秒
空间限制:C/C++ 524288K,其他语言1048576K
64bit IO Format: %lld

题目描述

给定m个长为n的序列a1,a2,…,am。

小Z想问你:

n∑i1=1n∑i2=1…n∑im=1SUM(a1,i1,a2,i2,…,am,im)  mod1000000007
其中SUM(一个序列)SUM(一个序列)表示这个序列中所有不同的数的和,相当于先sort,unique再求和。

输入描述:

第一行两个整数n,m。

接下来m行,每行n个整数,第i行第j个表示ai,jai,j

输出描述:

一行一个整数,表示答案。
示例1

输入

2 3
1 2
2 3
1 3

输出

36

说明

一共有8种情况:

SUM(1,2,1)=3 SUM(1,2,3)=6 SUM(1,3,1)=4 SUM(1,3,3)=4
SUM(2,2,1)=3 SUM(2,2,3)=5 SUM(2,3,1)=6 SUM(2,3,3)=5
把所有数字结果加起来就是36。

备注:

对于所有100%100%的数据,有1≤n,m≤2000,0≤ai,j≤10^9

题意:求这个式子的和,不难理解,按样例来说,就是每行的2个选1个,组成的所有情况。就是2^3=8种。然后按照题目给的意思计算。
思路:待更新。

牛客练习赛42(A,B)的更多相关文章

  1. 牛客练习赛42 C 出题的诀窍 (贡献,卡常)

    牛客练习赛42 C 出题的诀窍 链接:https://ac.nowcoder.com/acm/contest/393/C来源:牛客网 题目描述 给定m个长为n的序列a1,a2,-,ama_1 , a_ ...

  2. 牛客练习赛42 C 出题的诀窍

    题目链接:https://ac.nowcoder.com/acm/contest/393/C 这个题就是对于每个数算贡献,如果有相同的数,只计算先出现的数的贡献 对于数x,若它在前i行的数目分别为a1 ...

  3. 牛客练习赛42 C 反着计算贡献

    https://ac.nowcoder.com/acm/contest/393/C 题意 给你一个矩阵, 每次从每行挑选一个数,组成一个排列,排列的和为不重复数字之和,求所有排列的和(n,m<= ...

  4. 牛客练习赛42 出题的诀窍(数学+hash)

    出题的诀窍 题目链接:https://ac.nowcoder.com/acm/contest/393/C 题解: 由于他是在每一行选取一个元素,然后纵向来比较,这里行的顺序是不会影响的,所以我们将每一 ...

  5. 牛客练习赛42 A 字符串

    题目描述 给定两个等长的由小写字母构成的串 A,BA,B,其中 |A|=|B|=n|A|=|B|=n. 现在你需要求出一个子区间 [l,r][l,r] 使得 LCP(A[l,r],B[l,r])×LC ...

  6. 牛客练习赛42 E.热爆了

    这可能是全场最长的一份代码 问的其实是对于关键点的斯坦纳树大小 考虑补集转化,不合法的点就是它的子树中没有关键点的点和斯坦纳树根的祖先 树根不难求,关键点中dfs序最大最小点的LCA就是了 问题在前者 ...

  7. 牛客练习赛31 B 赞迪卡之声妮莎与奥札奇 逻辑,博弈 B

    牛客练习赛31 B 赞迪卡之声妮莎与奥札奇 https://ac.nowcoder.com/acm/contest/218/B 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 2621 ...

  8. 【并查集缩点+tarjan无向图求桥】Where are you @牛客练习赛32 D

    目录 [并查集缩点+tarjan无向图求桥]Where are you @牛客练习赛32 D PROBLEM SOLUTION CODE [并查集缩点+tarjan无向图求桥]Where are yo ...

  9. 牛客练习赛31 D 神器大师泰兹瑞与威穆 STL,模拟 A

    牛客练习赛31 D 神器大师泰兹瑞与威穆 https://ac.nowcoder.com/acm/contest/218/D 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 26214 ...

随机推荐

  1. rabbitmq management advance lesson

    rabbitmq management advance management install rabbitmq-plugins enable rabbitmq_management visit : h ...

  2. win10的linux子系统安装及使用

    最近需要用到linux但是又不想装双系统,正好win10推出了linux子系统,省事了,自己也是煞费苦心才整明白 1.首先你要是很新的win10版本(1607及已上),这样才有下面的步骤 依次在 设置 ...

  3. jmeter 关联

    (1)正则表达式提取器 注:正则表达式部分配置说明 案例: 动态值:name=userSession value=119828.306682868zVzDzzipfcfDzQicpAVVVf> ...

  4. 东芝 B-EV4 打印机 串口打印命令

    最近在做项目时候使用了东芝的B-EV4打印机,在打印Excel时候由于字体太小,导致打印非常模糊.只能通过串口名称发送打印指令进行打印.在做项目的时候查了很多关于B-EV4打印机的资料,和打印命令.资 ...

  5. [转]Python如何引入自定义模块?

    转自 http://www.cnblogs.com/JoshuaMK/p/5205398.html Python运行环境在查找库文件时是对 sys.path 列表进行遍历,如果我们想在运行环境中注册新 ...

  6. [ZZ] 麻省理工( MIT)大神解说数学体系

    麻省理工( MIT)大神解说数学体系 http://blog.sina.com.cn/s/blog_5ff4fb7b0102e3p6.html 其实每一门学科都应该在学习完成后,在脑子里面有一个体系, ...

  7. 【fork/join】java并发编程-fork/join示例

    package com.chinamobile.epic.tako.common.graphite.query.sync.impl; import com.google.common.collect. ...

  8. json null

    { "ResourceId": 0, "JsonKey": "Account", "GroupId": 21, &quo ...

  9. spring cloud gateway - RequestRateLimiter

    1. Official website 5.7 RequestRateLimiter GatewayFilter Factory The RequestRateLimiter GatewayFilte ...

  10. 史上最全 40 道 Dubbo 面试题及答案,看完碾压面试官

    想往高处走,怎么能不懂 Dubbo? Dubbo是国内最出名的分布式服务框架,也是 Java 程序员必备的必会的框架之一.Dubbo 更是中高级面试过程中经常会问的技术,无论你是否用过,你都必须熟悉. ...