吉林省信息学奥赛 2017 冬令营 day3

题目|文件名称 |总时间限制|内存限制|试题总分|测试点|题目类型
----|-----|-----|-----|-----|-----|-----|-----|------
矩阵乘法 |matrix.cpp/in/out|1000ms |256 MB|100|10|传统型
交朋友|friend.cpp/in/out|1000ms|256Mb|100|10|传统型
物以类聚|kind.cpp/in/out|1000ms|256Mb|100|10|传统型


矩阵乘法

问题描述

给定三个n*n的矩阵A,B,C,判断C是否等于A×B。


输入格式

从文件matrix.in中输入数据。
输入文件包含多组数据。第一行是一个整数T(T<=5)表示测试点个数。
对于每组数据,第一行是一个正整数n,表示矩阵大小。
接下来3*n行,每行n个整数,分别表示A、B和C。

输出格式

输出到文件matrix.out中。
对于每组数据,如果C=A×B,输出”Yes”,否则输出”No”。

样例输入

2
1
2
3
5
2
2 3
3 5
0 1
1 1
3 5
5 8

样例输出

No
Yes

提示

一个nt的矩阵A乘以一个tm的矩阵B,答案是一个nm的矩阵C,
且满足c[i,j]=∑a[i,k]
b[k,j],其中1<=k<=t。
即,矩阵C的第i行第j列的元素等于把矩阵A的第i行于矩阵B的第j列的元素一一对应相乘后作和。
注意,矩阵乘法满足结合律但是不满足交换律,即A×B不一定等于B×A。
但矩阵乘法满足结合律,即ABC=A(BC)。

数据规模与约定
对于20%的数据,n=1
对于60%的数据,n<=100
对于100%的数据,1<=n<=1000
矩阵A和矩阵B中的元素为小于1000的非负整数。
矩阵C中的元素在int范围内


实现代码

···

题解



交朋友

问题描述

吉林省的N名(N为偶数)OIers来到了吉大南校,
他们现在还互相都不认识,所以他们要交一交朋友。
因为讲课的时候不能说话,所以两个人如果想要交朋友必须到自习室去交,
并且自习室同时只能容纳两个人。
为了秉承谦让的原则,一个人如果已经交了一个朋友了,那么他今天就不能再去交别的朋友了。
因为人与人之间的投缘程度是不一样的,所以第i个人和第j个人成为朋友要花费t[i][j]的时间。
还因为老师特别关心学生们,所以老师想知道,要让所有人都有一个朋友,最少要花费多长时间。


输入格式

从文件friend.in中输入数据。
输入一个整数N
接下来n行,每行n个数,代表t[i][j]
保证t[i][j]=t[j][i],t[i][i]=0(t[i][i]没有意义)

输出格式

输出到文件friend.out中。
输出一行一个整数,代表所有人都有一个朋友最少要多长时间

样例输入

4
0 100 5 100
100 0 100 11
5 100 0 100
100 11 100 0

样例输出

16

提示

数据规模与约定
对于40%的数据,N<=6
对于100%的数据,N<=16


实现代码

···

题解



物以类聚

问题描述

吉林省OIER们都喜欢吃糖,
所以冬令营组委会在地上摆了n个各种各样的糖,
标号为1……n,
OIER们特别想知道在标号L到标号R之间共有种类为k的糖有多少块。


输入格式

从文件kind.in中输入数据。
第 1 行:两个空格隔开的正整数 n 和 m
第 2 行:n 个空格隔开的整数,第 i 个整数为第 i 个糖果的种类
接下来 m 行,每行三个整数 L,R,k 描述一个询问

输出格式

输出到文件kind.out中。
m 行每行一个整数对应每个询问的答案。

样例输入

5 3
1 2 3 2 3
1 3 1
2 4 2
3 4 3

样例输出

1
2
1

提示

数据规模与约定
对于 50%的数据, n,m<=2000
对于 100%的数据, n,m<=100000,k在int范围内


实现代码

···

题解



总结

你可能感兴趣的:(吉林省信息学奥赛 2017 冬令营 day3)