您的位置:首页 > 其它

【模拟】洛谷P1088火星人

2018-02-04 14:47 239 查看
P1088 纯。模。拟。

说是搜索都是骗人的qwq

找到最小进位,进位后m--

关键部分如下:

void sml(){
int i;
int t1, t2;
while(m--){
i = n - 1;
while(a[i] > a[i + 1])i--;
t1 = i;
i = n;
while(a[t1] > a[i])i--;
t2 = i;
swap(a[t1], a[t2]);
sort(a + t1 + 1, a + n + 1);
}

}

再介绍一个好玩的东西

next_permutation(a
+ x, a + y)

它被包含在algorithm库中

表示a数组的第x到第y个值转换为下一个全排列

比如a[7]
= {0 , 1 , 4 , 3 , 2 , 5 , 8 };

next_permutation(a
+ 1, a + 6);后的结果就是0 , 1 , 4 , 3 , 2 , 8 , 5

暴击没?o(* ̄︶ ̄*)o
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  模拟