3 条题解

  • 4
    @ 2021-8-20 13:51:43

    模拟算法,其实就是按照题目说的来,本题是简单的模拟算法题目,注意分数在什么情况下是连续累加,当天如果没有做题是没有任何分数的,并且累加的分数也会从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
      @ 2022-10-28 22:09:26

      不仔细看题还真的容易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
        @ 2023-10-5 19:41:11

        敲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
        上传者