zoukankan      html  css  js  c++  java
  • 【二分+扫描线乱搞】B. Producing Snow

    注意二分写法。。。

    http://codeforces.com/problemset/problem/923/B

    #include<cstdio>
    #include<string.h>
    
    using namespace std;
    typedef long long ll;
    const int maxn = 1e5+3;
    ll a[maxn],b[maxn];
    ll sum[maxn];
    ll tot[maxn];
    int n;
    ll ans[maxn];
    int flag[maxn];
    void erfen(int i){
        int l=i-1,r=n+1;
        while(l<r){
            int mid=(l+r)>>1;
            if(sum[mid]-sum[i-1]<=a[i]){
                l=mid+1;
            }else{
                r=mid;
            }
        }
    //    printf("%d
    ",r);
        ans[r]+=a[i]-(sum[r-1]-sum[i-1]);
        flag[i]++;
        flag[r]--;
    }
    int main(){
        memset(ans,0,sizeof(ans));
        memset(flag,0,sizeof(flag));
        memset(tot,0,sizeof(tot));
        scanf("%d",&n);
        for(int i =1;i<=n;i++){
            scanf("%I64d",&a[i]);
        }
        sum[0]=0;
        for(int i=1;i<=n;i++){
            scanf("%I64d",&b[i]);
            sum[i]=sum[i-1]+b[i];
        }
        for(int i=1;i<=n;i++){
            erfen(i);
        }
    
        int cnt=0;
        for(int i=1;i<=n;i++){
            cnt+=flag[i];
            tot[i]=cnt*b[i]+ans[i];
        }
        printf("%I64d",tot[1]);
        for(int i=2;i<=n;i++){
            printf(" %I64d",tot[i]);
        }
        puts("");
    
        return 0;
    }
  • 相关阅读:
    js的同步和异步
    事件三
    事件2
    JS作用域题
    游戏之乐
    NSTimer(2)
    NSTimer
    理解 Objective-C Runtime
    iOS系统安全机制概览
    Which is the best of GCD, NSThread or NSOperationQueue?
  • 原文地址:https://www.cnblogs.com/itcsl/p/8570414.html
Copyright © 2011-2022 走看看