题目:传送门。
题意:求题目中的公式的最大值,且满足题目中的三个条件。
题解:前两个数越大越好。
#include <iostream> #include <algorithm> #include <cstdio> #include <cstring> using namespace std; int gcd(int a,int b) { if(!b) return a; return gcd(b,a%b); } int main() { int t; cin>>t; while(t--) { int n,m,data[105]; memset(data,-1,sizeof(data)); cin>>n>>m; int a,b; for(int i=0;i<m;i++) { cin>>a>>b; data[a]=b; } int tmp=0; for(int i=n;i>=3;i--) { if(data[i]==-1) data[i]=tmp; tmp=data[i]; } if(data[1]==-1) data[1]=100; if(data[2]==-1) data[2]=data[1]; int sum1=data[1]+data[2]; int sum2=0; for(int i=1;i<=n;i++) sum2+=data[i]; int d=gcd(sum1,sum2); sum1/=d; sum2/=d; printf("%d/%d ",sum1,sum2); } return 0; }