uva 331(回溯)
来源:互联网 发布:淘宝是谁的创始人 编辑:程序博客网 时间:2024/05/22 06:33
题意:给出n个数字,判断让相邻的两个数交换,最后形成从小到大的序列的次数最少的交换方案有几种。
题解:判断如果顺序不是从小到大就开始递归,从开头进行相邻的两个数交换,每交换形成一个从小到大的序列后,就将交换过的再还原,方案加一,然后继续从下一个数字开始交换,直到递归结束。
#include <stdio.h>const int N = 10;int n, s[N], ans;int judge() {for (int i = 0; i < n - 1; i++)if (s[i] > s[i + 1])return 0;return 1;}void swap(int pos1, int pos2) {int temp;temp = s[pos1];s[pos1] = s[pos2];s[pos2] = temp;}void dfs() {if (judge()) {ans++;return;}for (int i = 0; i < n - 1; i++)if (s[i] > s[i + 1]) {swap(i, i + 1);dfs();swap(i, i + 1);}}int main() {int t = 1;while (scanf("%d", &n) && n) {ans = 0;for (int i = 0; i < n; i++)scanf("%d", &s[i]);if (!judge())dfs();printf("There are %d swap maps for input data set %d.\n", ans, t++);}return 0;}
0 0
- uva 331(回溯)
- uva--331+dfs+回溯
- UVA回溯
- UVA 331 Mapping the Swaps (回溯+dfs)
- UVA 331 - Mapping the Swaps(回溯)
- UVA - 331 Mapping the Swaps(回溯)
- uva 331 Mapping the Swaps (回溯)
- UVa 301 - Transportation 回溯
- ( 回溯 )uva 301 - Transportation
- Transportation-301uva 回溯
- Transportation uva+递归+回溯
- Stamps uva+回溯
- Bandwidth +uva +回溯
- Graph Coloring +uva+回溯
- uva 110(回溯)
- uva 639(回溯)
- uva 539(回溯)
- uva 301(回溯)
- hdu 1086 You can Solve a Geometry Problem too
- 《一个操作系统的实现》第三章第一个练习
- linux中who的实现
- 使用HashMap对象传递url参数实用工具类
- View.setTag(key,object)异常 The key must be an application-specific resource id.
- uva 331(回溯)
- Android核心基础——S01E05_第一个应用程序和adb常用命令
- msdn之dll调试
- vs2010-vs2012 已停止工作--解决方案
- oracle数据表及数据被删除时候简单办法
- 程序员之路:十年磨一剑
- SDUT 1124-飞跃原野(三维BFS)
- OFBIZ电商前台下载后需更改的源代码
- LeetCode Plus One