sdut 1446 超级玛丽

http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=1446

题意:你妹的,我妹的,他妹的,中文题啊,坑妹啊,中文题读错了。。。。。漏掉了条件了,返回的是如果浪子最终跳跃次数多于男爵的最终跳跃次数,只想骂自己,漏掉了个条件搞的自己无可奈何,一直比较的是距离,题目要求比较的是跳跃次数

刚开始循环是n循环+跳出的区间循环,造成超时,又来看了别人代码,醒悟过来,区间没必要循环,只要比大小就可以了。。。。。。

View Code
 1 #include<stdio.h>
 2 
 3 long long f(long long n,long long d,long long m,long long l)
 4 {
 5     long long left=0;
 6     long long right=0;
 7     long long dis,step;
 8     for(long long i=0; i<n; i++)
 9     {
10         left=(i+1)*m;
11         right=i*m+l;
12         step=(right+d)/d;
13         if(step*d<left) break;
14     }
15     return step;
16 }
17 
18 int main()
19 {
20     int T;
21     long long n1,n2,m1,m2,l1,l2;
22     long long ans1,ans2,d1,d2;
23     scanf("%d",&T);
24     while(T--)
25     {
26         scanf("%lld%lld%lld%lld",&n1,&d1,&m1,&l1);
27         scanf("%lld%lld%lld%lld",&n2,&d2,&m2,&l2);
28         ans1=f(n1,d1,m1,l1);
29         ans2=f(n2,d2,m2,l2);
30         //printf("%lld %lld\n",ans1,ans2);
31         if(ans1==ans2) printf("Az is Winner at %lld\n",d2*ans2);
32         else
33         {
34             if(ans1>ans2) printf("Lz is Winner at %lld\n",d1*ans1);
35             else printf("Lz is Winner at %lld\n",d2*ans2);
36         }
37     }
38     return 0;
39 }

 

 

转载于:https://www.cnblogs.com/zsboy/archive/2013/01/27/2878583.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值