1.简单数论
你有两个正整数 N 和 M(代表番茄和蛋的单个质量),且它们互质(即 gcd(N, M) == 1)。
你可以使用任意多个番茄和蛋(数量不限,但必须是非负整数),来组合出一个总质量:
a⋅N+b⋅M
其中 a ≥ 0、b ≥ 0。
上式最大为n*m-n-m(Frobenius 数(Frobenius Number))
题目:链接:https://ac.nowcoder.com/acm/contest/18839/1047
来源:牛客网
AC代码:`#include
using namespace std;
int main() {
int N, M;
cin >> N >> M;
cout << (long long)N * M - N - M << endl;
return 0;
}`
2.高中集合问题,我又来辣
链接:https://ac.nowcoder.com/acm/contest/18839/1046
来源:牛客网
最大值很好想,min(x,y)
最小值呢?
由题已知:
n=a+b+c+d
a=只挂a科
b=只挂b科
c=全挂科
d=一科没挂
且x=a+c y=b+c
联立解得
d=n-x-y+c
且d>=0
所以c<x+y-n
所以最小值为 max(0,x+y-n)
AC代码
`#include
include
using namespace std;
int n,x,y;
int main()
{
cin>>n>>x>>y;
int m,s;
m=min(x,y);
s=max(0,x+y-n);
cout<<m<<" "<<s;
}`
浙公网安备 33010602011771号