zoukankan      html  css  js  c++  java
  • cf D. Vessels

    http://codeforces.com/contest/371/problem/D

    第一遍写的超时了,然后看了别人的代码,思路都是找一个点的根,在往里面加水的时候碗中的水满的时候建立联系。查询的时候直接查询就行。

     1 #include <cstdio>
     2 #include <cstring>
     3 #include <algorithm>
     4 #define LL __int64
     5 #define maxn 500000
     6 using namespace std;
     7 
     8 int f[maxn];
     9 LL a[maxn],cap[maxn];
    10 
    11 int find1(int x)
    12 {
    13     if(f[x]==x)
    14     {
    15         return x;
    16     }
    17     return f[x]=find1(f[x]);
    18 }
    19 
    20 void deal(int pos,LL y)
    21 {
    22     while(y>0)
    23     {
    24         int c=find1(pos);
    25         a[c]+=y;
    26         y=a[c]-cap[c];
    27         if(y<=0) return;
    28         a[c]=cap[c];
    29         if(a[c]==cap[c]) f[c]=f[c+1];
    30     }
    31 }
    32 
    33 int main()
    34 {
    35     int n;
    36     scanf("%d",&n);
    37     for(int i=1; i<=n; i++)
    38     {
    39         scanf("%I64d",&cap[i]);
    40         f[i]=i;
    41     }
    42     f[n+1]=n+1;
    43     cap[n+1]=200000000000000LL;
    44     int m;
    45     scanf("%d",&m);
    46     while(m--)
    47     {
    48         int xx,p;
    49         LL x;
    50         scanf("%d",&xx);
    51         if(xx==1)
    52         {
    53             scanf("%d%I64d",&p,&x);
    54             deal(p,x);
    55         }
    56         else
    57         {
    58             scanf("%d
    ",&p);
    59             printf("%I64d
    ",a[p]);
    60         }
    61     }
    62     return 0;
    63 }
    View Code
  • 相关阅读:
    选择排序
    散列冲突解决方案
    string stringbuffer StringBuilder
    java关键字
    Vector
    What is the difference between book depreciation and tax depreciation?
    Type of Asset Books in Oracle Fixed Assets
    questions
    Oracle Express 11g
    iot
  • 原文地址:https://www.cnblogs.com/fanminghui/p/4070227.html
Copyright © 2011-2022 走看看