3 条题解
-
4
模拟算法,其实就是按照题目说的来,本题是简单的模拟算法题目,注意分数在什么情况下是连续累加,当天如果没有做题是没有任何分数的,并且累加的分数也会从0开始计算,具体代码如下,代码不唯一,其他方法能完成也可以发布题解~
#include <bits/stdc++.h> using namespace std; const int N = 105; string s[N]; int a[N], x, n, m, tmp, sum; int main() { cin >> n >> m; for (int i = 1; i <= n; i++) { cin >> s[i]; sum = tmp = 0; for (int j = 1; j <= m; j++) { cin >> x; sum += x; if (x > 0) { sum += tmp; tmp++; } else tmp = 0; } a[i] = sum; } for (int i = 1; i <= n; i++) cout << s[i] << ' ' << a[i] << '\n'; return 0; }
-
2
不仔细看题还真的容易WA
WA两次然后AC了#include<bits/stdc++.h> using namespace std; int n,m,a,yesterday,today,db; // db记录连签天数 string name; int main(){ ios::sync_with_stdio(false); // 输入输出加速 cin.tie(0); cout.tie(0); cin>>n>>m; for(int i=1;i<=n;i++){ today=yesterday=db=0; // 每个人都要初始化一次 cin>>name; for(int j=1;j<=m;j++){ yesterday=today; // 记录昨天的分数 cin>>a; today+=a; // 每天先加基础分 if(today!=yesterday) // 不等说明昨天也签到了 today+=db++; // 记录连签并加分 else db=0; // 断签后记零 } cout<<name<<" "<<today<<"\n"; } return 0; }
-
1
敲if的一天
#include<bits/stdc++.h> using namespace std; string s[10005]; int n,m,a[10005][10005],sum[10005]; int main() { cin>>n>>m; for(int i=1;i<=n;i++) { cin>>s[i]; int num=0; for(int j=1;j<=m;j++) { cin>>a[i][j]; if(a[i][j]!=0) { num++; sum[i]+=num-1; } else { num=0; } if(a[i][j]==5) { sum[i]+=5; } else if(a[i][j]==3) { sum[i]+=3; } else if(a[i][j]==2) { sum[i]+=2; } else if(a[i][j]==1) { sum[i]+=1; } } } for(int i=1;i<=n;i++) { cout<<s[i]<<" "<<sum[i]<<endl; } return 0; }
- 1
信息
- ID
- 1217
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 4
- 标签
- 递交数
- 230
- 已通过
- 102
- 上传者