夏令营 8.20 测试

奇怪的考试题 

 

题目名称

数值距离

最短路

放棋子

可执行文件名

dis

road

chess

输入文件名

dis.in

road.in

chess.in

输出文件名

dis.out

road.out

chess.out

内存限制

256MB

256MB

256MB

每个测试点时限

2s

1s

1s

测试点数目

10

10

10

每个测试点分值

10

10

10

是否有部分分

题目类型

传统

传统

传统

备注

捆绑测试

捆绑测试

提交文件名需加后缀:

对于pascal语言

dis.pas

road.pas

chess.pas

对于C语言

dis.c

road.c

chess.c

对于C++语言

dis.cpp

road.cpp

chess.cpp

 


 


数值距离(dis.pas/c/cpp)

【题目大意】

我们可以对一个数x进行两种操作:

1、 选择一个质数y,将x变为x*y

2、 选择一个x的质因数y,将x变为x/y

定义两个数a,b之间的距离为把a变成b所需要执行的最少操作次数。例如数69与42之间的距离为3,因为42=69/23*2*7

现在有一个长度为n的序列a1,a2,…,an。对于每一个i,我们需要找到一个j,使得ai到aj的距离最小,若有多个j满足条件,输出最小的j。

【输入文件】

输入文件为dis.in。

输入共有n+1行,第一行有一个数n,接下来n行每行一个数ai。

【输出文件】

输出文件为dis.out。

输出一共n行,每行一个整数,第i行的整数表示对于i所求得的j是多少。

【样例输入】

6

1

2

3

4

5

6

【样例输出】

2

1

1

2

1

2

 

 

 

【数据规模与约定】

对于30%的数据,n≤1000;

另有20%的数据,ai≤1000;

对于100%的数据,2≤n≤100000,1≤ai≤1000000。



最短路(road.pas/c/cpp)

【题目大意】

有一个点数为n,边数为m的无向图,点的编号为1到n。边的权值均为非负数。

现在请你求出从点1到点n的最短路径条数,若有无限条则输出-1,答案对于1000000009取模(即109+9)。

【输入文件】

输入文件为road.in。

输入共有m+1行。

第一行有两个整数n,m,表示图中所有的点数与边数。

接下来的m行,每行三个整数x,y,z,表示了一条边的起点、终点以及该边的长度。

【输出文件】

输出文件为road.out。

输出一个整数表示从点1至点n的最短路径条数,答案对于1000000009取模。

【样例输入】

4 4

1 2 1

1 3 1

2 4 1

3 4 1

【样例输出】

2

【数据规模与约定】

对于10%的数据,n≤10,m≤10;

对于40%的数据,n≤1000,m≤2000;

对于100%的数据,n≤100000,m≤200000;

保证到任意一点最短路的长度不超过64位有符号长整型范围。




放棋子(chess.pas/c/cpp)

【题目大意】

现在有一个n*m的棋盘,现在你需要在棋盘上摆放2n个棋子,要求满足如下条件:

1、 每一列只能有一个棋子;

2、 每一行的前xi个格子有一个棋子,而且最多有一个棋子;

3、 每一行的后yi个格子有一个棋子,而且最多有一个棋子;

求一共有多少种不同的放置方案,答案对于1000000007取模(即109+7)。

【输入文件】

输入文件为chess.in。

输入共有n+1行。第一行有两个整数n,m,表示该棋盘的行数与列数。

接下来的n行,每行两个整数xi和yi,表示每一行的前xi个格子需要有一个棋子,每一行的后yi个格子需要有一个棋子。

【输出文件】

输出文件为chess.out。

输出一个整数表示共有多少种不同的方案,答案对于1000000007取模。

【样例输入】

3 6

1 2

3 3

3 2

【样例输出】

4

【数据规模与约定】

数据点

n最大值

m最大值

其他

1

4

12

2

10

50

3

50

200

所有xi相等,所有yi相等

4

50

200

所有xi相等

5

50

200

所有yi相等

数据点

n最大值

m最大值

其他

6

50

200

max(left)+max(right)≤m

7

50

200

max(left)+max(right)≤m

8

50

200

9

50

200

10

50

200

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值