题目背景小a和uim来到雨林中探险。突然一阵北风吹来,一片乌云从北部天边急涌过来,还伴着一道道闪电,一阵阵雷声。刹那间,狂风大作,乌云布满了天空,紧接着豆大的雨点从天空中打落下来,只见前方出现了一个披头散发、青面獠牙的怪物,低沉着声音说:“呵呵,既然你们来到这,只能活下来一个!”。小a和他的小伙伴都惊呆了! 题目描述瞬间,地面上出现了一个n*m的巨幅矩阵,矩阵的每个格子上有一坨0~k不等量的魔液。怪物各给了小a和uim一个魔瓶,说道,你们可以从矩阵的任一个格子开始,每次向右或向下走一步,从任一个格子结束。开始时小a用魔瓶吸收地面上的魔液,下一步由uim吸收,如此交替下去,并且要求最后一步必须由
题目描述帅帅经常跟同学玩一个矩阵取数游戏:对于一个给定的n*m的矩阵,矩阵中的每个元素aij均为非负整数。游戏规则如下: 1.每次取数时须从每行各取走一个元素,共n个。m次后取完矩阵所有元素; 2.每次取走的各个元素只能是该元素所在行的行首或行尾; 3.每次取数都有一个得分值,为每行取数的得分之和,每行取数的得分 = 被取走的元素值*2^i,其中i表示第i次取数(从1开始编号); 4.游戏结束总得分为m次取数得分之和。 帅帅想请你帮忙写一个程序,对于任意矩阵,可以求出取数后的最大得分。 输入输出格式输入格式: 输入文件game.in包括n+1行: 第1行为两个用空格隔开的整数n和
题目描述老蛤有一堆真正的粉丝。 老蛤年迈了。不过好在他有特别多忠实粉丝,愿意献出自己寿命的1s等价交换为他的寿命+1s。 老蛤与粉丝们在一个n×n" data-mce-tabindex="0">n×nn×n面积的城市中。老蛤可以吸收距离不超过s的粉丝所提供的寿命。老蛤所在的十字路口(a,b)与粉丝所在的十字路口(c,d)之间距离是|a-c|+|b-d|。 老蛤的洪荒之力会不断变化q次,导致s的值也会变化多次。现在要求你,最聪明的粉丝,计算出对于这q个s,每次处于哪个十字路口可以吸收到最多的寿命以及最多寿命的多少。 输入格式第一行四个整数n,k,q代表城市面积为n&a
题目描述因为前面选手们的帮忙,小蛤智商提升了!他现在在玩一个神奇的游戏:给出了一个n×m的棋盘,其中的格子有的黑,有的白。我们对一个格子进行操作,可以使这个格子与它所处的颜色相同的联通块中的所有格子颜色全部取反。问至少要多少次操作可以使所有格子变白? 输入格式第一行两个整数n,m代表棋盘尺寸; 接下n行一个字符串描述每一行棋盘情况:W为白B为黑 输出格式输出一个整数表示最少的次数。 样例数据样例下载 数据规模与约定对于40%的数据 n×m≤20'>n×m≤20n×m≤20 对于70%的数据 n≤20,m
对于序列A,它的逆序对数定义为满足i<j,且Ai>Aj的数对(i,j)的个数。给1到n的一个排列,按照某种顺序依次删除m个元素,你的任务是在每次删除一个元素之前统计整个序列的逆序对数。 Input 输入第一行包含两个整数n和m,即初始元素的个数和删除的元素个数。以下n行每行包含一个1到n之间的正整数,即初始排列。以下m行每行一个正整数,依次为每次删除的元素。 Output 输出包含m行,依次为删除每个元素之前,逆序对的个数。 Sample Input 5 4
1
5
3
4
2
5
1
4
2Sample Output 5
2
2
Description您需要写一种数据结构(可参考题目标题),来维护一个有序数列,其中需要提供以下操作:1.查询k在区间内的排名2.查询区间内排名为k的值3.修改某一位值上的数值4.查询k在区间内的前驱(前驱定义为小于x,且最大的数)5.查询k在区间内的后继(后继定义为大于x,且最小的数) Input第一行两个数 n,m 表示长度为n的有序序列和m个操作第二行有n个数,表示有序序列下面有m行,opt表示操作标号若opt=1 则为操作1,之后有三个数l,r,k 表示查询k在区间[l,r]的排名若opt=2 则为操作2,之后有三个数l,r,k 表示查询区间[l,r]内排名为k的数若opt=3 则
题目描述如题,给定N个字符串(第i个字符串长度为Mi,字符串内包含数字、大小写字母,大小写敏感),请求出N个字符串中共有多少个不同的字符串。 友情提醒:如果真的想好好练习哈希的话,请自觉,否则请右转PJ试炼场:)输入输出格式输入格式: 第一行包含一个整数N,为字符串的个数。 接下来N行每行包含一个字符串,为所提供的字符串。 输出格式: 输出包含一行,包含一个整数,为不同的字符串个数。 输入输出样例输入样例#1:5
abc
aaaa
abc
abcc
12345 输出样例#1:4 说明时空限制:1000ms,128M 数据规模: 对于30
回文串是指aba、abba、cccbccc、aaaa这种左右对称的字符串。 输入一个字符串Str,输出Str里最长回文子串的长度。 Input输入Str(Str的长度 <= 100000)Output输出最长回文子串的长度L。Sample Input daabaacSample Output 5 一个标准的Manacher,可以看看这篇博客,讲的很清楚:我就是“博客”。另外突然发现max,min好慢啊,而且其中的两种情况可以合并。附代码:#include<cstdio>
#include<algorithm>
#include<cs
Description全部由小写字母构成且长度不超过 100000 的非空字符串,求最长的连续子字符串
使得该字符串与其反转字符串相等Input输入包含多组测试数据,每组数据一行,为一个长度不超过 100000 的非空字符串Output每组数据输出一行,为最长的连续子字符串的长度Sample Inputabcbad
abccba
abcba
abbacc
ccabbaSample Output5
6
5
4
4根据今天连WA带TLE的经验可以归纳出在写Manacher的时候需要注意这几点: 1、不同case之间要清零清干净&nb
这道题的DP其实可以换一个角度出发思考,因为我们可以随意调整一个块,所以每一个块有字母的种类个数肯定是该块的最优块数。接下来我们只需要确定它们的排布就可以了。我们这样建立状态。dp[i][j]表示第i个块的第一个字母为j时的最少联通个数,这样我们就可以通过dp[i - 1][0~25]推出dp[i][0 ~25]了。 #include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int ma