2016蓝桥杯第九题
来源:互联网 发布:网络之神级炼妖师 编辑:程序博客网 时间:2024/05/16 11:08
/*该题用贪心的思想不断将当前位置上的数字与下表对应起来,那么将是最优解,为了不超时用了一个for循环通过下标与数字的交题保存。其中交换值时注意维护下标为当前与之对应的下标很巧的一道题,这里用到了一个交换方法也是基于计算机组成原理上的一个移位运算方便,快捷。*/#include <iostream>#include <cstdio>using namespace std;int main(){int num[10000+10], flag[10000+10];int n, cnt = 0;scanf("%d", &n);for(int i = 1; i <= n; i++) {scanf("%d", &num[i]);flag[num[i]] = i;}for(int i = 1; i <= n; i++) {if(i != num[i]){int x = num[i]; //这里选择num[i]的元因是每次将于当前下标相等的数归位,则那个被归位的数所对应的下标应该为当前这个num[i]的下标 num[i] ^= num[flag[i]] ^= num[i] ^= num[flag[i]];//这里每组都会用到flag[i]所以要一直维护flag[i]让他始终和当前所对应的值对应起来 flag[i] ^= flag[x] ^= flag[i] ^= flag[x];cnt++;}} cout << cnt << endl;return 0;}
1 0
- 2016蓝桥杯第九题
- 2016蓝桥杯第九题
- 蓝桥杯2016第九题答案
- 蓝桥杯校内选拔第九题
- 蓝桥杯 2016 B组第九题 交换瓶子
- 2016蓝桥杯C/C++B组第九题 交换瓶子
- 第九题
- 第九题
- 第九题
- 第九题
- 第九题
- 第九题
- 第九题
- project Euler第九题
- 第九章 二题
- 第九章第二题
- 第九章第三题
- 2011年蓝桥杯第九题
- 算法16:实现itoa和atoi
- JavaScript基础之流控制语句
- 剪气球串
- mysql查重笔记
- 一个矩形能否放到另一个矩形内(公式)
- 2016蓝桥杯第九题
- 关于此实现不是 Windows 平台 FIPS 验证的加密算法的一部分。error
- bzoj1509[NOI2003] 逃学的小孩
- springmvc 拦截器 与 servlet filter比较
- 时间复杂度——我理解的那种
- PAT-A1130. 二叉树-中序遍历 变形输出
- OpenCV中使用的文件路径问题
- 多通道协议与应用层网关
- 【闲聊】人生如梦,一樽还酹江月