zoukankan      html  css  js  c++  java
  • 【NOIP2012模拟8.6】绕圈跑

    这题考场刚了很久,最后没想到正解,只好打了个n2暴力。
    后来发现正解很容易理解,就开打了。
    1h。。。
    2h。。。
    3h。。。
    精度问题坑了我很久[○・`Д´・ ○]
    没想到的是:

    反正都要离散化,为什么不将它全部都乘一个最大速度呢???

    WDF!!!

    好了,一改,就切了。。。o ( ╥ ﹏ ╥ ) o
    上标:

    #include<cstdio>
    #include<algorithm>
    #define N 100010
    #define db long double
    #define ll long long
    using namespace std;
    struct node{int fr,re;}b[N];
    int n,l,c,a[N],id[N],t[N<<3],tot=0;
    ll ans=0,sum=0,q;
    db time;
    
    inline int read()
    {
    	int x=0; char c=getchar();
    	while (c<'0' || c>'9') c=getchar();
    	while (c>='0' && c<='9') x=(x<<1)+(x<<3)+(c^48),c=getchar();
    	return x;
    }
    
    int cmp(node x,node y) {return x.re<y.re;}
    
    void insert(int x,int l,int r,int ins)
    {
    	t[x]++;
    	if (l==r) return;
    	int mid=l+r>>1;
    	if (ins<=mid) insert(x<<1,l,mid,ins);
    	else insert(x<<1|1,mid+1,r,ins);
    }
    
    int total(int x,int l,int r,int fl,int fr)
    {
    	if (fl==l && fr==r) return t[x];
    	int mid=l+r>>1;
    	if (fr<=mid) return total(x<<1,l,mid,fl,fr);
    	else if (fl>mid) return total(x<<1|1,mid+1,r,fl,fr);
    	else return total(x<<1,l,mid,fl,mid)+total(x<<1|1,mid+1,r,mid+1,fr);
    }
    
    int main()
    {
    	freopen("circle.in","r",stdin);
    	freopen("circle.out","w",stdout);
    	n=read(),l=read(),c=read();
    	for (int i=1;i<=n;i++) a[i]=read();
    	sort(a+1,a+n+1);time=1.0*l*c/a[n];
    	for (int i=1;i<=n;i++)
    	{
    		q=a[i]*time/c;
    		b[i].re=a[i]*l-q*a[n];
    		b[i].fr=i;
    	}
    	sort(b+1,b+n+1,cmp);
    	for (int i=1;i<=n;i++)
    	{
    		id[b[i].fr]=++tot;
    		while (b[i].re==b[i+1].re) id[b[++i].fr]=tot;
    	}
    	for (int i=1;i<=n;i++)
    	{
    		q=a[i]*time/c;
    		ans+=(i-1)*(q-1)-sum;
    		ans+=total(1,1,tot,1,id[i]);
    		insert(1,1,tot,id[i]);
    		sum+=q;
    	}
    	printf("%lld
    ",ans);
    	return 0;
    }
    
    转载需注明出处。
  • 相关阅读:
    Linux运维常见故障排查和处理的技巧汇总
    React 页面开发服务规范抽象
    解决 NVM 安装 Node 版本出现 TLS 问题
    解决部署 React 框架 Next.js 到 IIS 上刷新页面出现 404 问题
    正则表达式
    rsa加解密代码实现
    zookeeper介绍(5)快速入门教程
    yii2-adminlte-asset中MenuHelper 菜单伸缩问题
    yii2-admin autocomplete 输出弹出框位置不对
    php curl模拟常用的请求
  • 原文地址:https://www.cnblogs.com/jz929/p/11817587.html
Copyright © 2011-2022 走看看