2017 ACM-ICPC 亚洲区(南宁赛区)网络赛 The Heaviest Non-decreasing Subsequence Problem
2017-09-24 19:44
501 查看
痛并快乐着,调了一下午的最长上升子序列,mm,不会树状数组,比完赛后旁边哥们告诉我 ,把一个5拆成5个1就行,gg,日了狗了
ac代码
#include <cstdio>
#include <cstring>
#include <string>
#include <algorithm>
#include <cmath>
#define inf 0x3f3f3f3f
using namespace std;
const int maxn=1e6+10;
int a[2*maxn];
int dp[2*maxn];
int len;
int binary_search(int i){
int left=1,right=len;
int mid;
while(left < right){
mid=left + (right-left)/2;
if(dp[mid] > a[i])
right=mid;
else
left=mid+1;
}
return left;
}
int main(){
int tmp;
int n=1;
while(~scanf("%d",&tmp)){
if(tmp >= 10000){
tmp=tmp-10000;
for(int i=0;i<5;i++){
a[n++]=tmp;
}
}
else if(tmp >=0 && tmp < 10000){
a[n++]=tmp;
}
}
len=1;
dp[1]=a[1];
int flag=0;
for(int i=2;i<n;i++){
flag=1;
if(a[i] >= dp[len]){
dp[++len]=a[i];
}
else{
int pos=lower_bound(dp+1,dp+1+len,a[i])-dp;
while(dp[pos] <= a[i])
pos++;
dp[pos]=a[i];
}
}
if(!flag) printf("0\n");
else printf("%d\n",len);
return 0;
}
还准备树状数组搞一下,试试哈
ac代码
#include <cstdio>
#include <cstring>
#include <string>
#include <algorithm>
#include <cmath>
#define inf 0x3f3f3f3f
using namespace std;
const int maxn=1e6+10;
int a[2*maxn];
int dp[2*maxn];
int len;
int binary_search(int i){
int left=1,right=len;
int mid;
while(left < right){
mid=left + (right-left)/2;
if(dp[mid] > a[i])
right=mid;
else
left=mid+1;
}
return left;
}
int main(){
int tmp;
int n=1;
while(~scanf("%d",&tmp)){
if(tmp >= 10000){
tmp=tmp-10000;
for(int i=0;i<5;i++){
a[n++]=tmp;
}
}
else if(tmp >=0 && tmp < 10000){
a[n++]=tmp;
}
}
len=1;
dp[1]=a[1];
int flag=0;
for(int i=2;i<n;i++){
flag=1;
if(a[i] >= dp[len]){
dp[++len]=a[i];
}
else{
int pos=lower_bound(dp+1,dp+1+len,a[i])-dp;
while(dp[pos] <= a[i])
pos++;
dp[pos]=a[i];
}
}
if(!flag) printf("0\n");
else printf("%d\n",len);
return 0;
}
还准备树状数组搞一下,试试哈
相关文章推荐
- 2017 ACM-ICPC 亚洲区(南宁赛区)网络赛 The Heaviest Non-decreasing Subsequence Problem
- 2017 ACM-ICPC 亚洲区(南宁赛区)网络赛:The Heaviest Non-decreasing Subsequence Problem
- 2017 ACM-ICPC 亚洲区(南宁赛区)网络赛-L. The Heaviest Non-decreasing Subsequence Problem
- 2017 ACM-ICPC 亚洲区(南宁赛区)网络赛 L.The Heaviest Non-decreasing Subsequence Problem
- 2017 ACM-ICPC 亚洲区(南宁赛区)网络赛 L. The Heaviest Non-decreasing Subsequence Problem
- The Heaviest Non-decreasing Subsequence Problem 最长非递减子序列 2017 ACM-ICPC 亚洲区(南宁赛区)网络赛
- 2017 ACM-ICPC 亚洲区(南宁赛区)网络赛 L. The Heaviest Non-decreasing Subsequence Problem(最长不下降子序列变形)
- 计蒜客 2017 ACM-ICPC 亚洲区(南宁赛区)网络赛 The Heaviest Non-decreasing Subsequence Problem
- 2017 ACM-ICPC 亚洲区(南宁赛区)网络赛 The Heaviest Non-decreasing Subsequence Problem 最长不下降序列
- L. The Heaviest Non-decreasing Subsequence Problem -最长不降子序列变形nlogn-2017 ACM-ICPC 亚洲区(南宁赛区)网络赛
- 2017 ACM-ICPC 亚洲区(南宁赛区)网络赛:L. The Heaviest Non-decreasing Subsequence Problem
- 2017 ACM-ICPC 亚洲区(南宁赛区)网络赛 L. The Heaviest Non-decreasing Subsequence Problem (LIS)
- 2017 icpc 南宁赛区 L.The Heaviest Non-decreasing Subsequence Problem(LIS)
- 2017 ACM-ICPC 亚洲区(南宁赛区)网络赛 L. The Heaviest Non-decreasing Subsequence Problem
- 2017 ACM-ICPC 亚洲区(南宁赛区)网络赛 L. The Heaviest Non-decreasing Subsequence Problem(最长非减子序列+思路)
- 2017 ACM-ICPC 亚洲区(南宁赛区)网络赛The Heaviest Non-decreasing Subsequence Problem(线段树优化DP)
- The Heaviest Non-decreasing Subsequence Problem ACM-ICPC南宁wa
- The Heaviest Non-decreasing Subsequence Problem(2017南宁网络赛)
- The Heaviest Non-decreasing Subsequence Problem 2017 ACM-ICPC 亚洲区(南宁赛区)网络赛 常见问题
- 2017ICPC南宁赛区网络赛 The Heaviest Non-decreasing Subsequence Problem (最长不下降子序列)