1 条题解
-
0
题意简述
大体思路
暴力万岁!
详细描述
首先,由于只可以操控第一头奶牛,所以如果要将第 头奶牛放到它应有的位置上,我们需要进行两种操作:
-
让前面的奶牛到它后面去,使它变成第一头奶牛,一共进行 次操作。
-
然后再移动这头奶牛,进行 1 次操作。
所以共进行 次操作。
但是,操作次数还会受到前面的影响。在进行上述的 2 种操作中,第 头奶牛后的所有奶牛也都被向前移了。究竟移了多少呢?
明显,若上次移动奶牛的位置是 那么 之后的每一头奶牛都会向前移动 个单位长度。既然我们在移动编号为 的奶牛中已经移过第 头奶牛了,那么就可以少移 次了。
所以将第 头奶牛放到他原有的位置上所用的次数为 次。
代码实现
#include<bits/stdc++.h> using namespace std; int n,p[110],ans; int main() { cin>>n; for(int i=1;i<=n;i++) { cin>>p[i]; } for(int i=2,last=1;i<=n;i++) { if(p[i-1]>p[i]) { ans+=(i-last); last=i; } } cout<<ans; return 0; } -
- 1
信息
- ID
- 6964
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 8
- 标签
- 递交数
- 154
- 已通过
- 22
- 上传者