麓山国际实验学校
fushao,kuangge和jeff出的题目(共3道)
一、题目概况
题目名称 |
打地铺 |
泡妹子 |
开房间 |
题目类型 |
传统 |
传统 |
传统 |
可执行文件名 |
deeeep |
soccer |
room |
输入文件名 |
deeeep.in |
soccer.in |
room.in |
输出文件名 |
deeeep.out |
soccer.out |
room.out |
测试点时限 |
4s |
1s |
1s |
内存限制 |
768M |
128M |
128M |
测试点数目 |
10 |
20 |
20 |
测试点分值 |
10 |
5 |
5 |
二、提交源代码文件名
对于Pascal语言 |
deeeep.pas |
soccer.pas |
paint.pas |
对于C 语言 |
deeeep.c |
soccer.c |
paint.c |
对于C++ 语言 |
deeeep.cpp |
soccer.cpp |
paint.cpp |
三、编译命令(不包含任何优化开关)
对于Pascal语言 |
|
|
|
|
对于C 语言 |
-lm |
-lm |
-lm |
-lm |
对于C++ 语言 |
-lm |
-lm |
-lm |
-lm |
四、注意事项
1、 文件夹名、文件名(程序名和输入输出文件名)必须使用英文小写。
2、 C/C++中函数main()的返回值类型必须是int,程序正常结束时的返回值必须是0。
3、 最终测试时,所有编译命令均不打开任何优化开关
4、 今天的题目,除了暴力分,数据都较大,请做好判断,不要卡评测机
一、打地铺(deeeep)
松松生日快乐
[题目描述]
最近LSGJ机房的同学迷上了一个风靡全球的游戏dee....(此处省略一万个e)p,在一个风和日丽的早晨,我们和石室战队发生了冲突。我们的松松为了保住LSGJ机房的荣誉(主要是在他的小迷妹面前出风头),和ji哥一起制定了一个策略,来提高战斗力(S),首先,一共有2n个人分成两队,每次每两队的任意两个人可以组成一队,一共组成n队。然后一队每一个人和另一队每一个人有一个默契度值,称为ai,j。每个人有一个自己喜欢玩的动物,一队每一个人和另一队每一个人有一个动物冲突值,为bi,j。假设每一个队的默契度值为ai′,每一队的动物冲突值为bi′。
总战力怎么算呢?公式就是S=(a1′+a2′+...+an′)/(b1′+b2′+...+bn′)。松松左想右想,硬是没想出解决办法,所以这个问题就交个你了。为了打败石室战队,当然要求S最大。
[输入格式]
第一行一个整数n。
接下来n行,每行n个整数,第i行第j个数表示ai,j。
接下来n行,每行n个整数,第i行第j个数表示bi,j。
[输出格式]
一行一个数,表示C的最大值。四舍五入保留6位小数,选手输出的小数需要与标准输出相等。
[输入样例]
3
19 17 16
25 24 23
35 36 31
9 5 6
3 4 2
7 8 9
[输出样例]
5.357143
[说明]
对于10%的数据,1≤n≤5
对于40%的数据,1≤n≤18
另有20%的数据,bi,j≤1
对于100%的数据,1≤n≤100,1≤ai,j,bi,j<=1e4
时间限制为4S;
二、泡妹子(soccer)
松松生日快乐
[题目描述]
松松想泡妹子了,他已经有了目标。于是,松松决定带那个妹子去看球赛。这场比赛,共n支球队,进行m场比赛。
这个妹子答应了,但他是想看帅哥,而松松是看球赛。在松松眼里,每个球队有一个实力值ai;在妹子眼里,每个球队有bi个帅哥。
他们两个的体力都十分有限。所以,他们只能看k场比赛。
在这k场比赛中,每场有pi和qi球队对抗(不排除两队之间多次比赛和自己队与自己队比赛的情况)。松松认为每场比赛的精彩度为两队的实力值乘积,而妹子认为是帅哥的数量之和。松松心情真的炒鸡复杂,他既妒忌妹子看其他的帅哥,又十分无奈只好迁就妹子。
所以,请你写一个程序,求出妹子看到比赛的精彩度总和不小于C的情况下,松松看到比赛的精彩度的最大总和。
[输入格式]
第1行,4个正整数n,m,k,C。
第2行,N个空格隔开的正整数ai。
第3行,N个空格隔开的正整数bi。
之后M行,每行两个正整数pi,qi。
没规定不能和自己比!
[输出格式]
仅一行,一个正整数表示松松看到比赛的精彩度的最大总和。如果无论如何都无法满足妹子的要求,输出-1。
[样例]
In: |
Out: |
4 3 2 5 2 2 1 3 1 1 1 2 1 2 2 3 3 4 |
7 |
[数据范围]
对于20%数据,n,m,k<=5。对于全部数据,n<=100,k<=m<=100,ai,bi<=500
C<=1000.
三、开房间(room)
松松生日快乐
[题目描述]
松松终于钓到了妹子,可是这是天色已晚,他们只好在路边找一家旅店住下.这间旅店有很多间房间,每一间房间有一种特定的颜色,每两个房间之间有且只有一条走廊连接.显然松松和妹子是不能住在同一间房间的.但是松松又想知道他和妹子有多近.松松认为,他和妹子所在的房间之间的路径上的颜色段的数量就是他们的亲近度.现在给出有n个房间的地图以及地图上每两个相连的房间和m次操作,操作有2类:
1、将房间a到房间b最短路径上的所有房间都染成颜色c;
2、松松住在房间a,妹子住在房间b,询问松松与妹子之间的亲近度(连续相同颜色被认为是同一段),如”112221”由3段组成:”11”、”222”和”1”.
[输入格式]
第一行包含2个整数n和m,分别表示房间数和操作数; 第二行包含n个整数表示n个房间的初始颜色 下面n-1行每行包含两个整数x和y,表示x和y之间有一条走廊. “C a b c”表示这是一个染色操作,把房间a到房间b路径上所有房间(包括a和b)都染成颜色c; “Q a b”表示 这是一个询问操作,询问松松与妹子的亲近度(松松住在房间a,妹子住在房间b);
[输出格式]
对于每个询问操作,输出一行答案.
[样例输入]
6 5
2 2 1 2 1 1
1 2
1 3
2 4
2 5
2 6
Q 3 5
C 2 1 1
Q 3 5
C 5 1 2
Q 3 5
[样例输出]
3
1
2
[数据范围]
对于30%的数据 N,M<=100
对于100% 的数据 N<=10000,M<=100000.1<=c<=1e9