4 条题解
-
7
#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; }
-
0
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; }
-
-6
#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
信息
- ID
- 533
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 5
- 标签
- 递交数
- 216
- 已通过
- 81
- 上传者