回 帖 发 新 帖 刷新版面

主题:有关王小明的4道题,哪位高手来帮帮忙

我是菜鸟,这里有4道题,哪位高手帮我做一下,感激不尽.... ..


王小明的聚会
输入文件:dinner.in
输出文件:dinner.out
时限:1s

描述
    王小明高中毕业了,王小明要请他的同学吃饭!
    小明在饭店订了4桌饭菜。
    小明邀请了N个同学,每位同学有一定的食量A,小明希望能合理的安排同学的座位,使得每一桌的总食量相等。
输入
第1行:1个整数T,表示测试数据组数
第2至T+1行:一个整数N,表示小明邀请的同学数量,接下来N个正整数A[i],表示各位同学的食量。

输出
T行:“yes”或“no”,“yes”表示小明可以做出使得每桌总食量相等的安排,“no”表示不能。

样例输入:
3
4 1 1 1 1
5 10 20 30 40 50
8 1 7 2 6 4 4 3 5

样例输出:
yes
no
yes

数据范围
对于100%的数据,T<=5,4<=N<=20,A[i]<=10000;











王小明安排座位
输入文件:seat.in
输出文件:seat.out
时限:1s

描述:
    小明迟到了。
    当小明进入餐厅时,他发现同学们都已经到齐了,并且围着一张圆桌坐好了。
    可是,同学们没有按照小明所期望的顺序坐。
    于是小明开始帮大家换座位。
    每一秒钟,相邻的两个同学可以交换座位。
    现在要使得大家的顺序颠倒,即:对于每位同学,原来与他相邻、坐在他左边的人,坐到了与他相邻的右边的位置,而原来与他相邻、坐在他右边的同学,坐到了与他相邻的左边的位置。
    问最少要过多少秒,可以完成座位的调换。
输入
仅1行:1个整数N,表示王小明同学的数量。

输出
仅1行:一个整数Min,表示最少所花的时间。

样例输入1:
4
样例输出1:
2

样例输入1:
5
样例输出1:
4

样例输入1:
6
样例输出1:
6


数据范围
对于30%的数据,1<=N<=20;
对于100%的数据,1<=N<=30000。



王小明的石头剪刀布
输入文件:mus.in
输出文件:mus.out
时限:1s

描述:
    在聚会上,小明突然想玩剪刀石头布。
于是小明决定让大家一起来玩剪刀石头布。
所有同学站成一圈,相邻的两个同学可以进行石头剪刀布的角逐,输的同学将离开圈子,游戏不断进行下去,直到只剩下一个人的时候停止,最后留下的人胜出。
问:那些人可能胜出?
输入
第1行:1个整数N,表示王小明同学的数量。(同学们的标号为1至N)
接下来是一个N*N的01矩阵A。
A[i][j]=1表示i同学能战胜j同学,A[i][j]=0表示i同学会输给j同学。

输出
第1行:一个整数M,表示可能胜出的人数。
第2-M+1行:每行一个整数No,可能胜出的人的编号(按升序排列)。
样例输入:
7
1111101
0101100
0111111
0001101
0000101
1101111
0100001

样例输出:
3
1
3
6

数据范围
对于30%的数据,1<=N<=10;
对于100%的数据,1<=N<=100。





王小明的兄弟姐妹
输入文件:friend.in
输出文件:friend.out
时限:1s

描述:
    在聚会上,小明想到相处了3年的同学很快就要分开了,于是十分感慨。
    小明决定让大家来玩个投票游戏。
    所有人各自写下最喜欢的同学的名字,每人写至多三个不同的名字,并且不能写自己。于是问题产生了——最大的“兄妹团”有多大?
    “兄妹团”是一个由若干名同学组成的集合,在这个集合里的每一位同学,必须满足:
    1、他参与了投票
2、他所喜欢的人必须全部在这个集合里面
3、他被集合中至少一个人喜欢

输入
第1行:2个整数N,M;表示王小明同学的数量,M表示参与投票的同学的数量。
第2至M+1行:两个整数I,S,I表示该同学的编号,S表示该同学写下的名字数(1<=S<=3)。接下来S个整数,表示该同学写下的同学的标号。
(同学们的标号为1至N)

输出
仅1行:一个整数Max,表示最大的“兄妹团”的人数。

样例输入:
12 9
1 2 4 8
2 3 9 12 3
4 1 8
5 2 1 6
6 1 5
7 1 8
8 1 1
10 3 8 7 6
12 1 10

样例输出:
5

数据范围
对于30%的数据,1<=N<=20;
对于100%的数据,1<=N<=10000,0<=M<=N。

回复列表 (共2个回复)

沙发

第四题中的
   ‘第1行:2个整数N,M;表示王小明同学的数量,M表示参与投票的同学的数量。‘
  没用吧????????????????//////

板凳

第四题用并查集合吧
第二题有规律:
n  time(s)
3    1
4    2
5    4
6    6
7    8
..   ..
n    {n=3 s=1
      n>3 s=((n-1) div 2)*2}
第一题 动规或搜索

我来回复

您尚未登录,请登录后再回复。点此登录或注册