浙江财经大学第14届校赛 F Formula One (思维)
【题意】
给N个车, 时间P 半径R, n个汽车 完成一圈的信息,
求从0-P 发生超车的次数;
【无敌LK算法】
扫描n汽车, 对于 两辆汽车 求 第一次相遇的时间 时间为 (t1*t2) /(t1-t2) 故 在p 内相遇的次数为
P*(t1-t2) / (t1*t2) 当 恰p结束 两辆车相遇 不算超车 减一
嗯,应该是这样,
【code】
#include <iostream> #include <stdio.h> using namespace std; typedef long long ll; ll a[120]; int main() { ll t,sum,r,m,s,n,p,v,ans=1; scanf("%d",&t); while (t--) { scanf("%lld%lld%lld",&n,&p,&r); sum=0; for (int i=1;i<=n;i++) scanf("%lld",&a[i]); for (int i=1;i<=n;i++) for (int j=i+1;j<=n;j++) { s=a[i]*a[j]; if (a[i]-a[j]!=0) { m=max(a[i],a[j])-min(a[i],a[j]); v=p*m; r=v/s; if (v%s==0) r--; sum+=r; } } printf("Case #%d: %lld\n",ans++,sum); } return 0; } /************************************************************** Problem: 2696 User: team108 Language: C++ Result: Accepted Time:148 ms Memory:1696 kb ****************************************************************/
123
岂曰无衣?与子同袍。王于兴师,修我戈矛。与子同仇!
岂曰无衣?与子同泽。王于兴师,修我矛戟。与子偕作!
岂曰无衣?与子同裳。王于兴师,修我甲兵。与子偕行!