【牛客训练记录】2024牛客国庆集训派对day2

news/2024/10/2 18:31:35

赛后反思

只开出来两题,好像水平就这样了TAT

I 题

给定一个排列,对于每项可以选择+1或者不加,求逆序对对数最小

我们可以思考一下什么情况下可以减少最后答案的逆序对,对于 \([4,3]\) 或者 \([2,1]\) 这种情况,将第二个元素+1才能对答案的减少做出贡献,所以只要判断某一位的后面是否有那一位 -1 的数即可,将其 +1 就行

对于求逆序对当然使用归并排序 \(O(nlogn)\)

#include <bits/stdc++.h>
#define int long longusing namespace std;const int N = 2e5 + 3;int a[N],c[N];
bool vis[N];
int ans = 0;void msort(int l,int r){if(l == r) return;int m = l + r >> 1,i = l,j = m + 1,k = l;msort(l,m); msort(m + 1,r);while(i <= m && j <= r){if(a[i] <= a[j]) c[k++] = a[i++];else c[k++] = a[j++],ans+=m-i+1;}while(i<=m) c[k++] = a[i++];while(j<=r) c[k++] = a[j++];for(int i = l;i<=r;i++) a[i] = c[i];
}void solve(){int n; cin>>n;for(int i = 1;i<=n;i++){cin>>a[i];if(vis[a[i] + 1]) a[i]++;vis[a[i]] = 1;}msort(1,n);cout<<ans<<endl;
}signed main(){// int T; cin>>T; while(T--)solve();return 0;
}

F 题

正如题目所述,这真tm是诈骗题,每次我们都可以选择删一条边,或者删一个联通块,我们可以发现(很难发现)一个有趣的点就是,每次删除操作,两种操作均会使 \(n+m\) 的奇偶性发生改变,删一条边,边数 \(-1\),删一个大小为 \(i\) 的联通块,点数减 \(i\),边数减 \(i-1\),所以我们直接对 \(n+m\) 的奇偶性进行判断即可

#include <bits/stdc++.h>
#define int long longusing namespace std;void solve(){int n,m; cin>>n>>m;if((n+m)&1) cout<<"Alice"<<endl;else cout<<"Bob"<<endl;	
}signed main(){// int T; cin>>T; while(T--)solve();return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/67160.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

DAY2-补题

我补题AK了,但你出言不逊是 非常好的一套题,让我的大脑旋转啊。 不太想开一个文章单独屑,所以扔到随笔里面。 敲字速度有待加强。 说在前面 题目难度单调递减,分数单调递减。果然屑死了。 T1再次读题失误,正确的来说是代码敲得非常抽象。T2DP但没骗到分非常不好,T3场上想…

独立站如何批量查收录,教你独立站如何批量查收录的方法操作步骤

独立站批量查收录是SEO优化工作中的重要环节,有助于网站管理员或SEO人员及时了解网站在搜索引擎中的表现,从而制定针对性的优化策略。以下是一些常用的独立站批量查收录的方法及其操作步骤: 一、使用搜索引擎的Site指令结合自动化脚本 编写脚本或配置爬虫: 利用Python、She…

04-论说文:审题与立意(1)

命题作文 比较开放 近义词 相关性 竞争 合作 竞争合作 ==》 竞争合作的关系 概率==》风险 风险 利益 审题 较难

南沙C++信奥赛陈老师解一本通题 1966:【14NOIP普及组】比例简化

​【题目描述】在社交媒体上,经常会看到针对某一个观点同意与否的民意调查以及结果。例如,对某一观点表示支持的有 1498 人,反对的有 902 人,那么赞同与反对的比例可以简单的记为1498:902。 不过,如果把调查结果就以这种方式呈现出来,大多数人肯定不会满意。因为这个比例…

pycharm 拆分窗口 pycharm怎么分屏,取消分屏

Split Vertically 或者 Split Horizontally 可以把当前编辑窗口垂直或者水平拆分成两个。 Split Vertically或者Split Horizontally可以把当前编辑窗口垂直或者水平拆分成两个。 取消拆分窗口:

三维激光扫描技术在文保修缮项目中的应用

三维激光扫描技术作为一种新兴的高精度空间数据获取手段,其在文物保护和修缮项目中的应用日益广泛。这项技术通过快速获取物体表面的三维密集点云数据,为文物的数字化存档、保护、修复及再利用提供了强有力的技术支持。 数据采集:高精度与非接触性三维激光扫描技术通过激光测…

找到一个数最接近的比它大的2的n次幂的代码分析

pub fn f1(mut n: u32) -> u32 {n = n | (n >> 1);n = n | (n >> 2);n = n | (n >> 4);n = n | (n >> 8);n = n | (n >> 16);n }如果n的输入类型为 u32(32位无符号整型), 上述代码的结果为大于等于n的2^k - 1的值(因为可能会出现溢出,所…

《如 何 速 通 一 套 题》8.0

邮寄 开场秒 B。 A 稍微退了一会儿,推出一个解法(后面发现假掉了)...... 然后 CD,D 感觉是一个 SA。结果 SA 写错了,算法假掉了...... A 智乃的差分 分类讨论。 \(x > 0\) 最大值 \(= x\),最小值 \(= 0\) 此时可以直接找一个不是 \(x\),不是 \(0\) 的数来(严格次小值…