“科大讯飞杯”第18届上海大学程序设计联赛春季赛暨高校网络友谊赛 E.美味的序列

E.美味的序列

题目链接-E.美味的序列
“科大讯飞杯”第18届上海大学程序设计联赛春季赛暨高校网络友谊赛 E.美味的序列_第1张图片
“科大讯飞杯”第18届上海大学程序设计联赛春季赛暨高校网络友谊赛 E.美味的序列_第2张图片
解题思路

  • 不难得出吃的顺序对答案没有影响
  • 因为每经过 1秒,所有还没有被吃的部分的美味度会下降 1,所以最后减去 n × ( n − 1 ) / 2 n×(n-1)/2 n×(n1)/2即可
  • a n s = s u m − ∑ i = 1 n ( n − i ) ans=sum-\sum_{i=1}^n (n-i) ans=sumi=1n(ni)

附上代码

//#pragma GCC optimize("-Ofast","-funroll-all-loops")
#include
#define int long long
#define lowbit(x) (x &(-x))
#define endl '\n'
using namespace std;
const int INF=0x3f3f3f3f;
const int dir[4][2]={-1,0,1,0,0,-1,0,1};
const double PI=acos(-1.0);
const double e=exp(1.0);
const double eps=1e-10;
const int M=1e9+7;
const int N=2e5+10;
typedef long long ll;
typedef pair<int,int> PII;
typedef unsigned long long ull;
signed main(){
	ios::sync_with_stdio(false);
	cin.tie(0);cout.tie(0);

	int n,ans=0;
	cin>>n;
	for(int i=0;i<n;i++){
		int tmp;
		cin>>tmp;
		ans+=tmp; 
	}
	ans-=n*(n-1)/2;
	cout<<ans<<endl;
	return 0;
}

你可能感兴趣的:(牛客nowcoder)