zoukankan      html  css  js  c++  java
  • 2017 ECL-FINAL J.Straight Master

    题目链接:http://codeforces.com/gym/101775/problem/J

    思路:序列差分一下,然后用得到的查分序列乱搞就可以了

               注意差分序列第一项等于a[i],之后n-1项为cha[i]=a[i]-a[i-1],第n+1项为0-a[n]

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 
     4 typedef long long ll;
     5 const int mod=1e9+7;
     6 const int maxn=2e5+10;
     7 const int inf=0x3f3f3f3f;
     8 const double eps=1e-14;
     9 const double pi=acos(-1.0);
    10 #define mem(s,v) memset(s,v,sizeof(s))
    11 #define pdd pair<double,double>
    12 #define pii pair<int,int>
    13 
    14 int t,n;
    15 int a[maxn],cha[maxn];
    16 
    17 int main(){
    18     scanf("%d",&t);
    19     for(int k=1;k<=t;++k){
    20         scanf("%d",&n);
    21         for(int i=1;i<=n;++i){
    22             scanf("%d",&a[i]);
    23             if(i==1) cha[i]=a[i];
    24             else cha[i]=a[i]-a[i-1];
    25         }
    26         cha[n+1]=0-a[n];
    27         int sum=0;
    28         int flag=1;
    29         if(cha[2]<0||cha[3]<0) flag=0;
    30         for(int i=1;i<=n+1;++i){
    31 //            cout<<cha[i]<<" ";
    32             if(cha[i]>=0) sum+=cha[i];
    33             int temp=i+3;
    34             if(temp>n+1) break;
    35             if(cha[temp]<0) sum+=cha[temp];
    36             if(sum<0) break;
    37         }
    38 //        cout<<endl;
    39         if(sum) flag=0;
    40         printf("Case #%d: ",k);
    41         if(flag) printf("Yes
    ");
    42         else printf("No
    ");
    43     }
    44     return 0;
    45 }
  • 相关阅读:
    HDU 1003 Max Sum
    HDU 1728 逃离迷宫
    UVA 10057 A midsummer night's dream.
    HDU 1232 畅通工程
    poj3331
    poj3481
    poj1053
    poj3281
    poj3199
    !!! Gridview的多种使用方法总结
  • 原文地址:https://www.cnblogs.com/wangcwcgnaw/p/9936832.html
Copyright © 2011-2022 走看看