11.12 解题报告

因为是IOI赛制所以不存在期望得分

T1

实际得分:100 pts
用时:20 min
简单构造,直接一个 a 剩下的都是 b 就行。

signed main(){
	int n=read();
	putchar('a');
	for(int i=2;i<=n;i++) putchar('b');
	return 0;
}

T2

实际得分:50 pts(满分 50 pts)
用时:50 min
打个表就会发现,最优构造是先 1 1 交替放然后剩下的都扔到最后面。

signed main(){
	int n=read(),sum=0;
	for(int i=1;i<=n;i++){
		a[i]=read();
		sum+=(a[i]==-1);
	}
	if(sum<n-sum){
		for(int i=1;i<=min(sum,n-sum)*2;i++){
			if(!(i&1)) printf("-1 ");
			else printf("1 ");
		}
		for(int i=sum*2+1;i<=n;i++) printf("1 ");
	}
	else{
		for(int i=(n-sum)*2+1;i<=n;i++) printf("-1 ");
		for(int i=1;i<=min(sum,n-sum)*2;i++){
			if(i&1) printf("-1 ");
			else printf("1 ");
		}
	}
	return 0;
}

T3

用时:20 min
得分:10 pts(满分 50 pts)
考虑分类讨论:
设有 a1b1
对于 ab,需要保证没有任何两个 1 相邻,所以相当于是在 b+1 个空隙中插入 1,方案数是 Cb+1a
对于 a>b 的情况,达到下界 ab 充要条件是每一个前缀和都在 [0,ab] 上,这个直接 dp 就行了。

T4

用时:1 h
得分:20 pts
考场想了很久,没有结果,正解是考虑先找到一个所在的集合,然分别二分。

posted @   wapmhac  阅读(24)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
点击右上角即可分享
微信分享提示