HDU 5742 It's All In The Mind (贪心) 2016杭电多校联合第二场

题目:传送门

题意:求题目中的公式的最大值,且满足题目中的三个条件。

题解:前两个数越大越好。

#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\n",sum1,sum2);
    }
    return 0;
}

 

posted @ 2016-08-08 19:47  Ritchie丶  阅读(187)  评论(0编辑  收藏  举报