c2:Increasing Subsequence (hard version)

那边小取那边,然后相等比较后面的长度

#include<bits/stdc++.h>
using namespace std;
#define maxn 500005
int a[maxn];
int main(){
    ,in;
    scanf("%d",&n);
    ;j<n;j++){
        scanf("%d",&a[j]);
        if(mx<a[j]){
            mx = a[j];
            in = j;
        }
    }
    string s="";
    ,r = n-,k=-;
    while(l<=r){
        if(k<min(a[l],a[r])){
            if(a[l]<a[r]){
                s+="L";
                k=a[l];
                l++;
            }else if(a[l]>a[r]){
                s+='R';
                k=a[r];
                r--;
            }else{
               ,x=k;
               ,y=k;
               for(int i = l;i<=in;i++){
                  if(a[i]>x){
                     x = a[i];
                     res1++;
                  }else break;
               }

               for(int i = r;i>=in;i--){
                  if(a[i]>y){
                     y = a[i];
                     res2++;
                  }else break;
               }
               if(res1>res2){
                   k = a[l];
                   l++;
                   s+='L';
               }else{
                   k = a[r];
                   r--;
                   s+='R';
               }

            }
        }else if(k<a[l]){
            s+='L';
            k = a[l];
            l++;
        }else if(k<a[r]){
            s+='R';
            k = a[r];
            r--;
        }else break;

    }
    cout<<s.size()<<endl;
    cout<<s<<endl;
}

D:N Problems During K Days

#include<bits/stdc++.h>
using namespace std;
#define maxn 500005
#define LL long long
LL a[maxn];
int main(){
   LL n,m;
   scanf(;j<m;j++){
      a[j] = (n - (m - j) * (m -  -j) / ) / (m-j);
      //cout<<a[j]<<endl;
      &&a[j]>a[j-]*){
        a[j]=a[j-]*;
      }
      n-=a[j];
      ){
        cout<<"NO"<<endl;
        ;
      }
   }
    if(n){
        cout<<"NO"<<endl;
        ;

    }
   cout<<"YES"<<endl;
   ;j<m;j++){
      cout<<a[j]<<" ";
   }
}

E:Minimum Array

#include<bits/stdc++.h>
using namespace std;
#define maxn 500005
#define LL long long
int a[maxn];
map<int,int>mp;
set<int>s;
vector<int>Q;
int main(){
   int n;
   cin>>n;
   ;j<n;j++){
      cin>>a[j];
   }
   ;j<n;j++){
       int x;
       cin>>x;
       mp[x]++;
       s.insert(x);
   }
   ;j<n;j++){
      int x = (n-a[j])%n;
      set<int> ::iterator it = s.lower_bound(x);
      if(it==s.end()){
         it=s.begin();
      }
      ){
         mp[*it]--;
         cout<<(*it+a[j])%n<<" ";
      }
      ){
         s.erase(it);
      }

   }
}

F:Maximum Balanced Circle

#include<bits/stdc++.h>
using namespace std;
#define maxn 500005
#define LL long long
int a[maxn];
map<int,int>mp;
set<int>s;
vector<int>q,w;
int main(){
   int n;
   cin>>n;
   ;j<n;j++){
     scanf("%d",&a[j]);
     mp[a[j]]++;
     q.push_back(a[j]);
   }
   sort(q.begin(),q.end());
   q.erase(unique(q.begin(),q.end()),q.end());
   ,mx = ,res = ,r=-;
   ;j<q.size();j++){
      ){
         res+=mp[q[j]];
         if(res>mx){
            mx = res;
            r = j;
         }
      }else{
         ]+){
            ){
                res+=mp[q[j]];
                if(res>mx){
                    mx = res;
                    r = j;
                }
            }else{
                res+=mp[q[j]];
                if(res>mx){
                    mx = res;
                    r = j;
                }
                res = mp[q[j]];
            }
         }else{
            res=mp[q[j]];
            if(res>mx){
                mx = res;
                r = j;
            }
         }
      }
   }
//   if(mx==21){
//      cout<<q[r]<<endl;
//   }
//   cout<<mx<<" "<<r<<endl;
   int s = mp[q[r]];
   ;j>=;j--){

      !=q[j+]){
         l=j+;
         break;
      }else{
        s+=mp[q[j]];
        if(s==mx){
            l=j;
            break;
        }
      }
   }
//   cout<<l<<endl;
   for(int j=l;j<=r;j++){
      ){
         w.push_back(q[j]);
         mp[q[j]]--;
      }
   }
   for(int j=r;j>=l;j--){
      w.push_back(q[j]);
   }
   cout<<w.size()<<endl;
   ;j<w.size();j++){
      cout<<w[j]<<" ";
   }
}

Codeforces Round #555 (Div. 3) c2 d e f的更多相关文章

  1. Codeforces Round #555 (Div. 3) C2. Increasing Subsequence (hard version)【模拟】

    一 题面 C2. Increasing Subsequence (hard version) 二 分析 需要思考清楚再写的一个题目,不能一看题目就上手,容易写错. 分以下几种情况: 1 左右两端数都小 ...

  2. Codeforces Round #555 (Div. 3) C2. Increasing Subsequence (hard version) (贪心)

    题意:给你一组数,每次可以选队首或队尾的数放入栈中,栈中元素必须保持严格单增,问栈中最多能有多少元素,并输出选择情况. 题解:首先考虑队首和队尾元素不相等的情况,如果两个数都大于栈顶元素,那么我们选小 ...

  3. Codeforces Round #622 (Div. 2) C2. Skyscrapers (hard version)(单调栈,递推)

    Codeforces Round #622 (Div. 2) C2. Skyscrapers (hard version) 题意: 你是一名建筑工程师,现给出 n 幢建筑的预计建设高度,你想建成峰状, ...

  4. Codeforces Round #568 (Div. 2) C2. Exam in BerSU (hard version)

    链接: https://codeforces.com/contest/1185/problem/C2 题意: The only difference between easy and hard ver ...

  5. Codeforces Round #622 (Div. 2).C2 - Skyscrapers (hard version)

    第二次写题解,请多多指教! http://codeforces.com/contest/1313/problem/C2 题目链接 不同于简单版本的暴力法,这个数据范围扩充到了五十万.所以考虑用单调栈的 ...

  6. Codeforces Round #622 (Div. 2)C2 Skyscrapers最大"尖"性矩形,思维||分治

    题:https://codeforces.com/contest/1313/problem/C2 题意:给出n个数,分别代表第i个位置所能搭建的最大高度,问以哪一个位置的塔的高度为基准向左的每一个塔都 ...

  7. Codeforces Round #555 (Div. 3) C1,C2【补题】

    D1:思路:L,R指针移动,每次选最小的即可. #include<bits/stdc++.h> using namespace std; #define int long long #de ...

  8. 老年OIer的Python实践记—— Codeforces Round #555 (Div. 3) solution

    对没错下面的代码全部是python 3(除了E的那个multiset) 题目链接:https://codeforces.com/contest/1157 A. Reachable Numbers 按位 ...

  9. CodeForces Round #555 Div.3

    A. Reachable Numbers 代码: #include <bits/stdc++.h> using namespace std; ; int N; set<int> ...

随机推荐

  1. 2018.10.18 NOIP训练 ZUA球困难综合征(线段树)

    传送门 考虑到模数等于7 * 13 * 17 * 19. 那么只需要维护四棵线段树求出每个数处理之后模7,13,17,197,13,17,197,13,17,19的值再用crtcrtcrt合并就行了. ...

  2. 2018.09.23 bzoj1076: [SCOI2008]奖励关(期望+状压dp)

    传送门 一道神奇的期望状压dp. 用f[i][j]f[i][j]f[i][j]表示目前在第i轮已选取物品状态为j,从现在到第k轮能得到的最大贡献. 如果我们从前向后推有可能会遇到不合法的情况. 所以我 ...

  3. 第一个Django应用

    Django教程:http://www.liujiangblog.com/course/django/2 第一个Django应用 该应用包括以下两个部分: 一个可以让公众用户进行投票和查看投票结果的站 ...

  4. java redis基本操作

    package com.redis; import java.util.ArrayList;import java.util.Iterator;import java.util.List;import ...

  5. Linux必须学的东西,鉴于各大公司实际开发都不用Windows系统

    Windows安全性比较差,所以各大公司会使用其他的平台,所以像Linux就是很常用的,基于Unix的开源系统,鉴于很多人写的很散,所以自己总结下对于自己有用的重点,现在总结下简单的linxu的命令使 ...

  6. UVa 1639 Candy (数学期望+组合数学+高精度存储)

    题意:有两个盒子各有n个糖,每次随机选一个(概率分别为p,1-p),然后吃掉,直到有一次,你打开盒子发现,没糖了! 输入n,p,求另一个盒子里糖的个数的数学期望. 析:先不说这个题多坑,首先要用lon ...

  7. 电信网上营业厅-客户充值缴费时间段数据挖掘--spss

    最近研究分析了“云南电信网上营业厅”e9宽带续约缴费的数据,目前宽带续约量为171人,今天需要谈论的是:如何利用SPSS挖掘出“客户充值缴费的时间段”客户喜欢在哪个时间段来网厅进行充值缴费 云南电信网 ...

  8. OpenNI体感应用开发实战 (Kinect相机)

    一直以为Kinect是双目摄像机,或者是三目,看到那三个摄像头怎么可能不产生这样的疑惑,实际上它确实是单目摄像机,它三个摄像头分别为:红外发射器,RGB彩色相机,红外接收器.而其中,红外发射器和红外接 ...

  9. (有点递归的感觉)RGCDQ--hdu--5317

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5317 感觉好神奇呀,一堆数在一起可以找到规律,学长讲完后,觉得自己是如此的so young f[x] ...

  10. 一次简单完整的自动化登录测试-基于python+selenium进行cnblog的自动化登录测试

    Web登录测试是很常见的测试,手动测试大家再熟悉不过了,那如何进行自动化登录测试呢!本文就基于python+selenium结合unittest单元测试框架来进行一次简单但比较完整的cnblog自动化 ...