竞赛
考级
3.午枫的宝藏 思路: 这道题就一个公式。(不会用LaTex......) n取模2=0→ans=n∗(n+2)/4;n取模2=0→ans=n*(n+2)/4;n取模2=0→ans=n∗(n+2)/4; else→ans=(n+1)∗(n−1)/4;else→ans=(n+1)*(n-1)/4;else→ans=(n+1)∗(n−1)/4; 那么是怎么推导出来的呢? * 当n为偶数:争取n/2名水手支持,选择编号为偶数的水手每人分1金币。答案为n(n+2)/4(等差数列)。 * 当n为奇数:争取(n-1)/2名水手支持,选择编号为偶数的水手每人分1金币。答案(n+1)*(n-1)/4。(等差数列) 我的代码: ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
这题看着难,其实还行 #include <bits/stdc++.h> using namespace std; int main() { long long mod=1e9+7; long long t,n,cnt=0; cin>>t; while(t--){ cin>>n; if(n%2==1) n-=1; cnt+=(2+n)*(n/2)/2; cout<<cnt%mod<<endl; cnt=0; } return 0; }
提交答案之后,这里将显示提交结果~