B3655 [语言月赛202208] 天天爱跑步 题解

此题是一道比噶家还简单的模拟题

思路:

首先要说明一下连续签到天数才会累加,开始我就因为这个而爆零。

输入 vv 时不用 v1,v3,v7v_{1},v_{3},v_{7} 地输,直接 viv_{i} 就可以,不要被邪恶的出题人迷惑了双眼。

及时你签到时时连续签到天数不是 33773030120120365365 但大于最低界限,也可以加活跃值(像 day1 and day<3day\ge 1 \ and \ day< 3 这样也会加连续签到1天的活跃值)。

然后……

直接模拟即可。

AC代码:

#include<bits/stdc++.h>
using namespace std;
int n,v[1145141],c,hyz;//c是连续签到的天数,hyz是活跃值
bool f[1145141];
int main(){
	cin>>n;
	for(int i=1;i<=6;i++){
		cin>>v[i];
	}
	for(int i=1;i<=n;i++){
		cin>>f[i];
		if(f[i]==1)
			c++;
		else c=0;//如果这天没签到,连续签到中断
		if(c>=1&&c<3)
			hyz+=v[1];
		else if(c>=3&&c<7)
			hyz+=v[2];
		else if(c>=7&&c<30)
			hyz+=v[3];
		else if(c>=30&&c<120)
			hyz+=v[4];
		else if(c>=120&&c<365)
			hyz+=v[5];
		else if(c>=365)
			hyz+=v[6];
	}
	cout<<hyz;
	return 0;//完结撒花
}
posted @ 2023-11-09 18:30  IOI_official  阅读(310)  评论(0)    收藏  举报  来源