转自http://www.cskaoyan.com/thread-653896-1-1.html
-
环境:
1)C/C++: (通知中为独立的vc++或vc 6.0)实际可用: CodeBlocks+GCC 4.8 Visual Studio 2010
2)Eclipse Mars + JDK 1.6 (实际上机是JDK1.8 不知评测环境如何) -
要求:
1GB + 10s
提交源代码+可执行文件(自行测试,无OJ) -
题目:
-
给出两个数字序列,求最长公共子序列(LCS) 保证一个序列中所有元素都不重复
第一行给定一个n 为序列的长度
第二第三行为两个序列
其中 60% 的用例 n<=1000
所有用例保证 n<= 1000000
Sample Input
5
1 2 3 4 5
1 2 3 4 5
Sample Output
5
Sample Input
5
1 2 3 5 4
1 2 3 4 5
Sample Output
4 -
给出三个杯子的容量ABC , 其中刚开始时C杯是满的,AB是空的。
现在在保证不会有漏水的情况下进行如下操作:
将一个杯子x的水倒到另一个杯子y中,如果x空了或者y满了就停止(满足其中一个条件才停下)
现问C中水量有多少种可能性(A,B,C为非负整数)
60% case A,B,C<=100
100% case A,B,C<=4000
Sample Input
0 5 5
Sample Output
2
Sample Input
2 2 4
Sample Output
3 -
给定一张带权无向完全图,设点的编号为1,2,3,4,5…n(以邻接矩阵的形式给出)
计算依次拿走第i个点后,剩余所有点到其他点的最短距离之和的总和(具体请看例子)
例子:
0 1 1 1
1 0 1 1
1 1 0 1
1 1 1 0
f1 = 2+2+2 = 6 // 拿走1号点 剩一个三角形,2号到3号距离为1,2号到4号距离为1 所以2号的最短距离之和为2 所以最后总共为6.
f2 = 1+1 = 2// 在拿走1号点和2号点后 剩一条边, 所以是 1 + 1
f3 = f4 = 0// 拿走1,2,3号点后 仅剩1个点 拿走所有点后为空。
结果为 f1+f2+f3+f4 = 8
aii=0 0<aij<=10(i!=j aij为整数)
60% n<=100
100% n<=500
输入: 第一行为点的个数n,接下来有n行为邻接矩阵
Sample Input
4
0 1 1 1
1 0 1 1
1 1 0 1
1 1 1 0
Sample Output
8