Code Test(2)

1110test

T1:Inversion逆序数对1
(inversion.cpp/in/out 1s 256M)
给定N的值,要求找出一个N的全排列,这个全排列中,逆序数有M对。这样的结果会存在多个解,现在请输出字典
序最小的那个解。例如当输入3 1 时,则1 3 2这个排列有一个逆序对,2 1 3这个排列同样也有一个逆序对。但
1 3 2这个字典序更小,因而其是正解。
Input
每组数据给出N,M。1 <= n <= 50000 and 0 <= m <= 1/2n(n-1).
整个测试以-1 -1代表结束。
Output
如题
Sample Input
5 9
7 3
-1 -1
Sample Output
4 5 3 2 1
1 2 3 4 7 6 5

T2:扑克牌
(poker.cpp/in/out 1s 256M)
一副扑克牌有n张牌。一般你买的一副新扑克牌里除了这n张牌外还会有一些张特殊的牌,如果你不小心弄丢了n张牌中的某一张,就可以用特殊牌来代替,但是如果你弄丢两张的话就没有办法了,因为特殊牌上的图案是一样的。现在你得到了很多扑克牌,准确来说,n种牌你各有a1、a2、……、an张,同时你还有b张特
殊牌,现在你需要从这些牌中整理出若干副牌供大家使用。整理出的一副牌可以由n种普通牌各一张组成,也可以由n-1种普通牌各一张再加一张特殊牌组成。请你设计出一种方案,整理出尽可能多的牌。
Input
输入包括2行
第一行给出n和b
第二行给出a1,a2…an。
1<=n<=1000000,牌的数量<=10^6
Output
输出最多能整理出的牌的副数。
Sample Input
5 5
5 5 5 5 5
Sample Output
6

T3:Diamond Collector
(diamond.cpp/in/out 1s 256M)
贝西是一只牛,她喜欢闪闪发光的东西,于是有在空闲时间里挖钻石的爱好。她收集了N颗不同大小的钻石(N<=5*10
^5),她想在牛棚的展示箱里放一些钻石。因为贝西希望展示在箱子里的钻石大小尽量相似,她决定不会把两颗大
小相差超过K的钻石一起放进箱子里(如果两颗钻石的大小恰好相差K那它们也能一起在箱子里展示)。给出K,请
帮助贝西求出她能展示在箱子里的钻石数量的最大值。
Input
输入的第一行包含N和K(0<=K<=10,000)。
接下来的N行每行包含一个整数表示其中一颗钻石的大小。所有的大小都是正数且不超过10,000
Output
输出一个正整数,表示贝西能展示的钻石数量的最大值
Sample Input
5 3
1
6
4
3
1
Sample Output
4

T4:产生数
(number.cpp/in/out 1s 128M)
[问题描述]:
  给出一个整数 n(n<10^30) 和 k 个变换规则(k<=15)。
  规则:
   一位数可变换成另一个一位数:
   规则的右部不能为零。
  例如:n=234。有规则(k=2):
    2-> 5
    3-> 6
  上面的整数 234 经过变换后可能产生出的整数为(包括原数):
   234
   534
   264
   564
  共 4 种不同的产生数
问题:
  给出一个整数 n 和 k 个规则。
求出:
  经过任意次的变换(0次或多次),能产生出多少个不同整数。
  仅要求输出个数。

n k
  x1y1
  x2 y2
  ... ...
  xn yn

[输出]:
   屏幕输出,格式为:
  一个整数(满足条件的个数):

234 2
   2 5
  36
  输出:
   4

1112test

T1:约数
(fact.cpp/in/out 1s 128M)
对于一个正整数n,如果n除以某个正整数d所得的余数为0,我们称d是n的约数。显然1和n一定是n的约数,请问对于给定的n(n≥2),除了n本身以外,最大的约数是多少?
Input
共一行,包含一个正整数n。
2≤n≤2×10^9
Output
共一行,包含一个正整数,表示n除了自身以外的最大约数。
Sample Input
15
Sample Output
5

T2:perimeters
(peri.cpp/in/out 1s 128M)
给出一张由"x"和"."组成的矩阵。每个"x"可以向上下左右及两个斜对角进行连通,请问由某个点开始的"x",它所连通的图形的周长为多少。
Input
第一行给出整个图形的大小(长度小于50),再给出开始点的坐标。
接下来若干行用于描述这个图形。
Output
如题
Sample Input
6 4 2 3
.XXX
.XXX
.XXX
...X
..X.
X...
Sample Output
18

T3:Cow Art
(art.cpp/in/out 1s 128M)
一个有关奶牛的鲜为人知的事实是她们都是红绿色盲,也就是说,在她们看来,红色和绿色是一样的(译者注:奶牛把这种颜色称作“红绿色”)。这使得我们设计的艺术作品难以同时符合人类和奶牛的审美口味。考虑一个由N x N格字符表示的方形绘画作品,其中每个字符为R(红),G(绿)或者B(蓝)。一幅绘画如果有许多互不相同的
着色“区域”,则我们认为它是有趣的。如果两个字符是直接相邻的(一个在另一个的东、南、西、北方向)且其表示的颜色相同,则这两个字符属于同一个区域。例如,下面这幅绘画作品:

RRRBB
GGBBB
BBBRR
BBRRR
RRRRR

如果由人类来看有4个区域(2个红色,1个蓝色和1个绿色区域),而如果由奶牛来看则只有3个区域(2个红绿色,
1个蓝色区域)。现给你一副绘画作为输入,请计算该作品由人类和奶牛来看分别有多少个区域。
Input
第1行:整数N。N<=90
第2..1+N行:每行包含一个长度为N的字符串,表示绘画作品的一行。

Output
第1行:两个空格隔开的整数,分别给出由人类和奶牛欣赏绘画作品时会看见多少个区域。
Sample Input
5
RRRBB
GGBBB
BBBRR
BBRRR
RRRRR
Sample Output
4 3

T4:四数理论
(four.cpp/in/out 1s 128M)有这样一个理论:任何一个正数都只能表示为至多四个完全平方数之和。现希望你能写出对于任一个正数,它有多少种这样的表示方式。例如
25=1+4+4+16
=9+16
=25
注意表示式中的数不考虑顺序关系。
Input
一个数字N(N<=2^15)
Output
输出对于特定的N有多少种表示方式.
Sample Input
25
Sample Output
3

1113test

T1:Sleepy Cow Herding
(Herding.cpp/in/out/1s 128M)
Farmer John的三头获奖奶牛Bessie、Elsie和Mildred,总是会迷路走到农场上遥远的地方去!他需要你帮助将她
们一起赶回来。农场的草地大体是一块狭长的区域——我们可以将其想象成一条数轴,奶牛可以占据数轴上的任意
整数位置。这3头奶牛现在正位于不同的整数位置,Farmer John想要移动她们,使得她们占据三个相邻的位置(例
如,位置6、7、8)。不幸的是,奶牛们现在很困,Farmer John要让她们集中精力听从命令移动并不容易。任意时
刻,他只能使得一头处在“端点”(在所有奶牛中位置最小或最大)位置的奶牛移动。当他移动奶牛时,他可以命
令她走到任意一个未被占用的整数位置,只要在新的位置上她不再是一个端点。可以看到随着时间的推移,这样的
移动可以使奶牛们趋向越来越近。请求出使得奶牛们集中到相邻位置所进行的移动次数的最小和最大可能值。
Input
输入包含一行,包括三个空格分隔的整数,为Bessie、Elsie和Mildred的位置。
每个位置均为一个范围1...10^9内的整数。
Output
输出的第一行包含Farmer John需要将奶牛们聚集起来所需进行的最小移动次数。
第二行包含他将奶牛聚集起来能够进行的最大移动次数。
Sample Input
4 7 9
Sample Output
1
2

T2:最大子序列之和
(sum.cpp/in/out 1s 256M)
给定一个数列,找出3个无交集的连续数列使其和最大。
Input
第一行一个数n,表示数列长度。
接下来有n行,每行一个数,第i行为第i个数。
3<= n <= 1000000,答案 < = 2^31 - 1
Output
仅有一个数,表示最大和。
Sample Input
10
-1
2
3
-4
0
1
-6
-1
1
-2
Sample Output
7

T3:倒水
(water.cpp/in/out 1s 128M)
一天,CC买了N个容量可以认为是无限大的瓶子,开始时每个瓶子里有1升水。接着~~CC发现瓶子实在太多了,于是他决定保留不超过K个瓶子。每次他选择两个当前含水量相同的瓶子,把一个瓶子的水全部倒进另一个里,然后把
空瓶丢弃。(不能丢弃有水的瓶子)显然在某些情况下CC无法达到目标,比如N=3,K=1。此时CC会重新买一些新的瓶子(新瓶子容量无限,开始时有1升水),以到达目标。现在CC想知道,最少需要买多少新瓶子才能达到目标呢?
Input
一行两个正整数, N,K(1<=N<=10^9,K<=1000)。
Output
一个非负整数,表示最少需要买多少新瓶子。
Sample Input
27 3
Sample Output
1

T4:对称二叉树
(tree.cpp/in/out/3s 256M)
一棵有点权的有根树如果满足以下条件,则被轩轩称为对称二叉树:

二叉树;
将这棵树所有节点的左右子树交换,新树和原树对应位置的结构相同且点权相等。

下图中节点内的数字为权值,节点外的 id 表示节点编号。

现在给出一棵二叉树,希望你找出它的一棵子树,该子树为对称二叉树,且节点数最多。请输出这棵子树的节点数。
注意:只有树根的树也是对称二叉树。本题中约定,以节点 T 为子树根的一棵“子树”指的是:节点 T 和它的全部后代节点构成的二叉树。
输入
第一行一个正整数 n,表示给定的树的节点的数目,规定节点编号 1~n,其中节点1 是树根。
第二行 n 个正整数,用一个空格分隔,第 i 个正整数 vi 代表节点 i 的权值。
接下来 n 行,每行两个正整数 li , ri ,分别表示节点 i 的左右孩子的编号。如果不存在左 / 右孩子,则以 −1 表示。两个数之间用一个空格隔开。
输出
输出共一行,包含一个整数,表示给定的树的最大对称二叉子树的节点数。
输入样例 1
2
1 3
2 -1
-1 -1
输入样例 2
10
2 2 5 5 5 5 4 4 2 3
9 10
-1 -1
-1 -1
-1 -1
-1 -1
-1 2
3 4
5 6
-1 -1
7 8
输出样例 1
1
输出样例 2
3
输入输出样例 1 说明

最大的对称二叉子树为以节点 2 为树根的子树,节点数为 1。
输入输出样例 2 说明

最大的对称二叉子树为以节点 7 为树根的子树,节点数为 3。
数据规模与约定
共25个测试点。vi≤1000
测试点1~3,n≤10,保证根结点的左子树的所有节点都没有右孩子,根结点的右子树的所有节点都没有左孩子。
测试点4~8,n≤10。
测试点9~12,n≤10^5,保证输入是一棵“满二叉树”。
测试点13~16,n≤10^5,保证输入是一棵“完全二叉树”。
测试点17~20,n≤10^5,保证输入的树的点权均为 1。
测试点21~25,n≤10^6。

613test

超级英雄Hero
hero.cpp
Time Limit: 1 Sec Memory Limit: 128 MB

Description
现在电视台有一种节目叫做超级英雄,大概的流程就是每位选手到台上回答主持人的几个问题,然后根据回答问题的多少获得不同数目的奖品或奖金。主持人问题准备了若干道题目,只有当选手正确回答一道题后,才能进入下一题,否则就被淘汰。为了增加节目的趣味性并适当降低难度,主持人总提供给选手几个“锦囊妙计”,比如求助现场观众,或者去掉若干个错误答案(选择题)等等。 这里,我们把规则稍微改变一下。假设主持人总共有m道题,选手有n种不同的“锦囊妙计”。主持人规定,每道题都可以从两种“锦囊妙计”中选择一种,而每种“锦囊妙计”只能用一次。我们又假设一道题使用了它允许的锦囊妙计后,就一定能正确回答,顺利进入下一题。现在我来到了节目现场,可是我实在是太笨了,以至于一道题也不会做,每道题只好借助使用“锦囊妙计”来通过。如果我事先就知道了每道题能够使用哪两种“锦囊妙计”,那么你能告诉我怎样选择才能通过最多的题数吗?
Input
一行是两个正整数n和m(0 < n <1001,0 < m < 1001)表示总共有n中“锦囊妙计”,编号为0~n-1,总共有m个问题。
以下的m行,每行两个数,分别表示第m个问题可以使用的“锦囊妙计”的编号。
注意,每种编号的“锦囊妙计”只能使用一次,同一个问题的两个“锦囊妙计”可能一样。
Output
第一行为最多能通过的题数p
Sample Input
5 6
3 2
2 0
0 3
0 4
3 2
3 2
Sample Output
4

2.攻击装置
attack.cpp
Time Limit: 3 Sec Memory Limit: 256 MB

Description
给定一个01矩阵,其中你可以在0的位置放置攻击装置。每一个攻击装置(x,y)都可以按照“日”字攻击其周围的 8个位置(x-1,y-2),(x-2,y-1),(x+1,y-2),(x+2,y-1),(x-1,y+2),(x-2,y+1), (x+1,y+2),(x+2,y+1)
求在装置互不攻击的情况下,最多可以放置多少个装置。
Input
第一行一个整数N,表示矩阵大小为N*N。接下来N行每一行一个长度N的01串,表示矩阵。N<=200

Output
一个整数,表示在装置互不攻击的情况下最多可以放置多少个装置

Sample Input
3
010
000
100
Sample Output
4

  1. 八中校队
    team.cpp
    Time Limit: 1 Sec Memory Limit: 128 MB

Description
八中校队有N名队员,有男生,有女生。现在教练员要求他们组成混双,也就是一个男生配对一个女生。现给出M种可能出现的配对情况,于是现在教练员想检查下这M种配对是否有出错的可能,也就是出现了某组配对中,全是男生,或全是女生。
N<=2000
M<=1000000
Input
第一行给出数字T,代表T组数据
对于每组数据,先给出N,M
接下来M行,每行给出两个数字a,b,代表队员a与队员b配对
Output
如果出现同性配对,输出"Suspicious bugs found!",
否则输出"No suspicious bugs found!,输出格式见样例
Sample Input
2
3 3
1 2
2 3
1 3
4 2
1 2
3 4
Sample Output
Scenario #1:
Suspicious bugs found!

Scenario #2:
No suspicious bugs found!

原文地址:https://www.cnblogs.com/rebirth-death2019/p/13778565.html