描述
Mirko很快厌倦了Jetpack Joyride并开始在他的手机上玩神奇宝贝GO。这个游戏的玩点之一就是神奇宝贝的进化。 为了进化物种为Pi的神奇宝贝,Mirko必须提供Ki个用于该物种神奇宝贝的糖果。在神奇宝贝进化后,他能拿回2个糖果。神奇宝贝只能在为他们的物种准备的糖果的帮助下进化。 Mirko有N种神奇宝贝,并且为物种Pi的神奇宝贝提供Mi个糖果,他想知道他可以进化多少次神奇宝贝。 他还想知道哪个神奇宝贝可以进化最多次。如果有多个这样的神奇宝贝,输出一个编号最小的神奇宝贝。换句话说,在输入数据中最早出现的那个。
输入
第一行输入包含整数 N N N。表示神奇宝贝种类的数量。接下来2N行包含N组数据,其中包含:
●第2i行包含字符串 P i P_i Pi,由最多20个字组成。表示第i种神奇宝贝的名称;
●第2i+1行包含整数 K i K_i Ki和 M i M_i Mi,分别第i种神奇宝贝的进化所需的糖果数量和Mirko为这种神奇宝贝准备的糖果总数。
输出
第一行输出一个整数。表示Mirko可以进化的神奇宝贝的总次数。 第二行输出一个字符串。表示可以进化最多次的神奇宝贝的名称。
范围
1 ≤ N ≤ 70 , 12 ≤ K i ≤ 400 , 1 ≤ M i ≤ 1 0 4 1≤N≤70,12≤K_i≤400,1≤M_i≤10^4 1≤N≤70,12≤Ki≤400,1≤Mi≤104
样例输入
4
Caterpie
12 33
Weedle
12 42
Pidgey
12 47
Rattata
25 71
样例输出
14
Weedle
不用说了,打卡题,随便模拟一下,记录一下就行了
描述
小 Zeljko 一直在阁楼里读他奶奶的旧信,并且发现了一个长度为 N 的单词。 不幸的是,由于溢出的墨水,他不知道单词的内容。他把看不清的 M 个字母每 个字母都用一个字符’#‘替换后,在一张纸上重写了这个词。他把那张纸递给 了他的奶奶,对于每个看不清的字母,奶奶给了他 K 个不同的可能。在那之后, Zeljko 在笔记本中写下了所有可能的单词,并决定仔细查看他们的属性,以确 定原始单词是什么。在看到笔记本上写下的单词后,他的奶奶意识到他们正在 寻找的是按字典序排列的第 X X X 个单词。Zeljko 在他们学校学习字母表的那天生 病了,所以他要求你帮助他确定原来的单词。 输入 第一行输入包含整数 N , M , K N,M,K N,M,K 和 X X X。分别表示单词的长度,看不清的字母的数量,奶奶给出的字母的数量和 原单词是字典序的第几个。 第二行输入包含一个长度为 N 的字符串,由小写英文字母和字符’#‘组成。 表示 Zeljko 找到的单词,其中字符’#‘表示看不清的字母。 接下来 M M M 行中的每一行包含一个长度为 K 的字符串,由 K K K 个不同的小写英文 字母组成。第 2 + i 2+i 2+i 行的 K K K 个字母表示第 i i i 个看不清的 保证 X X X 总是小于等于能构造出的单词的总数。
输入
第一行输入包含整数 N , M , K N,M,K N,M,K 和 X X X。分别表示单词的长度,看不清的字母的数量,奶奶给出的字母的数量和 原单词是字典序的第几个。 第二行输入包含一个长度为 N N N 的字符串,由小写英文字母和字符’#‘组成。 表示 Zeljko 找到的单词,其中字符’#'表示看不清的字母。 接下来 M M M 行中的每一行包含一个长度为 K K K的字符串,由 K K K 个不同的小写英文 字母组成。第 2 + i 2+i 2+i 行的 K K K 个字母表示第 i i i 个看不清的字母的 K K K 种可能。 保证 X X X 总是小于等于能构造出的单词的总数。
输出
输出一个字符串。表示原本的单词
范围
1 ≤ N ≤ 500 , 1 ≤ M ≤ N , 1 ≤ K ≤ 26 , 1 ≤ X ≤ 1 0 9 1≤N≤500,1≤M≤N,1≤K≤26,1≤X≤ 10^9 1≤N≤500,1≤M≤N,1≤K≤26,1≤X≤109
样例输入
9 2 3 7
po#olje#i
sol
znu
样例输出
posoljeni
解释
我们在sol和znu分别选出一个字母填入原单词的#中(依次),一共就有9种可能,我们要求的就是9种可能中按字典序排序后第7个方案
sol排序后–>los,znu排序后–>nuz
按字典序排下来就有(l,n),(l,u),(l,z),(o,n),(o,u),(o,z)
(s,n),(s,u),(s,z)9种可能,那么第七个就是(s,n),所以第一个#为s,第二个#为n
也是一道打卡题
相信不少人可能会想到康托展开,我在考试时也想到了,但忘了怎么打。于是我就开始钻研,因为7 = 3*2+1,所以l和o的所有组合肯定可以忽略,来到第三个字母,而又因为多了一个1,所以肯定就是第二行字母的第一个,以此类推,本题数据有一点迷惑性,建议多找几个数据来找规律,
正解是k进制数,其实和上面的想法差不多(但上面那个好像细节有点多),就是用k转换为每个#的可能性的字母排序后的第几个字母,最后替换一下就行了
描述
Do Geese See God?或者,Was It A Rat I Saw?没关系,这只是展示 Mislav 对回文的热爱的不必要的介绍。帮他解决以下任务! 设 A A A 是 N N N 个整数构成的数组。我们说 A 是回文,如果 A [ i ] = A [ N − i + 1 ] A[i]=A[N-i+1] A[i]=A[N−i+1]对于每 个 i i i 都成立,其中 A [ i ] A[i] A[i]表示数组 A A A 的第 i i i 个元素,并且数组中的第一个元素编号是 1 1 1。 Mislav 可以通过以下方式修改数组:在一次操作中,他选择该数组的两个 相邻元素并用它们的和替换它们。注意,每次操作后数组中元素的数量将减少 1 1 1。 Mislav 想知道为了让数组变为回文的,他必须做出最少多少次操作。
输入
第一行输入包含整数 N N N,表示数组中的元素个数。 第二行输入包含 N 个用空格分隔的正整数,表示 Mislav 数组中的元素。。
输出
输出一个整数。表示 Mislav 要把数组变为回文所需的最少操作次数。
范围
1 ≤ N ≤ 1 0 6 1≤N≤10^6 1≤N≤106,数组中的数字最多为 10^9
样例输入1
3
1 2 3
样例输出1
1
样例输入2
4
1 4 3 2
样例输出2
2
也是打卡题
我本来的思想是一直割(两边和相等),但好像不行
正解
先定l,r分别为1,n
描述
Slavko很无聊,所以他把正整数填到 N ∗ N N*N N∗N的方阵中。
如果他填出来的方阵满足以下条件,他会特别高兴:
●每行中的数字的平均值是一个位于同一行的整数。
●每列中的数字的平均值是一个位于同一列的整数。
●表中的所有数字都不同。
帮助Slavko找到一种会让他开心的填法。
输入
第一行输入包含整数 N N N。表示方阵的行数和列数。
输出
输出N行,每行输出 N N N个由空格分隔的整数。令第i行中的第j个数字对应于Slavko将在方阵的第i行第j列写下的值。
所有数字必须大于 0 0 0且小于 1 0 9 10^9 109。
如果有多个解决方案,则输出任意一个。
如果没有任何解决方案,则输出 − 1 -1 −1。
样例输入1
3
样例输出1
1 2 3
4 5 6
7 8 9
样例输入2
2
样例输出2
-1
范围
1 ≤ N ≤ 100 1≤N≤100 1≤N≤100
本题是SPJ(Special Judge),所以老师讲的思路也特别清奇
n n n为奇数的时候就不说了吧,直接双重循环输出就行了
其实就重点讨论 n n n为偶数的时候
其次,为了满足第一条性质,我们就令每一排的前n-1个为连续的整数(???我也不知道为什么,老师直接上数据搞的),比如 n = 4 n=4 n=4,第一排就为
∣ 1 2 3 x 1 ∣ \begin{vmatrix} 1\ 2 \ 3 \ x_1 \end{vmatrix} ∣∣1 2 3 x1∣∣
所以我们就要保证 ( 1 + 2 + 3 + x 1 ) / 4 = 2 或 3 (1+2+3+x_1)/4=2或3 (1+2+3+x1)/4=2或3,显然靠后的一个明显要大一点,不会减出负数,所以我们取 3 3 3,所以 x 1 = 6 x_1=6 x1=6,为保证第二排不会出现重复的,所以第二排的第一个取上一排的最后一个加一,所以第二排
∣ 7 8 9 x 2 ∣ \begin{vmatrix} 7 \ 8\ 9\ x_2\end{vmatrix} ∣∣7 8 9 x2∣∣
可以再次解出 x 2 = 12 x_2=12 x2=12,就这样一直处理到倒数第二行,
最后一行的每一个就按照上面的方法竖着来就行了
描述
Dominik 想象出了一系列正整数 P 1 , P 2 , . . . , P N P_1,P_2,...,P_N P1,P2,...,PN。让我们将他们排序之后的版 本称为 Q 1 , Q 2 , . . . , Q N Q_1,Q_2,...,Q_N Q1,Q2,...,QN。 此外,他想象出了一个允许替换集合。如果一对(X,Y)是允许替换集合的 成员,Dominik 可以交换数组 P 中位于 X 和 Y 处的数字。 Marin 向 Dominik 进行了 T 次查询,每个查询都属于以下类型之一: 1.把数组 P 中位于 A 和 B 位置的两个数字交换。 2.将(A,B)添加到允许替换集合中。Marin 可能给出已经在允许替换集合 中的数对(A,B)。 3.看看是否可以仅使用允许替换集合中的替换进行排序?可以以任意顺序 使用替换,并且可以使每个替换任意次数。 4.如果位于 A 位置的数字可以仅使用允许的替换转移到位置 B,那么我们称 A 和 B 是链接的。我们把所有和 A 链接的位置构成的集合称为 A 的云。如果对于 一个云中的每个元素 j,都能在仅使用允许替换集合中的替换使得 P j = Q j P_j=Q_j Pj=Qj,那么 我们称这个云是好的。你必须回答有多少对不同的满足以下条件的位置(A,B): ①位置 A 和 B 不是链接的②A 和 B 的云都不是好的③如果我们将对(A,B)添加 到允许的替换集合中,A 的云(通过使 A 和 B 成为链接的来得到)变为好的。 请注意:对(A,B)和(B,A)被认为是完全相同的一对位置。
输入
第一行输入包含整数 N N N 和 M M M。分别表示数组 P P P的大小和查 询的次数。 第二行输入包含 N N N 个整数 P 1 , P 2 , . . . , P N P_1,P_2,...,P_N P1,P2,...,PN。表示数组 P P P。 接下来 M 行中的每一行都包含以下格式的查询:
●行中的第一个数字是查询的类型 T。类型有 1,2,3,4 四种,对应题目中说 的四种查询。 ●如果是查询类型 T 是 1 或 2,会跟着两个不同的整数 A 和 B。 表示前两种询问中的 ( A , B ) (A,B) (A,B)。
输出
对于每个类型 T 为 3 或 4 的查询,在单独的一行中输出答案。 查询类型 3 的答案是“DA”(表示可以只通过替换排序)或“NE”(表示不 可以只通过替换排序),没有引号。 查询类型 4 的查询答案是一个非负整数。表示满足条件的位置对的数量。
范围
1 ≤ N , M ≤ 1 0 6 , 1 ≤ P i ≤ 1 0 6 , 1 ≤ A , B ≤ N 1≤N,M≤10^6,1≤Pi≤10^6,1≤A,B≤N 1≤N,M≤106,1≤Pi≤106,1≤A,B≤N
样例输入
4 10
2 1 4 3
3
4
1 1 2
3
4
2 2 3
2 1 2
4
2 3 4
3
样例输出
NE
2
NE
1
3
DA
不会是不可能的,等待更新~~
求大佬解
本次考试总体来说并不乐观,文件名写错一个,思路不够严谨,不能另辟蹊径,手速不够快,打卡题一般的分都没拿到,太不仔细了
不能再这样继续下去了!!!