STL or 线段树 --- CSU 1555: Inversion Sequence
Inversion Sequence
Problem's Link: http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1555
Mean:
给你一个序列a[n],要你按照要求去构造一个序列b。
序列a[i]表示序列b中的i前面有a[i]个数比i大。
转换一下就是:
已知一个连续的序列(1,2,3,4,...),然后告诉了我们这个序列中每个数前面比本身大的个数,根据这些条件将这个序列调整顺序,找到满足条件的序列。
analyse:
STL大法好。直接用vector来insert。
Time complexity: O(nlogn)
Source code:
// Memory Time
// 1347K 0MS
// by : crazyacking
// 2015-03-29-23.24
#include<map>
#include<queue>
#include<stack>
#include<cmath>
#include<cstdio>
#include<vector>
#include<string>
#include<cstdlib>
#include<cstring>
#include<climits>
#include<iostream>
#include<algorithm>
#define MAXN 1000010
#define LL long long
using namespace std;
const int maxn = ;
int a[maxn];
int ans[maxn];
vector<int>v; int main(){
// freopen("data.in","r",stdin);
int n;
while(scanf("%d",&n)!=EOF){
for(int i=;i<n;i++){
scanf("%d",&a[i]);
}
v.clear();
v.push_back();
int ok=;
for(int i=n-;i>=;i--)
{
if(v.size()<=a[i])
{
ok=;
break;
}
v.insert(v.begin()++a[i],i+);
// for(int j=0;j<v.size();j++)
// printf("%d%c",v[j],j==v.size()-1?'\n':' ');
}
if(ok){
for(int i=;i<=n;i++){
printf("%d%c",v[i],i==n?'\n':' ');
}
}else{
puts("No solution");
}
}
return ;
} /**************************************************************
Problem: 1555
User: crazyacking
Language: C++
Result: Accepted
Time:164 ms
Memory:1576 kb
****************************************************************/
STL or 线段树 --- CSU 1555: Inversion Sequence的更多相关文章
- CSUOJ 1555 Inversion Sequence
1555: Inversion Sequence Time Limit: 2 Sec Memory Limit: 256 MBSubmit: 107 Solved: 34 Description ...
- 1555: Inversion Sequence (通过逆序数复原序列 vector的骚操作!!!)
1555: Inversion Sequence Submit Page Summary Time Limit: 2 Sec Memory Limit: 256 Mb Su ...
- 线段树 区间合并 F - Sequence operation
F - Sequence operation 题解:这个题目不是一个特别难的题目,但是呢,写了好久,首先线段树难敲,其次就是bug难找,最后这个代码都被我改的乱七八糟的了,这个有两个地方要注意一下,一 ...
- 【线段树】HDU 3397 Sequence operation 区间合并
操作 Change operations: 0 a b change all characters into '0's in [a , b] 1 a b change all characters i ...
- csu 1555(线段树经典插队模型-根据逆序数还原序列)
1555: Inversion Sequence Time Limit: 2 Sec Memory Limit: 256 MBSubmit: 469 Solved: 167[Submit][Sta ...
- Inversion Sequence(csu 1555)
Description For sequence i1, i2, i3, … , iN, we set aj to be the number of members in the sequence w ...
- HDU 1394 Minimum Inversion Number(最小逆序数/暴力 线段树 树状数组 归并排序)
题目链接: 传送门 Minimum Inversion Number Time Limit: 1000MS Memory Limit: 32768 K Description The inve ...
- ACM Minimum Inversion Number 解题报告 -线段树
C - Minimum Inversion Number Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d &a ...
- HDU-1394 Minimum Inversion Number 线段树+逆序对
仍旧在练习线段树中..这道题一开始没有完全理解搞了一上午,感到了自己的shabi.. Minimum Inversion Number Time Limit: 2000/1000 MS (Java/O ...
随机推荐
- webService----wsimport调用方式
一.工具 1.myEclipse 2.jdk1.7 二.创建服务端 1.创建web Service Project 命名为TheService 2.创建class类ServiceHello.java, ...
- Maven - 项目结构
一个基础的Maven Java项目结构图如下所示: Project Name |__________ pom.xml |__________ src | |__ ...
- Microsoft Fakes
http://baike.baidu.com/view/9602275.htm?fr=aladdin http://technet.microsoft.com/zh-cn/magazine/hh549 ...
- 如何在使用MAMP环境下安装MySQLdb
我的电脑上没有安装XAMPP,而是安装了MAMP PRO,其实两者都差不多,都是PHP+MySQL+Apache的集成环境,只是MAMP的GUI界面更华丽一些,但是也更复杂一些. 好了不说这些,说说问 ...
- [转]jQuery.Autocomplete实现自动完成功能(详解)
本篇文章除了介绍jquery.autocomplete基本参数外,主要说明jquery.autocomplete的数据源的格式问题. 1.jquery.autocomplete参考地址 htt ...
- ubuntu-14.04.x-desktop-amd64.iso:安装Oracle11gR2
特点: 使用ubuntu-14.04.x-desktop-amd64.iso liveCD模式 + Casper-rw 本地文件 不降级默认的gcc版本,(liveCD 自带默认为 gcc 4.8): ...
- Android Weak Handler:可以避免内存泄漏的Handler库
这是一个针对技术开发者的一个应用,你可以在掘金上获取最新最优质的技术干货,不仅仅是Android知识.前端.后端以至于产品和设计都有涉猎,想成为全栈工程师的朋友不要错过! android使用java作 ...
- boost 1.56.0 编译及使用
boost的编译和使用,经过搜集资料和总结,记录成文.感谢文后所列参考资料的作者. 1 下载 地址:http://sourceforge.net/projects/boost/files/boost/ ...
- Android中用layer-list编写阴影效果
要实现这种效果当然有多 种方式,比如背景图片直接加阴影效果,或者用代码画一个(onDraw()).这次我们直接用layer-list来实现.在项目 res->drawable中创建一个xml,如 ...
- [转]优秀Python学习资源收集汇总
Python是一种面向对象.直译式计算机程序设计语言.它的语法简捷和清晰,尽量使用无异义的英语单词,与其它大多数程序设计语言使用大括号不一样,它使用縮进来定义语句块.与Scheme.Ruby.Perl ...