2020-2021年度第二届全国大学生算法设计与编程挑战赛 (春季赛)F - 这是一道大水题

Posted 你可以当我没名字

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2020-2021年度第二届全国大学生算法设计与编程挑战赛 (春季赛)F - 这是一道大水题相关的知识,希望对你有一定的参考价值。

题目

在这里插入图片描述

代码

#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<string>
#include<iostream>
#include<sstream>
#include<set>
#include<map>
#include<queue>
#include<bitset>
#include<vector>
#include<limits.h>
#include<assert.h>
#include<functional>
#include<numeric>
#include<ctime>
#define ini(a) memset(a,0,sizeof(a))
#define ini2(a,b) memset(a,b,sizeof(a))
#define rep(i,a,b) for(int i=a;i<=b;i++)
#define lowbit(x) x&(-x)
#define DBG(x) \\
	(void)(cout << "L" << __LINE__ \\
	<< ": " << #x << " = " << (x) << '\\n')
#define TIE \\
	cin.tie(0);cout.tie(0);\\
	ios::sync_with_stdio(false);
#define sc ll T;cin>>T;while(T--)

using namespace std;
typedef long long ll;
typedef unsigned long long ull;
const double PI = acos(-1.0);
const double eps = 1e-6;
const int INF = 0x3f3f3f3f;
const int maxn = 1000000005;
const int N = 100;
ll cb[200009][3];
ll an[200009];

int main()
{
	ll ttt = 1;
	TIE;
	ini(an);
	ll n,m,ans = 0,cnttt = 0;
	cin>>n>>m;
	for(ll i=0;i<m;i++){
		ll q,a,b,c;
		cin>>q;
		if(q==0){
			cin>>a>>b>>c;
			an[1]+=(b-a+1)*c;
			an[a]-=(b-a+1)*c;
			//这里用的是差分
			an[b+1]+=(b-a+1)*c;
			an[200005]-=(b-a+1)*c;
		}else{
			cin>>a;
			for(ll j=1;j<=a;j++){
				ans+=an[j];
			}
			cout<<ans<<"\\n";
			ans = 0;
		}
	}
	return 0;
}

以上是关于2020-2021年度第二届全国大学生算法设计与编程挑战赛 (春季赛)F - 这是一道大水题的主要内容,如果未能解决你的问题,请参考以下文章

2020-2021年度第二届全国大学生算法设计与编程挑战赛(冬季赛)——正式赛

2020-2021年度第二届全国大学生算法设计与编程挑战赛 (春季赛)- 天才的操作(线段树+主席树+树上倍增)

个人赛组2021-2022年度第三届全国大学生算法设计与编程挑战赛(秋季赛)-正式赛

个人赛组2021-2022年度第三届全国大学生算法设计与编程挑战赛(秋季赛)——热身赛

2021-2022年度第三届全国大学生算法设计与编程挑战赛(冬季赛)-正式赛 部分题解

2021-2022年度第三届全国大学生算法设计与编程挑战赛(冬季赛正式赛) 部分题题解