首先我们先来自己造几组数据试试看:
1不可以;
2不可以;
3=3*1,可以;
4不可以;
5=5*1,可以;
6=3*2,可以;
7不可以;
8=3*1+5*1,可以;
9=3*3,可以;
10=5*2;可以
此时已经连续出现了3个可以的,那么以后就再也没有不可以了,因为只要拿它们去+3,就可以买到更大的数目,所以在无法准确支付的物品中,最贵的价值是7金币。但是只举一个例子是远远不够的,所以我们再举一个:
1不可以;
2不可以;
3不可以;
4=4*1,可以;
5不可以;
6不可以;
7=7*1,可以;
8=4*2,可以;
9不可以;
10不可以;
11=4*1+7*1,可以;
12=4*3;
13不可以;
14=7*2,可以;
15=7*1+4*2,可以;
16=4*4,可以;
17不可以;
18=7*2+4*1;
19=7*1+4*3;
20=4*5;
21=7*3;
现在已经有连续4个可以的了,所以在无法准确支付的物品中,最贵的价值是17金币.
对测试样例如法炮制,发现得到的结果是正确的,但是代码肯定不能这么写,否则就会超时,接下来我们再找规律,发现:
在无法准确支付的物品中,最贵的价值是 金币.
#include<bits/stdc++.h>
using namespace std;
int main()
{
long long a,b,p;
cin>>a>>b;
p=a*b-a-b;
cout<<p;
return 0;
}
因为作者非常糟糕,所以若有不足请在评论区中指出。