此题是一道比噶家还简单的模拟题
思路:
首先要说明一下连续签到天数才会累加,开始我就因为这个而爆零。
输入 $v$ 时不用 $v{1},v{3},v{7}$ 地输,直接 $v{i}$ 就可以,不要被邪恶的出题人迷惑了双眼。
及时你签到时时连续签到天数不是 $3$、$7$、$30$、$120$、$365$ 但大于最低界限,也可以加活跃值(像 $day\ge 1 \ and \ day< 3$ 这样也会加连续签到1天的活跃值)。
然后……
直接模拟即可。
AC代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| #include<bits/stdc++.h> using namespace std; int n,v[1145141],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; }
|