【LGR-148-Div.3】洛谷基础赛 #1 & MGOI Round I

发布时间 2023-08-06 19:36:18作者: minecraft114514

【LGR-148-Div.3】洛谷基础赛 #1 & MGOI Round I

据说是普及组难度?

T1 P9502 『MGOI』Simple Round I | A. 魔法数字

\(100pts\)

题目描述

初级魔法士小 M 的魔法数字是 \(2\)

给定一个正整数 \(n\),小 M 需要找到最大的 偶数 \(m\),使得 \(2^m<n\)

  • 又双叒叕是个水题,然后被又双叒叕水题爆切。。。。。。
  • 只要判断 \(log2(n)\%2\) 是否为偶数,并且不能正好是 \(2\)\(n\) 次方,然后输出即可。
#include<bits/stdc++.h>
using namespace std;
int main()
{
	int n,i;
	cin>>n;
	if(int(log2(n))%2==0&&int(log2(n))!=log2(n))cout<<(int)log2(n);
	else if(int(log2(n))%2==1) cout<<(int)log2(n)-1;
	else cout<<int(log2(n)-2);
}

T2 P9503 『MGOI』Simple Round I | B. 魔法照相馆

\(100pts\)

题目描述

小 M 正在准备入学所必需的魔法士证件,因此他来到了纵深巷的魔法照相馆。

在等待的时候,小 M 注意到魔法照相馆有三个幕布,颜色从左到右分别是红色、蓝色和白色。店主 zx 先生会根据客人的需求拉上或拉下这三个幕布,如下图所示:

幕布摆放在左边,按照红蓝白的顺序排列。人则坐在幕布右边,而 zx 先生则站在最右边给人拍照。幕布从右往左数,第一个没有拉上的幕布颜色将成为照片的背景颜色。

每次 zx 先生拉上或拉下一个幕布都需要消耗一个时间单位,而拍照不消耗时间。小 M 已经知道了他前面所有总共 \(n\) 个客人的需求。在初始状态为 全部拉下 的情况下,请你帮助小 M 计算他至少需要等待多少个时间单位。

  • 水题,只要模拟状态,再对号入座,就轻轻松松 \(AC\) 了。
  • (其中红色幕布不会拉上去)
#include<bits/stdc++.h>
using namespace std;
int main()
{
	int n,i,sum=0,zt=111;
	char q;
	cin>>n;
	for(i=1;i<=n;i++)
	{
		cin>>q;
        //111 110 101 100
		if(q=='W'&&(zt==101||zt==111))continue;
		else if(q=='B'&&(zt==110))continue;
		else if(q=='R'&&(zt==100))continue;
		if(q=='W')
		{
			if(zt==110)zt=111,sum++;
			else if(zt==100)zt=101,sum++;
		}
		if(q=='B')
		{
			if(zt==111||zt==100)zt=110,sum++;
			else if(zt==101)zt=110,sum+=2;
		}
		if(q=='R')
		{
			if(zt==111)zt=100,sum+=2;
			else if(zt==110||zt==101)zt=100,sum++;
		}
	}
	cout<<sum;
}
  • 将各个幕布的状态枚举,拉下为 \(1\) ,拉上为 \(0\)

T3P9504 『MGOI』Simple Round I | C. 魔法禁林

\(30pts\)

T4P9505 『MGOI』Simple Round I | D. 魔法环

\(0pts\) 一分没骗到。。。