冒泡排序怎么排_vj5347

冒泡排序怎么排_vj5347[BZOJ5347]冒泡排序[思维]

大家好,又见面了,我是你们的朋友全栈君。

对于不在应该在的位置上的一个数a[i],每轮排序a[i]可以向后走多步,但只能向前一步,所以答案就是\[max \{i-a[i]\}\]

很恶心的卡常数,如果统计ans再开一个循环的话,需要开O3

关于在循环内统计答案的正确性。。。。不是很懂

#pragma GCC optimize("O3") #include <bits/stdc++.h> using namespace std; const int MAXN = 3e7+7; int a[MAXN], n, s, b, c, d, ans; int main(void) { cin >> n >> s >> b >> c >> d; for(int i = 1; i <= n; ++i) { a[i] = i; s = (s * 1ll * b + c) % d; swap(a[i], a[s%i+1]); ans = max(ans, i-a[i]); } cout << ans; return 0; }

转载于:https://www.cnblogs.com/storz/p/10191359.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/107111.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号