poj 2013 Symmetric Order 解题报告
题目链接:http://poj.org/problem?id=2013
设长度非递减的字串序列为s[1]...s[n]。设计递归子程序print(n),其中n为字串序号,每分析1个字串,n=n-1。 n = 0 为边界。字串s为局部变量:
先输入和输出当前组的第1个字串s,n = n - 1;
若n > 0,则输入当前组的第2个字符s,n = n - 1。若n > 0,则通过递归调用print(n)将字串s入栈。回溯过程相当于栈顶字串s出栈,因此直接输出s。
- #include <iostream>
- #include <string>
- using namespace std;
- void print(int n) // 输入n个字串,并按对称格式输出
- {
- string s; // 当前字串
- cin >> s; // 输入和输出当前组的第1个字串
- cout << s << endl;
- if (--n)
- {
- cin >> s; // 输入当前组的第2个字串并通过递归压入系统栈区
- if (--n)
- {
- print(n);
- }
- cout << s << endl; // 回溯,栈首字串出栈后输出
- }
- }
- int main()
- {
- int n, loop = ; // 字串集合序号初始化
- while (cin >> n && n)
- {
- printf("SET %d\n", ++loop);
- print(n); // 按照对称格式输出当前字串集合中的n个字串
- }
- return ;
- }
不用递归也可以。对称的输出形式由两部分组成:
上半部分由自上而下的奇数行组成:
s[1]
s[3]
s[5]
......
n 为奇数时为s[n],n为偶数时为s[n-1]
即执行语句 "for (int i = 1; i <= n; i += 2) cout << s[i] << endl; "
下半部分由自下而上的偶数行组成:
s[n - (n%2)]
s[n - (n%2) - 2]
s[n - (n%2) - 4]
......
s[2]
即执行语句" for (int i = n - (n%2); i > 1; i -= 2) cout << s[i] << endl; "。
poj 2013 Symmetric Order 解题报告的更多相关文章
- OpenJudge/Poj 2013 Symmetric Order
1.链接地址: http://bailian.openjudge.cn/practice/2013 http://poj.org/problem?id=2013 2.题目: Symmetric Ord ...
- Tarjan算法求解桥和边双连通分量(附POJ 3352 Road Construction解题报告)
http://blog.csdn.net/geniusluzh/article/details/6619575 在说Tarjan算法解决桥和边双连通分量问题之前我们先来回顾一下Tarjan算法是如何 ...
- POJ 3126 Prime Path 解题报告(BFS & 双向BFS)
题目大意:给定一个4位素数,一个目标4位素数.每次变换一位,保证变换后依然是素数,求变换到目标素数的最小步数. 解题报告:直接用最短路. 枚举1000-10000所有素数,如果素数A交换一位可以得到素 ...
- [POJ 1002] 487-3279 C++解题报告
487-3279 Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 228365 Accepted: 39826 D ...
- 【原创】poj ----- 2376 Cleaning Shifts 解题报告
题目地址: http://poj.org/problem?id=2376 题目内容: Cleaning Shifts Time Limit: 1000MS Memory Limit: 65536K ...
- 【原创】poj ----- 1611 The Suspects 解题报告
题目地址: http://poj.org/problem?id=1611 题目内容: The Suspects Time Limit: 1000MS Memory Limit: 20000K To ...
- 【原创】poj ----- 2524 Ubiquitous Religions 解题报告
题目地址: http://poj.org/problem?id=2524 题目内容: Ubiquitous Religions Time Limit: 5000MS Memory Limit: 6 ...
- 【原创】poj ----- 3009 curling 2 解题报告
题目地址: http://poj.org/problem?id=3009 题目内容: Curling 2.0 Time Limit: 1000MS Memory Limit: 65536K Tot ...
- [POJ 1001] Exponentiation C++解题报告 JAVA解题报告
Exponentiation Time Limit: 500MS Memory Limit: 10000K Total Submissions: 126980 Accepted: 30 ...
随机推荐
- yield实例
如下 # __author__ = liukun # coding:utf-8 def it(): print ('hello') yield 1 yield 1 a= it() print(&quo ...
- github 建立博客
Last login: Wed Jan 27 20:33:21 on console liukun-MBP:~ kamil$ cd ~/.ssh/ liukun-MBP:.ssh kamil$ ls ...
- 学习笔记 BIT(树状数组)
痛定思痛,打算切割数据结构,于是乎直接一发BIT 树状数组能做的题目,线段树都可以解决 反之则不能,不过树状数组优势在于编码简单和速度更快 首先了解下树状数组: 树状数组是一种操作和修改时间复杂度都是 ...
- C#图片读取和保存
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...
- Looper
/** * Class used to run a message loop for a thread. Threads by default do * not have a message loop ...
- 基础总结篇之三:Activity的task相关
http://blog.csdn.net/liuhe688/article/details/6761337 古人學問無遺力,少壯工夫老始成.紙上得來終覺淺,絕知此事要躬行.南宋.陸遊<冬夜讀書示 ...
- 过滤器在Web开发应用------解决中文乱码
src/com/Encoding.java package com; import java.io.IOException; import javax.servlet.Filter; import j ...
- 工具分享——将C#文档注释生成.chm帮助文档
由于最近需要把以前的一个项目写一个文档,但一时又不知道写成怎样的,又恰好发现了可以生成chm的工具,于是乎我就研究了下,感觉还不错,所以也给大家分享下.好了,不多废话,下面就来实现一下吧. 生成前的准 ...
- --Dirring love 音乐(01背包问题)
解题思路: dp[i][j] 前 i 首歌放入 j 容量中的最大热情度. 前 i 首歌 放到 j 容量中 dp[i][j]= dp[i-1][j-m[i]]+r[i] (注意:如果 j 容量 &l ...
- sql server 复制需要有实际的服务器名称才能连接到服务器(转载)
今天在做sql server 2005 复制的时候,提示复制需要有实际的服务器名称才能连接到服务器……的消息,一开始不知道什么意思!后来在网上查了一下才知道,原来是以前我把机器改过名 字.用selec ...