UVa 1611 Crane (思路题)

手把手教你学simulink实例--基于Simulink的轨道交通车辆悬挂系统仿真 轨道交通车辆悬挂系统是保证列车运行平稳性、舒适性和安全性的重要组成部分。通过悬挂系统的合理设计,可以有效减小车辆在运行过程中受到的轨道不平顺和振动影响。基于MATLAB/Simulink平台进行悬挂系统仿真,可以对悬挂系统的动力学行为、控制策略以及性能优化等环节进行建模与分析,从而验证系统的设计性能并优化参数。本项目旨在构建一个完整的轨道交通车辆悬挂系统仿真模型,包括悬挂系统动力学建模、控制策略模块以及性能评估模块,并通过仿真验证系统的稳定性和舒适性。 阅读详情


题目链接:http://vjudge.net/problem/UVA-1611


大意:给出一个1—n的排列,每次可以选择一个偶数区间,交换前一半和后一半。用不超过9^6次操作将其变为1—n的顺序。


思路:

     要注意紫书上的提示,最多只需要2n次操作。也就是说,对每个数,最多只需要两次操作即可归位。那么,一次就将某数字归位是什么情况呢?假设现在我们要将数字m归位,那么数字m的正确位置就是m,而现在m的位置为p(设p>m),那么一次归位的做法就是我们选择位置m为交换区间的左端点,2*(p-m)作为区间的长度(即位置p恰好是我们所选区间的右半部分的第一个),这样交换过去后数字m就到了位置m。当然,这个操作的前提是交换区间的右端点不大于n。

    若是不满足上述条件,即交换区间右端点大于n了,这时我们可以先进行一次操作将数字m向左移动足够的距离再进行上面的操作。我们当然希望将m向左移动的越多越好,这个做法还是很好实现的,只需从p开始选一个左端点不小于m的最大偶数区间即可。这样一次移动后,便一定可以使用上述操作一将其一次归位。


#include<cstdio>
#include<cstring>
#include<iostream>
#include<set>
#include<map>
#include<vector>
#include<algorithm>
#define lson l,m,rt<<1
#define rson m+1,r,rt<<1|1
#define lc rt<<1
#define rc rt<<1|1
using namespace std;
typedef pair<int,int> P;
const int maxn = 10000 + 5;
int a[maxn],p[maxn],n; //p数组记录各个数的位置
vector<P> ans;

void SWAP(int l, int r)
{
    int m = (l + r) >> 1;
    for(int i = 0; i+l <= m; i++) {
        int L = l+i, R = m+i+1;
        swap(a[L],a[R]);
        swap(p[a[L]],p[a[R]]);
    }
    ans.push_back(P(l,r));
    //printf("haha\n");
}

int main()
{
    int T;
    scanf("%d",&T);
    while(T--) {
       ans.clear();
       scanf("%d",&n);
       for(int i = 1; i <= n; i++) scanf("%d",a+i), p[a[i]] = i;
       for(int i = 1; i <= n; i++) {
           if (a[i] == i) continue;
           int pos = p[i];
           while(a[i] != i) {
              if (n-pos +1 >= pos-i) SWAP(i,i+2*(pos-i)-1); //pos-i为左半区间的长度
              else {
                  int len = pos - i + 1;
                  if (len & 1) SWAP(i+1,pos);
                  else SWAP(i,pos);
                  pos -= len/2;
              }
           }
       }
       printf("%d\n",ans.size());
       for(int i = 0; i < ans.size(); ++i)
          printf("%d %d\n",ans[i].first,ans[i].second);
    }
    return 0;
}


【LLC快速上手系列】LLC轻载时,死区时间怎么调才对?别再傻傻乱搞了! 死区时间,就是指。如果你死区设得好,就能让开通前 ( V_DS to 0 ),完美实现! 阅读详情

相关推荐

微信小程序测试号开发后上传按钮灰色?三步快速切换正式AppID

本文详细解析了微信小程序测试号开发后上传按钮灰色的原因,并提供了三步快速切换正式AppID的解决方案。通过注册正式小程序账号、修改项目配置和重新编译上传,开发者可以轻松解决上传按钮不可用的问题,确保小程序顺利上线。

weixin_29291185的博客 1576

UVA - 1611(构造类)

题目大意就是给定的一个长为n的串只让对长度为偶数的区间的两半 半对半交换(而非翻转),用不超过9^6(最坏接受nlogn的算法)次操作完成排序。 方法, 第一开始并没有没有想到脑筋陷入了死点。 其实,就是采用往常的递推式思想,如果能解决了把1放在1处,那么剩下的就是个子问题。 怎样将1快速放到1处,其实1在1处不用在考虑。若1在中点位置(偶数情况下选靠右的中间位置)则通过其次交换即可。

playwfun的专栏 596

Wireshark实战解析IEC 61850 GOOSE报文:智能变电站通信调试指南

网络协议分析是理解现代工业通信系统的基础,其核心原理在于对数据包的捕获、解码与解析。在电力自动化领域,IEC 61850标准定义了智能变电站内设备间高效、可靠的通信框架,其中GOOSE(通用面向对象变电站事件)协议因其基于以太网多播和快速重传机制,成为保护跳闸、联锁等关键信号传输的基石,其技术价值在于实现了微秒级延迟的高可靠性通信。掌握GOOSE报文的分析能力,对于现场调试、故障定位及系统验证至关重要。本文聚焦于使用Wireshark这一网络分析工具,深入解析GOOSE报文结构,涵盖从以太网帧头、协议标识到

weixin_34401479的博客 376

UVa:1611 Crane(贪心)

题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=845&page=show_problem&problem=4486 题意:输入一个1 ~ n(1≤n≤10000)(1\le n \le 10000)的排列,用不超过969^6次操作把它变成升序。每次操作都可以选一个长度为偶数的

nullptr 1075

Innovus Flexible H-tree and Multi-tap Clock Flow Lab实操系列教程(Day1)

Innovus Flexible H-tree and Multi-tap Clock Flow Lab实操系列教程(Day1)

weixin_37584728的博客 2637

如何实现VMware虚拟机上的ubuntu与windows主机共享文件夹

windows主机部分   在硬盘上任意位置新建文件夹,此处命名为Share,实际上随意。 接下来右键属性,操作如下系列图所示: 在硬盘上任意位置新建文件夹,此处命名为Share,实际上随意。 成功修改后,显示如下界面: VMware部分 ubuntu在关机状态下,点击“编辑虚拟机设置” 接下来,开启ubuntu系统,在终端输入: ·· vmware-hgfsclient ·· 将会显示如下画面,但是此时你可能找不到 /mnt/hgfs 这个路径,如果找不到该路径,则需要在虚拟

Mr.Sliver的博客 8216

UVa - 1611 - Crane

从左到右,依次把一个个数放到位。把一个数放到正确的位置,观察发现最多两步 假设操作到第i个位置,而i这个数刚好在pos这个位置上,现在就要判断一下能否直接将pos上的i经过操作调到i这个位置上 如果 i + (pos - i) * 2 - 1 在上面条件不成立的情况下,又分为两种情况 一种是pos和i的距离是奇数的情况:那么就直接将[i,pos]这个区间的值进行交换即可 另一种是距离为

yofer张耀琦的专栏 1125

DataWorks数据安全治理最佳实践

DataWorks基于数据安全治理的常见思路,针对资产梳理、技术体系建设和运营体系建设,提供了一系列数据安全产品能力,您可通过“基础防护建设、数据安全防护措施及策略增强建设、数据安全持续运营”三个阶段在DataWorks上落地数据安全治理项目。参考本文启动数据安全治理项目前,建议您先了解DataWorks数据安全产品相关能力了解DataWorks数据安全产品能力后,您可参考如下三个阶段在DataWorks上落地数据安全治理项目。

soso1968的博客 1438

UVa #1611 Crane (习题8-6)

是不是很像摊煎饼那道例题,唯一的区别是这次是从中间开始交换左右两边的元素,而两边各自元素的顺序不变。 因此尝试每次将一个元素摆到正确的位置。尝试后发现,(稍微分奇偶讨论下)每个元素最多用两次就可以归位,所以复杂度最坏情况下是O(2n) 像其他需要交换元素位置的题目一样,这道题也需要注意一下边界。另外起始位置是0还是1也要小心。其他的就没有特别的了 Run Time:

专攻挖掘机炒鸡蛋算法的专栏 866

WS2812B非标准通信协议:手把手实现精准时序控制

详解WS2812B的精准时序实现原理,剖析其非标准通信协议的关键细节。通过实际操作指导,帮助开发者稳定驱动ws2812b灯带,解决常见时序偏差问题,提升项目显示效果与响应一致性。

weixin_42584586的博客 585

C#对接EtherNet/IP协议 完整版|罗克韦尔AB PLC通信+CIP核心概念全解析

你做罗克韦尔(AB) PLC工业上位机开发,是唯一的首选协议,没有之一!EtherNet/IP(Ethernet Industrial Protocol)是基于标准以太网的工业级通信协议,由罗克韦尔自动化主导开发,是ODVA(开放设备网络供应商协会)主推的工业以太网标准,也是目前全球应用最广泛的工业以太网协议之一。原生适配罗克韦尔AB PLC:Micro800、CompactLogix、ControlLogix、Micro850等全系AB PLC原生标配EtherNet/IP,无需额外配置,开箱即用;

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 891

UVa 1611 - Crane(构造法)

给出一个1到n的排列,每次可以交换任意偶数区间的前一段和后一段,输出一种操作方法似的操作之后为升序排列。 类似于那个翻煎饼的题,从左开始进行排列。

wcr1996的专栏 1752

企业财务共享服务中心业务蓝图规划方案【附全文阅读】

《企业财务共享服务中心业务蓝图规划方案》为集团企业提供财务共享中心建设全流程指导,涵盖战略定位、组织架构、业务流程、信息系统、运营管理和变革实施六大维度。方案明确共享中心"交易处理+战略支撑"双重职能,设计专业分组架构,筛选标准化高、价值明确的流程(如核算、资金结算等)纳入共享范围,构建业财一体化平台,并配套绩效与风险管控体系。结合项目型企业管理特点,分阶段推进实施,助力企业实现财务集中化与标准化转型。

cdfunlove的博客 994

UVA - 1611 Crane (思路题)

题目: 输入一个1~n(1≤n≤300)的排列,用不超过96次操作把它变成升序。每次操作都可以选一个长度为偶数的连续区间,交换前一半和后一半。输出每次操作选择的区间的第一个和最后一个元素。 思路: 注意紫书上的提示,2n次操作就可以完成了。从头开始遍历序列,属于该位置上的元素,可以在两步之内交换到这里。 #include <bits/stdc++.h> #define i...

weixin_30235225的博客 209

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

UVa 1611 Crane

本文提出了一种利用块交换操作排序箱子的算法。通过对起重机操作特性的分析,设计了一种从大到小贪心排序策略:每次将当前数字通过偶数长度的区间交换逐步移动到正确位置,当距离为奇数时先调整奇偶性。算法时间复杂度为O(n log n),远低于题目要求的移动次数限制。通过数学归纳法证明了其正确性,该策略能够高效完成排序任务。

寂静山林 903

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

【紫书】UVA-1611 Crane

UVA-1611 Crane

Tanzq的博客 255

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

习题 8-6 起重机(Crane,ACM/ICPC CERC 2013, UV1611)

原题链接:https://vjudge.net/problem/UVA-1611 分类:构造法 备注:中级思维题 题解的想法是,对于每个a[i]!=i,如果有j>i&&a[j]=i,则把a[j]的数换到a[i]这里,因为每次遍历从小到大,后面的变化不会影响前面的变化,最多2n次操作即可。 #include<bits/stdc++.h> using namespace std; const int maxn=1e4+5; const int maxl=531445; int

TK_wang_的博客 277

Crane UVA - 1611

题意:输入一个1~n(1&lt;=n&lt;=10000)的序列,用不超过9的6次方把它变成升序,每次操作都可以选一个长度为偶数的连续区间,交换前一半和后一半,例如,输入5,4,6,3,2,1可以执行1,2先变成4,5,6,3,2,1,然后执行4,5变成4,5,6,3,2,1,然后执行5,6变成4,5,6,2,1,3,然后执行4,5变成4,5,6,2,3,1最后执行操作变成1,6,即可 提示:2...

沐妖的博客 177

uva 1611 Crane

There are n crates waiting to be loaded onto a ship. The crates are numbered 1, 2, … , n, the numbers determining the order of loading. Unfortunately, someone messed up the transit and the crates are

XDU_PYL的博客 807

Crane UVA - 1611 解题报告

题目大意:输入一个1—n的排列,用不超9的6次方的操作把他变成升序,每次操作都可以选一个长度为偶数的连续区间,交换前一半后一半。紫书提示:2n次操作就够了。 思路:这道题要注意审题,因为人家没说必须要求最简,在规定次数内弄完就行。。。本来就是对的,因为感觉不是最简,花里胡哨改了一个小时,看完题解崩溃了QAQ。 先判断自己所选的区间是不是在所选范围内,如果可以,则直接进行交换,如果不可以,则利用...

NCC__dapeng的博客 334

UVa 1611 起重机(Crane)

题意: 输入一个1~n的排列,用不超过9^6的操作把它变成升序。每次操作都可以选一个长度为偶数的连续区间,交换前一半和后一半。 思路: 俺们发现 例如按这个测试样例 5 4 6 3 2 1 我们要先把1移到第一个位置,然后就不管了,注意到1移到第一个位置后,不必再去动 无论如何,第一步将1移到中间偏左的位置 => 3 2 1 5 4 6 然后从 1需要移动到的位置延伸到1的距离为 3 - 1...

Inuyasha__的博客 353

Crane UVA - 1611 思路+构造

题目:题目链接 思路:思路+构造,假设 i 在pos 位置,那么如果 (pos-i-1)*2+i+1 <= n,那么可以操作一次换过来,如果他们之间元素个数是偶数,那么交换 i - pos,如果是奇数,交换 i - pos+1,然后再经过一次就可以换到指定位置,如果是奇数并且pos==n,先与前一个元素交换一下,然后执行前面的操作。 AC代码: #include <iost...

weixin_30951389的博客 1085

UVA - 1611 Crane 推理 + 贪心

题目大意:输入一个1-n的排列,要求经过操作将其变换成一个生序序列。操作的规则如下 每次操作时,可以选一个长度为偶数的连续区间,交换前一半和后一半 提示:2n次操作就足够了解题思路:这句提示是关键,2n次操作,表明每个数最多只需要两次操作。 应该从左到右依次操作过去,先将前面的数安定好了,就可以不用管前面的数了 假设操作到第i个位置,而i这个数刚好在pos这个位置上,现在就要判断一下能否直接

静静地码 1665

uva 1611——Crane

题意:给定一个1-n的排序,每次可以选定一个偶数长的序列,然后交换前一部分和后一部分,使得最后的成为1-n的序列。求最后的次数和每次的策略。 思路:贪心。每次贪心的策略都是把i放到第i位置上,交换的时候找到最小的交换序列是前半部分还是后半部分。 code:#include #include #include #include #include #include #i

坚持不懈 687

习题8-6 起重机(Crane,ACM/ICPC CERC2013,UVa1611)

题目大意:通过一系列操作使一个1~n的序列变为升序,每次操作可以选一个长度为偶数的连续区间,交换前一半和后一半。 思路:从序列第一位开始,查找对应值(若为第一位则查找1,第二位查找2,以此类推)。若查找位置与查找到的值的位置相距长度为偶数,则以查找位置与查找到的值得位置的中心进行交换操作;若查找到的位置与查找到的值的位置相距长度为奇数,则以查找位置的后一位与查找到的值的位置的中心进行交换操作。如

Dingle_Captain的博客 696

UVa 1611 - Crane

链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=4486 题意: 输入一个1~n(1≤n≤10000)的排列,用不超过9e6次操作把它变成升序。每次操作都可以选一个长度为偶数的连续区间,交换前一半和后一半。例如,...

weixin_30394251的博客 117
上一篇: UVa 1232 SKYLINE (线段树区间修改)
下一篇: UVa 11525 Permutation (线段树)
Interstellar_
博客等级 码龄10年 8粉丝 121原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值