Codeforces Round #555 (Div. 3) c2 d e f
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;
}
#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]<<" ";
}
}
#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);
}
}
}
#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的更多相关文章
- Codeforces Round #555 (Div. 3) C2. Increasing Subsequence (hard version)【模拟】
一 题面 C2. Increasing Subsequence (hard version) 二 分析 需要思考清楚再写的一个题目,不能一看题目就上手,容易写错. 分以下几种情况: 1 左右两端数都小 ...
- Codeforces Round #555 (Div. 3) C2. Increasing Subsequence (hard version) (贪心)
题意:给你一组数,每次可以选队首或队尾的数放入栈中,栈中元素必须保持严格单增,问栈中最多能有多少元素,并输出选择情况. 题解:首先考虑队首和队尾元素不相等的情况,如果两个数都大于栈顶元素,那么我们选小 ...
- Codeforces Round #622 (Div. 2) C2. Skyscrapers (hard version)(单调栈,递推)
Codeforces Round #622 (Div. 2) C2. Skyscrapers (hard version) 题意: 你是一名建筑工程师,现给出 n 幢建筑的预计建设高度,你想建成峰状, ...
- 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 ...
- Codeforces Round #622 (Div. 2).C2 - Skyscrapers (hard version)
第二次写题解,请多多指教! http://codeforces.com/contest/1313/problem/C2 题目链接 不同于简单版本的暴力法,这个数据范围扩充到了五十万.所以考虑用单调栈的 ...
- Codeforces Round #622 (Div. 2)C2 Skyscrapers最大"尖"性矩形,思维||分治
题:https://codeforces.com/contest/1313/problem/C2 题意:给出n个数,分别代表第i个位置所能搭建的最大高度,问以哪一个位置的塔的高度为基准向左的每一个塔都 ...
- Codeforces Round #555 (Div. 3) C1,C2【补题】
D1:思路:L,R指针移动,每次选最小的即可. #include<bits/stdc++.h> using namespace std; #define int long long #de ...
- 老年OIer的Python实践记—— Codeforces Round #555 (Div. 3) solution
对没错下面的代码全部是python 3(除了E的那个multiset) 题目链接:https://codeforces.com/contest/1157 A. Reachable Numbers 按位 ...
- CodeForces Round #555 Div.3
A. Reachable Numbers 代码: #include <bits/stdc++.h> using namespace std; ; int N; set<int> ...
随机推荐
- hdu-1143(简单dp)
题目链接: 思路:利用前一个状态找到本次状态需要的次数,就是递推. 建立一个二维数组dp[i][j] ,i表示行,j表示多余的格子. 可以分为三种状态dp[i][0], dp[i][1] ,dp[i] ...
- Java基础知识学习笔记(一)
理解面向对象: Java纯粹的面向对象的程序设计语言,主要表现为Java完全支持面向对象的三个基本特征:继承.封装.多态. Java程序的最小单位是类,类代表客观世界中具有某种特征的一类事物,这些类可 ...
- BZOJ 1009 [HNOI2008]GT考试 (KMP + 矩阵快速幂)
1009: [HNOI2008]GT考试 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 4266 Solved: 2616[Submit][Statu ...
- BZOJ 1008 [HNOI2008]越狱 (简单排列组合 + 快速幂)
1008: [HNOI2008]越狱 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 10503 Solved: 4558[Submit][Status ...
- 基于MATLAB的中值滤波算法实现
在实时图像采集中,不可避免的会引入噪声,尤其是干扰噪声和椒盐噪声,噪声的存在严重影响边缘检测的效果,中值滤波是一种基于排序统计理论的非线性平滑计数,能有效平滑噪声,且能有效保护图像的边缘信息,所以被广 ...
- 4张图看懂delphi 10生成ipa和在iPhone虚拟器上调试(教程)
4张图看懂delphi 10生成ipa和在iPhone虚拟器上调试(教程) (2016-02-01 03:21:06) 转载▼ 标签: delphi ios delphi10 教程 编程 分类: 编程 ...
- delphi自带的SHA1算法
delphi自带的SHA1算法 uses IdHashSHA, IdGlobal; function SHA1(Input: String): String; begin with TIdHashSH ...
- Activity-fragment-ListView展示
在上一篇博客,Android-fragment简介-fragment的简单使用,介绍了简单的使用: 这篇博客主要讲解,在fragment做处理事情(Activity的事情) Activity pack ...
- 【Win2D】【译】Win2D 快速入门
原文链接:http://microsoft.github.io/Win2D/html/QuickStart.htm 快速入门 这是 Win2D 的快速入门教程,将会介绍 Win2D 中的基本功能.你将 ...
- linux系统编程之信号(七):被信号中断的系统调用和库函数处理方式
一些IO系统调用执行时, 如 read 等待输入期间, 如果收到一个信号,系统将中断read, 转而执行信号处理函数. 当信号处理返回后, 系统遇到了一个问题: 是重新开始这个系统调用, 还是 ...