本文主要是介绍浙江财经大学第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: 2696User: team108Language: C++Result: AcceptedTime:148 msMemory:1696 kb
****************************************************************/
123
这篇关于浙江财经大学第14届校赛 F Formula One (思维)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!