zoukankan      html  css  js  c++  java
  • Codeforces_732_D

    http://codeforces.com/problemset/problem/732/D

    二分查找。

    #include<iostream>
    #include<cstring>
    #include<cstdio>
    #include<algorithm>
    using namespace std;
    
    int n,m,d[100005],a[100005],ok[100005];
    
    int f(int x)
    {
        memset(ok,0,sizeof(ok));
        long long sum = 0;
        for(int i = x;i >= 1;i--)
        {
            if(d[i] && !ok[d[i]])
            {
                ok[d[i]] = 1;
                sum += a[d[i]];
            }
            else if(sum)    sum--;
        }
        for(int i = 1;i <= m;i++)
        {
            if(!ok[i])  return 0;
        }
        if(sum) return 0;
        return 1;
    }
    int main()
    {
        scanf("%d%d",&n,&m);
        for(int i = 1;i <= n;i++)   scanf("%d",&d[i]);
        for(int i = 1;i <= m;i++)   scanf("%d",&a[i]);
        int l = 1,r = n;
        while(l < r)
        {
            int mid = (l+r)/2;
            if(f(mid))  r = mid;
            else    l = mid+1;
        }
        if(f(l))    printf("%d
    ",l);
        else    printf("-1
    ");
        return 0;
    }
  • 相关阅读:
    autofac meta
    RazorEngine 3.6.5.0
    pfx 转 snk
    git
    Nlog Layout
    NLog 传递参数
    扫描.net dll引用dll
    vbox android x86 分辨率
    Andriod x86 4,4
    .net cli 源码
  • 原文地址:https://www.cnblogs.com/zhurb/p/6101006.html
Copyright © 2011-2022 走看看