社区讨论
60pts WA on#5#7#8#9
P1080[NOIP 2012 提高组] 国王游戏参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mkfks3xf
- 此快照首次捕获于
- 2026/01/15 22:59 上个月
- 此快照最后确认于
- 2026/01/15 23:49 上个月
CPP
#include<bits/stdc++.h>
using namespace std;
struct person
{
long long l,r;
}p[1005];
bool cmp(person a,person b)
{
return a.l/b.r<b.l/a.r;
}
struct node
{
long long len,a[10005];
node()
{
memset(a,0,sizeof a);
len=1;
};
};
void output(node x)
{
for(int i = x.len;i >= 1;i--)
cout<<x.a[i];
}
node operator*(node a,long long b)
{
node c;
c.len=a.len;
for(int i = 1;i <= c.len;i++)
c.a[i]=a.a[i]*b;
for(int i = 1;i <= c.len;i++)
{
c.a[i]+=c.a[i-1]/10;
c.a[i-1]%=10;
}
while(c.a[c.len+1])c.len++;
return c;
}
node operator/(node a,long long b)
{
node c;
c.len=a.len;
long long res = 0;
for(int i = c.len;i >= 1;i--)
{
c.a[i]=(a.a[i]+res*10)/b;
res=(a.a[i]+res*10)%b;
}
while(c.a[c.len]==0)
c.len--;
return c;
}
bool operator>(node a,node b)
{
if(a.len!=b.len)return a.len>b.len;
for(int i = 1;i <= a.len;i++)
if(a.a[i]!=b.a[i])return a.a[i]>b.a[i];
return 0;
}
node mul,maxn;
int main()
{
ios::sync_with_stdio(0);
int n;
cin>>n;
for(int i = 1;i <= n+1;i++)
cin>>p[i].l>>p[i].r;
sort(p+2,p+n+2,cmp);
mul.a[1]=1;
mul=mul*p[1].l;
for(int i = 2;i <= n+1;i++)
{
node y = mul/p[i].r;
if(y>maxn)
maxn=y;
mul=mul*p[i].l;
}
output(maxn);
return 0;
}
回复
共 0 条回复,欢迎继续交流。
正在加载回复...