编程介的小学生 2019-05-21 13:47 采纳率: 20.5%
浏览 179

求出删掉最多数字的最少步数,怎么利用C语言程序编写代码的具体的方式来实现的

Problem Description
众所周知,度度熊喜欢的字符只有两个:B 和D。

今天,它发明了一个游戏:D游戏。

度度熊的英文并不是很高明,所以这里的D,没什么高深的含义,只是代指等差数列(等差数列百科)中的公差D。

这个游戏是这样的,首先度度熊拥有一个公差集合{D},然后它依次写下N个数字排成一行。游戏规则很简单:

1.在当前剩下的有序数组中选择X(X≥2) 个连续数字;

2.检查1 选择的X个数字是否构成等差数列,且公差 d∈{D};

3.如果2满足,可以在数组中删除这X个数字;

4.重复 1−3 步,直到无法删除更多数字。
度度熊最多能删掉多少个数字,如果它足够聪明的话?

为了挑战自己,度度熊给D游戏多设了一个条件,Xmin和Xmax,在游戏的第一步,选出X个连续数字时,必须满足Xmin≤X≤Xmax。它称这个游戏为D++游戏。

同时精益求精的度度熊还希望知道删掉最多数字的最少步数。

Input
第一行为T,表示输入数据组数。

每组数据以四个整数 N,M,Xmin,Xmax 开始 。接着的一行包括 N 个整数,表示排成一行的有序数组 Ai。接下来的一行是 M 个整数,即给定的公差集合 Di。

1≤T≤100

1≤N,M≤32

2≤Xmin≤Xmax≤16

−1 000 000 000≤Ai,Di≤1 000 000 000

Output
对第i组数据,输出

Case #i:

然后输出一行,为最多能删掉的数字和完成这个目标的最小步数,用空格隔开。

Sample Input
3
3 1 2 2
1 2 3
1
3 1 2 3
1 2 3
1
4 2 2 4
1 3 4 3
1 2

Sample Output
Case #1:
2 1
Case #2:
3 1
Case #3:
4 2

  • 写回答

0条回答

    报告相同问题?

    悬赏问题

    • ¥15 安卓adb backup备份应用数据失败
    • ¥15 eclipse运行项目时遇到的问题
    • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
    • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
    • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
    • ¥50 成都蓉城足球俱乐部小程序抢票
    • ¥15 yolov7训练自己的数据集
    • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
    • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
    • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)