4 条题解

  • 7
    @ 2022-12-11 18:17:26
    #include <iostream>
    using namespace std;
    int main()
    {
    	long long n,m,s = 0,i,x = 0,t;
    	cin>>n>>m;
    	for(i = 1;i <= n;i++)
    	{
    		x += i;
    	}
    	x = x * 2;//一个完整的1 2 3..n n n-1.. 2 1的和
    	s = m / (2 * n) * x;//先求有多少完整的循环
    	t = m % (2 * n);//除了完整循环还剩余的数
    	if(t <= n)
    	{
    		for(i = 1;i <= t;i++)
    		{
    			s = s + i;
    		}
    	}
    	else
    	{
    		s = s + x / 2;//先加一半的循环的和
    		for(i = n;i > n - (t - n);i--)
    		{
    			s = s + i;
    		}
    	}
    	cout << s;
    	return 0;
    }
    
    • 1
      @ 2022-9-1 17:23:55
      ans+=m/(n*2)*(n+1)*n;
      m=m%(n*2);
      if (m>n)
      {
          m-=n;
          ans+=(n+1)*n/2;
          for (int i=n;i>n-m;i--)
          {
              ans+=i;
          }
      }
      else
      {
          for (int i=1;i<=m;i++)
          {
              ans+=i;
          }
      }
      
      • 0
        @ 2024-4-6 20:22:46

        50分题解

        #include<iostream>
        using namespace std;
        int main()
        {
            int s,t,y=0,m,n,sum=0;
            cin>>s>>t;
            for(int i=1;i<=s;i++)
            {
                y+=i;
            }
            y=y*2;//完整循环的和
            m=t/(2*s);//几个完整循环
            n=t%(2*s);//余数
            for(int i=1;i<=m;i++)
            {
                sum+=y;
            }
            if(s>=n)//到下面"//"之间的为求余数代码
            {
                for(int i=1;i<=n;i++)
                {
                    sum+=i;
                }
            }
            else
            {
                sum+=y/2;
                for(int i=1;i<=n-s+1;i++)
                {
                    sum+=i;
                }
            }//
            cout<<sum;
            return 0;
        }
        
        • @ 2024-5-4 10:02:46

          我这个60分😕

          #include <bits/stdc++.h>
          using namespace std;
          int main()
          {
              long long a, b, x = 0, s = 0, sum = 0;
              cin >> a >> b;
              for (int i = 1; i <= b / a; i++)
              {
                  s++;
                  if (s % 2 == 1)
                  {
                      x = 0;
                  }
                  else
                  {
                      x = a + 1;
                  }
                  for (int j = 1; j <= a; j++)
                  {
                      if (s % 2 == 1)
                      {
                          x++;
                      }
                      else
                      {
                          x--;
                      }
                      sum += x;
                  }
              }
              if (b % a == 0)
              {
                  return 0;
              }
              if (b / a % 2 == 0)
              {
                  for (int i = 1; i <= b % a; i++)
                  {
                      sum += i;
                  }
              }
              else
              {
                  for (int i = a; i >= a - b % a + 1; i--)
                  {
                      sum += i;
                  }
              }
              cout << sum;
              return 0;
          }
          
      • -6
        @ 2022-8-13 13:14:03

        #include <iostream> using namespace std; long long n, m,a[1000005],sum[1000005]; int main() { cin >> n>>m; for (int i = 1; i <= n; i++) a[i] = i; for(int i=1;i<=n;i++) { sum[i]=sum[i-1]+a[i]; } long long cnt=0; if(m>=n) { long long q=m/n; long long p=m%n; if(q%2==0) { cnt+=sum[n]*q+sum[p]; } else { cnt+=sum[n]*q+sum[n]-sum[n-p]; } } else { cnt+=sum[m]; } cout<<cnt; return 0; }

        • 1

        【基础】小 X 与小和尚(sum)

        信息

        ID
        533
        时间
        1000ms
        内存
        128MiB
        难度
        5
        标签
        递交数
        191
        已通过
        75
        上传者