您的位置:首页 > 其它

HDU 5742 It's All In The Mind 水题

2016-08-13 15:22 281 查看
题解估计没人看了,毕竟是水题,把题目公式改写一下,就知道a[1],a[2]尽量大,后面数字尽量小,填数字进去即可。

#include <cstdio>
#include <ctime>
#include <vector>
#include <stack>
#include <cstring>
#include <algorithm>
#include <iostream>
#include <queue>
using namespace std;

#define pr(x) cout<<#x<<" = "<<x<<" "
#define prln(x) cout<<#x<<" = "<<x<<endl

typedef long long LL;
const int maxn = 100 + 10;
int n, m;
LL a[maxn];
void init()
{
scanf("%d%d", &n, &m);
memset(a,-1,sizeof(a));
while (m--)
{
int x,y;
scanf("%d%d", &x, &y);
a[x] = y;
}
}

LL gcd(LL a, LL b)
{
return a%b?gcd(b,a%b):b;
}

void doit()
{
if (a[1]==-1) a[1]=100;
if (a[2] ==-1) a[2]=a[1];
a[n + 1] = 0;
for (int i = n; i >= 3; -- i)
if (a[i]==-1) a[i]=a[i + 1];
LL A = a[1] + a[2];
LL B = 0;
for (int i = 1; i <= n ;++i)
B += a[i];
LL C = gcd(A,B);
A/=C;
B/=C;
printf("%lld/%lld\n", A,B);
}

int main()
{
int T;
double st=clock();
scanf("%d", &T);
while (T--)
{
init();
doit();
}
//cout<<"程序运行时间为: "<< (clock()-st)/1000<<endl;
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: