首页 > 其他分享 >【牛客训练记录】2024牛客国庆集训派对day2

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

时间:2024-10-02 18:22:15浏览次数:7  
标签:msort return int day2 long 2024 牛客 逆序

赛后反思

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

I 题

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

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

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

#include <bits/stdc++.h>
#define int long long

using 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 long

using 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;
}

标签:msort,return,int,day2,long,2024,牛客,逆序
From: https://www.cnblogs.com/longxingx/p/18444958

相关文章

  • DAY2-补题
    我补题AK了,但你出言不逊是非常好的一套题,让我的大脑旋转啊。不太想开一个文章单独屑,所以扔到随笔里面。敲字速度有待加强。说在前面题目难度单调递减,分数单调递减。果然屑死了。T1再次读题失误,正确的来说是代码敲得非常抽象。T2DP但没骗到分非常不好,T3场上想出正解了,但推一......
  • zlibrary 最新官方国内可用网址入口及电脑客户端集合(2024持续更新)
    Z-library,被誉为全球范围内最为庞大的数字图书馆之一,其藏书量之丰富令人叹为观止,总计囊括了超过9,826,996册电子书及84,837,646篇学术期刊文章。这座庞大的知识宝库覆盖了从经典文学巨著到前沿理工学科,从人文艺术瑰宝到专业学术论文的广泛领域,几乎能够满足每一位求知者的阅读与学......
  • 题解:P9788 [ROIR 2020 Day2] 区域规划
    法1枚举\(a,b,c\),考虑到\(c\)的最小值为\(\max(1,\frac{(a\cdotb−n)}{b})\),所以直接剪枝即可通过。代码:#include<bits/stdc++.h>usingnamespacestd;intans,n,m;intmain(){ ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); cin>>n>>m; for(i......
  • LoongArch@微处理器体系结构专利技术研究方法@20241002
    微处理器体系结构专利技术研究方法第一辑:X86指令集总述 微处理器体系结构专利技术研究方法第二辑:x86多媒体指令集 微处理器体系结构专利技术研究方法第三辑:X86指令实现专利技术 ......
  • The 2024 Guangdong Provincial Collegiate Programming Contest
    Preface这场据说题挺毒的?但实际打的时候感觉也还好,3h就出了7个题,然后被H卡飞了赛后发现是没有观察到构造的解的性质,把Dinic换成匈牙利就过了,只能说对flow的理解不够B.腊肠披萨神秘string题,被徐神开场一眼秒了,虽然中间我和祁神上去写了三个签到,但徐神还是在1h不......
  • Orchestre symphonique de Montréal,Rafael Payare - 马勒:第五交响曲(2024)
    OrchestresymphoniquedeMontréal,RafaelPayare-马勒:第五交响曲(2024)[Hi-Res96kHz_24bitFLAC]曲目:01.I.Trauermarsch.IngemessenemSchritt.Streng.WieeinKondukt.02.II.Stürmischbewegt.MitgrößterVehemenz03.III.Scherzo.Kräftig,nichtzusch......
  • 2024.10 - 做题记录与方法总结
    赏赐的是CCF,收回的也是CCF-《CCF圣经》2024/10/01国庆快乐!P10856【MX-X2-T5】「CfzRound4」Xor-Forces题面:题目描述给定一个长度为\(n=2^k\)的数组\(a\),下标从\(0\)开始,维护\(m\)次操作:操作一:给定\(x\),设数列\(a'\)满足\(a'_i=a_{i\oplusx}\),将\(a\)......
  • Win11 LTSC 2024 安装后的一些步骤
    仅作为自己记录使用。1.关闭自带的防病毒软件[可忽略]建议使用组策略关闭自带的防病毒软件2.系统激活首先通过产品密钥变更系统为LOTLTSCCGK42-GYN6Y-VD22B-BX98W-J8JXDLOTLTSC有10年的维护期,而LTSC2024仅只有5年的维护期,因此推荐使用LOTLTSC。之后使用KMS激活进行数......
  • 【训练记录】2024年莆田市高中信息学奥赛国庆集训CSP-S提高组(第二天场外)
    训练情况rk#4\(100+100+100+70=370\)赛后反思没什么很严重的失误,只是国庆早八起不来,打到后面时间不够做第四题了QAQ,下次一定早起TATA题开场怎么是CFDiv4原题,显然因为\(a,b,c,d\)互不相同,最后切出来的结果只有三块或四块,三块的情况是两线没有交叉,四块的情况......
  • 2024.9.24 模拟赛 CSP4
    模拟赛暴力场。出题人学政治的?T1商品值域线段树直接看值域上,每两个相邻的点的差提供的贡献,相当于值域上某一区间每一个位置都有\(1\)的贡献再减一。所以直接值域线段树,查询区间和。贪心发现左右端点一定挂在某个点上时最优。注意左右端点挂住的情况分别跑一遍。边界处理......