hihocoder 1523 数组重排2 思维
来源:互联网 发布:adobe 全套mac破解版 编辑:程序博客网 时间:2024/06/06 00:11
题目链接
题意:
给定一个1-N的排列A1, A2, ... AN,每次操作小Hi可以选择一个数,把它放到数组的最左边。
请计算小Hi最少进行几次操作就能使得新数组是递增排列的。
思路:
这种题做过很多次了,就是换了个问法,本质都一样.可这次还是想了好久。。
这个题的话因为要求最小的操作数,而且要是严格递增的,由于每次只能放在最左边,所以我们想到逆着来做,从后往前,
从最大的开始,一定存在某个数只需要移动一次就可以.而且最多一共移动n次,如果当前的数满足递增序列的末尾,那么就
不需要移动,就把移动的次数-1,其他数来移动不会影响他的顺序.
#include<bits/stdc++.h>#define Ri(a) scanf("%d", &a)#define Rl(a) scanf("%lld", &a)#define Rf(a) scanf("%lf", &a)#define Rs(a) scanf("%s", a)#define Pi(a) printf("%d\n", (a))#define Pf(a) printf("%lf\n", (a))#define Pl(a) printf("%lld\n", (a))#define Ps(a) printf("%s\n", (a))#define W(a) while(a--)#define CLR(a, b) memset(a, (b), sizeof(a))#define MOD 1000000007#define inf 0x3f3f3f3f#define exp 0.00000001#define pii pair<int, int>#define mp make_pair#define pb push_backusing namespace std;typedef long long ll;const int maxn=1e5+10;int a[maxn];int n;int main(){Ri(n);for(int i=1;i<=n;i++){Ri(a[i]);}int ans=n;for(int i=n;i>=1;i--){if(a[i]==n){n--;ans--;}}Pi(ans); return 0;}
阅读全文
0 0
- hihocoder 1523 数组重排2 思维
- hihoCoder 1523 : 数组重排2
- hihocoder 1523 : 数组重排2
- hihoCoder 1523 : 数组重排2
- hihoCoder 1523 数组重排2 贪心
- Hihocoder 数组重排
- hihocoder 数组重排
- hihocoder #1539 : 数组重排3
- HihoCoder-1523(思维)
- 数组重排
- [hihoCoder 太阁最新面经算法竞赛6] 数组重排(N个数的最小公倍数)
- hihocoder offer收割19th 数组重排3 八进制位操作 状态压缩
- 随机数组重排
- 数组重排问题
- Javascript数组重排
- shuffle()重排数组
- 数组重排(贪心)
- hihoCoder1330—数组重排
- 让你快速理解Redux
- (44)通过继承创建线程对象的例子+getName+setName+currentThread()方法应用介绍
- linux文件解压 (摘录)
- 游标的定义与使用
- JAVA设计模式
- hihocoder 1523 数组重排2 思维
- Find-set-root-ignore-floppies-ignore-cd /bootmgr 解决办法(用win 7安装盘)
- 2017.07.11回顾
- python数据挖掘笔记(1)—数据预处理
- 新网云服务导致八爪鱼招标网近一天宕机,提交工单竟谎报问题已修复
- 最清晰的张正友标定法
- JS常见陷阱
- LitePal的基本用法
- js把日期字符串转换成时间戳