CF351E Jeff and Permutation

感觉还是记点东西吧。还是总得留下点东西的。

1|0CF351E Jeff and Permutation

1|1题目描述:

给出数组a ,你可以改变每个数的正负,求逆序对数最少是多少

1|2题目分析:

感觉自己好蠢。。猜结论猜错了就离谱。。

首先对于 a 数组全都取绝对值,毕竟之后还能再变回来。

那么我们考虑会出现逆序对所产生的情况

  • ai<aj 那么此时产生逆序对的话, (1) 让 aj 取反,ai 不变,(2) 全都取反。
  • ai>aj 那么(1) 两者都不取反的话必然是成立的.(2)ai 不动, aj 取反

那么从上面两种情况来看的话,如果说 ai 不选择取反的话,那么就是后面比他小的数的个数,否则的话,就是前面比他小的数都会产生贡献,因此统计两边的比 ai 小的个数然后取最小值即可。

1|3Code:

//editor : DRYAYST //Wo shi ge da SHA BI #include<bits/stdc++.h> #define g() getchar() #define il inline #define ull unsigned long long #define eps 1e-10 #define ll long long #define pa pair<int, int> #define for_1(i, n) for(int i = 1; i <= (n); ++i) #define for_0(i, n) for(int i = 0; i < (n); ++i) #define for_xy(i, x, y) for(int i = (x); i <= (y); ++i) #define for_yx(i, y, x) for(int i = (y); i >= (x); --i) #define for_edge(i, x) for(int i = head[x]; i; i = nxt[i]) #define int long long #define DB double #define ls (p<<1) #define rs (p<<1|1) #define m_p make_pair #define fi first #define se second using namespace std; const int N = 1e6 + 10, INF = 1e18, mod = 1e9 + 7; il int qpow(int x, int k) {int ans = 1; while(k) {if(k & 1) ans = ans * x % mod; x = x * x % mod; k >>= 1; } return ans; } il int Add(int x, int y) {return (x += y) %= mod;} il int Del(int x, int y) {return (x = x - y + mod) % mod;} il int Mul(int x, int y) {return x * y % mod;} il int inv(int x) {return qpow(x, mod - 2); } inline int re() { int x = 0, p = 1; char ch = getchar(); while(ch > '9' || ch < '0') {if(ch == '-') p = -1; ch = getchar();} while(ch <= '9' and ch >= '0') {x = (x << 3) + (x << 1) + (ch ^ 48); ch = getchar();} return x * p; } int n, ans; int a[N]; signed main() { // freopen("listen.in","r",stdin); // freopen("listen.out","w",stdout); n = re(); for_1(i, n) a[i] = re(), a[i] = abs(a[i]); for_1(i, n) { int L = 0, R = 0; for_xy(j, 1, i-1) if(a[j] < a[i]) L++; for_xy(j, i+1, n) if(a[j] < a[i]) R++; ans += min(L, R); } cout<<ans<<endl; }

__EOF__

本文作者Zwaire
本文链接https://www.cnblogs.com/Zwaire/p/16101947.html
关于博主:这个世界除了你,都知道我喜欢你
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   Zwaire  阅读(25)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示