UVa11925 Generating Premutations

留坑(p.254)

 

 1 #include<cstdio>
 2 #include<cstring>
 3 #include<cstdlib>
 4 #include<algorithm>
 5 #include<iostream>
 6 
 7 using namespace std;
 8 
 9 void setIO(const string& s) {
10     freopen((s + ".in").c_str(), "r", stdin);
11     freopen((s + ".out").c_str(), "w", stdout);
12 }
13 template<typename Q> Q read(Q& x) {
14     static char c, f;
15     for(f = 0; c = getchar(), !isdigit(c); ) if(c == '-') f = 1;
16     for(x = 0; isdigit(c); c = getchar()) x = x * 10 + c - '0';
17     if(f) x = -x;
18     return x;
19 }
20 template<typename Q> Q read() {
21     static Q x; read(x); return x;
22 }
23 
24 const int N = 300 + 10;
25 
26 #include<vector>
27 vector<int> a, b;
28 
29 //#define dprintf(s, arg...) fprintf(stderr, s, ##arg)
30 
31 void p1() {
32     swap(a[0], a[1]);
33     putchar('1');
34 //    dprintf("1:");
35 //    for(unsigned i = 0; i < a.size(); i++) {
36 //        dprintf("%d ", a[i]);
37 //    }
38 //    dprintf("\n");
39 }
40 
41 void p2() {
42     int t = a[0];
43     a.erase(a.begin());
44     a.push_back(t);
45     putchar('2');
46 //    dprintf("2:");
47 //    for(unsigned i = 0; i < a.size(); i++) {
48 //        dprintf("%d ", a[i]);
49 //    }
50 //    dprintf("\n");
51 }
52 
53 bool ok() {
54     for(unsigned i = 0; i < a.size(); i++) {
55         if(a[i] ^ b[i]) return 0;
56     }
57     return 1;
58 }
59 
60 int main() {
61 #ifdef DEBUG
62     freopen("in.txt", "r", stdin);
63     freopen("out.txt", "w", stdout);
64 #endif
65     
66     int n;
67     while(read(n)) {
68         a.clear(), b.clear();
69         for(int i = 1; i <= n; i++) {
70             a.push_back(i);
71             b.push_back(read<int>());
72         }
73         if(a[1] == b[0]) p1();
74         for(int i = 0; i < n; i++) {//½«µÚi¸öÒƵ½×îºó 
75             while(a[0] != b[i]) p2();
76             if(ok()) break;
77             if(i != n-1) while(a[1] != b[i+1]) p1(), p2();
78             p2();
79         }
80         putchar('\n');
81 //        dprintf("\n");
82     }
83     
84     return 0;
85 }
View Code

 

转载于:https://www.cnblogs.com/showson/p/5097193.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/373866.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务

不指定数据库可以正常连接&#xff1a; 指定数据库和使用PL/SQL Developer都出现错误&#xff1a; 在此说明一下我的环境&#xff1a;Oralce装的是64位的在使用PL/SQL Developer时曾出现过初始化错误&#xff0c;解决办法就是下载oracle 32位客户端并相应的配置。 解决方案一&a…

Devoxx 2011印象

Devoxx 2011结束了&#xff0c;它很棒。 最终&#xff0c;在不得不与妻子和孩子度过周末之后&#xff08;上个星期我很少见过&#xff09;&#xff0c;我找到了写下一些东西的时间。 对我来说&#xff0c;这是第六个Devoxx&#xff0c;我的第一个是2006年-那时我还是一个学生&a…

Ubuntu14.04.3,apt-get出现dpkg: error processing package xxx (--configure)和cups-daemon错误的解决方案...

Ubuntu14.04.3&#xff0c;使用apt-get安装软件的时候&#xff0c;报个莫名其妙的错误&#xff1a; dpkg: error processing package xxx (--configure): balabala...Errors were encountered while processing: cups-daemon cups-core-drivers cups E: Sub-process /usr/bin/d…

实验三 类的继承和多态性

实验三 类的继承和多态性 1.(1)编写一个接口ShapePara&#xff0c;要求&#xff1a; 接口中的方法&#xff1a; int getArea()&#xff1a;获得图形的面积。int getCircumference()&#xff1a;获得图形的周长 (2)编写一个圆类Circle&#xff0c;要求&#xff1a;圆类Circle实现…

ORA-01843:无效的月份

Oracle数据库默认情况下&#xff0c;会以DD-MON-YY的形式显示日期&#xff0c;其中DD是天数&#xff0c;MON是月份的前三个字母&#xff08;大写&#xff09;&#xff0c;而YY是年份的最后两位。数据库实际上会为年份存储4位数字&#xff0c;但是默认情况下只会显示最后两位。 …

贪心策略取得最优解的条件_什么是贪心算法?

一、什么是贪心算法贪心算法是指&#xff0c;在对问题求解时&#xff0c;总是做出在当前看来是最好的选择。(局部最优解&#xff0c;而不是整体最优解)贪心算法没有固定的算法框架&#xff0c;算法设计的关键是贪心策略的选择。必须注意的是&#xff0c;贪心算法不是对所有问题…

头部ct能检查出什么_【安全用药】做CT检查时应注意什么?

点击蓝字 关注我们安安徽徽&#xff0c;你知道做CT检查时应注意什么&#xff1f;上腹部CT检查前患者至少禁食6小时、检查前15分钟喝温开水充盈胃部、CT检查时&#xff0c;患者会受到一定量X射线辐射&#xff0c;应避免过度扫描......本期安全用药&#xff0c;大家一起来了解了解…

虚拟机Linux图形界面配置NAT-桥接

点开“虚拟机->设置->桥接模式&#xff08;勾选复制物理网络连接状态&#xff09;->确认” 点击“右上角扇形网络图标->Edit Connections->Wired->选中->Delete->Add->IPv4 Settings->Method(Manual)->Add->输入IP&#xff0c;子网掩码&am…

Java 8状态更新

即将到来的Java SE 8发行版的两大新语言功能是Lambda Expressions和Modularity。 对于这两者&#xff0c;这些天的状态更新已经发布。 我会与您共享链接&#xff0c;因此您可能会在假期中通读它们 Oracle计划在2013年中期发布Java SE 8。 Lambda项目 Lambda项目以及JSR-335希望…

程序设计语言

程序设计语言使用于书写计算机程序的语言。程序设计语言有3个方面的因素&#xff0c;即语法&#xff0c;语义和语用。语法标识程序的结构或形式。语义表示程序的含义。语用表示程序与使用者的关系。 程序设计语言的发展史 程序的复杂性度量 1&#xff0c;代码行度量法 出错率&a…

Linux 安装之U盘引导

说到装系统最简单的方法无非就是找个系统安装光盘来然后就一步一步慢慢的安装。简单是简单但好似大多数人好像都木有Linux的安装光盘。因此只能用U盘来模拟光盘的功能来装系统咯。 电脑上装有Windows 7现要装Linux变双系统。 安装Linux前的准备&#xff1a; 1、电脑上分出空闲的…

OSGi:简介

为基于Java的系统创建的OSGi提供了模块化系统的框架。 OSGi使得可以定义每个单独模块与其他模块的依赖关系&#xff0c;并使用户可以控制生命周期并动态更改系统的每个组件。 OSGi是一个规范&#xff0c;最常见的实现可以算作Equinox &#xff0c; Apache Felix和Knoplerfish 。…

一起动手打造个人娱乐级linux

我们使用电脑&#xff0c;一直以来用的都是windows&#xff0c;但是对于像我这种爱折腾的人来说&#xff0c;尝试使用linux系统应该是一种不错的体验。说到linux&#xff0c;许多人可能都没听过&#xff0c;或者知道的人对它印象是这样的&#xff1a; 然而&#xff0c;linux发展…

Linux 火狐浏览器安装Flash插件

Linux系统安装完毕后&#xff0c;发现火狐浏览器视频播放不了而且总是提示安装Flash。而按火狐浏览器上的提示Flash插件安装总是失败&#xff0c;木有办法只能手动安装Flash插件啦。 到Flash官网&#xff1a;http://get.adobe.com/cn/flashplayer/ 下载系统对应的Flash插件&…

按汇总分组/多维数据集

时不时地&#xff0c;您会遇到一个使您达到SQL限制的要求。 我们中的许多人可能会提早放弃并使用Java / [或您的语言]计算内容。 相反&#xff0c;使用SQL可能是如此简单快捷。 如果您使用的是高级数据库&#xff0c;例如DB2 &#xff0c; Oracle &#xff0c; SQL Server &…

Windows和linux双系统——修改默认启动顺序

电脑上装了Windows 7和Ubantu双系统&#xff0c;由于Linux系统用的次数比较少并且还是默认的启动项对此很不能容忍&#xff0c;因此得修改Windows为默认的启动项。 由于电脑上的系统引导程序是GRUB&#xff0c;因此修改当然也就落到Linux系统上啦。 修改/boot/grub/grub.cfg该文…

调试JVM

在某些&#xff08;极少数&#xff09;情况下&#xff0c;您可能会遇到使JVM本身崩溃的情况。 我最近通过将ThreadGroup的名称设置为null来进行管理 。 在这些情况下&#xff0c;调试JVM本身很有用&#xff0c;这样可以更精确地定位崩溃。 这是完成此操作的步骤&#xff08;它们…

ActiveMQ已准备好黄金时段

ActiveMQ项目始于2005年-在很大程度上&#xff0c;它一直是Apache Software Foundation的顶级项目。 ActiveMQ项目的目的一直是提供世界一流的企业消息传递解决方案&#xff0c;其中经纪人能够提供从支持IP的智能设备一直到企业后端的高可用性的连通性。 ActiveMQ提供跨语言客户…

r语言 adf检验_r语言中如何进行两组独立样本秩和检验

r语言中如何进行两组独立样本秩和检验​tecdat.cn安装所需的包wants <- c("coin") has <- wants %in% rownames(installed.packages()) if(any(!has)) install.packages(wants[!has])>一个样本测试set.seed(123) medH0 <- 30 DV <- sample(0:100, 20,…

MyEclipse 8.5安装Aptana

Aptana简介 Aptana是一个非常强大,开源,专注于JavaScript的Ajax开发IDE它的特性包括&#xff1a; 1、JavaScript,JavaScript函数,HTML,CSS语言的Code Assist功能 2、Outliner(大纲)&#xff1a;显示JavaScript,HTML和CSS的代码结构 3、支持 JavaScript&#xff0c…