【ATcode】AtCoDeerくんと選挙速報AtCoDeer and Election Report(思维)

    xiaoxiao2022-07-12  144

    题目链接

    题目大意:两个人进行选举,现在有N个时间戳,每一个时间戳会给你两个人获得选票的比例,然后现在让你通过这些比例来推算出一共有多少选票,选票过程每个人的票数不会减少

    思路:这个 就是思维吧,想清楚了就很好做了,之前思路卡在一共的票数上面,最后发现总共的票数虽然能够体现总比例之间的倍数关系,但是有的情况下并不符合单个人的倍数关系,

    这个题目在计算多少多少的倍数的时候,注意一下取整就好了,

    代码:

    #include<iostream> #include<algorithm> #include<cstdio> #include<cstring> #define ll long long using namespace std; int main() { int n; scanf("%d",&n); ll ans1=1,ans2=1; ll a,b; for(int i=1;i<=n;i++) { scanf("%lld%lld",&a,&b); ll be=1; if(a<ans1) { if(ans1%a==0) be=ans1/a; else be=ans1/a+1; } if(b<ans2) { ll be1=1; if(ans2%b==0) be1=ans2/b; else be1=ans2/b+1; be=max(be,be1); } ans1=a*be; ans2=b*be; } printf("%lld\n",ans1+ans2); }

     

    最新回复(0)