社区讨论

还有谁不知道特判更快更好想啊?

P1483序列变换参与者 2已保存回复 1

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
1 条
当前快照
1 份
快照标识符
@lx2krxdw
此快照首次捕获于
2024/06/06 09:24
2 年前
此快照最后确认于
2024/06/06 10:08
2 年前
查看原帖
CPP
#include<bits/stdc++.h>
#define ll long long
#define ull unsigned ll
#define R register
#define Rint R int
#define inf 0x3f3f3f3f
#define mst(a,b) memset(a,b,sizeof a)
#define mp make_pair
#define lson (p>>1)
#define rson (p>>1|1)
#define mid (l[p]+r[p]>>1)
template<class T>inline void read(T &x){x=0;char c=getchar();bool f=0;for(;!isdigit(c);c=getchar())if(c=='-')f=1;for(;isdigit(c);c=getchar())x=(x<<3)+(x<<1)+c-'0';x=f?(~(x-1)):x;}
template<class T>inline void write(T x){if(x<0)return putchar('-'),write(-x),void();if(x>=10)write(x/10);putchar(x%10+'0');return;}
template<class T>inline void put(T x){write(x);putchar(' ');}
template<class T>inline void print(T x){write(x);putchar('\n');}
template<typename type,typename ...T>inline void read(type &x,T&...y){read(x),read(y...);}
using namespace std;
const int N=1e6+5;
int n,m,a[N];
int b[1005];
signed main(){
	read(n,m);
	mst(b,0);
	for(Rint i=1;i<=n;++i)read(a[i]);
	for(Rint i=1;i<=m;++i){
		Rint opt,x,y;
		read(opt);
		if(opt==1){
			read(x,y);
			if(x<=1000){
				b[x]+=y;
			}else{
				for(Rint i=1;i*x<=n;++i)a[i*x]+=y;
			}
		}else{
			read(x);
			int ans=a[x];
			for(int i=1;i<=1000&&i<=x;++i){
				if(x%i==0)ans+=b[i];
			}
			print(ans);
		}
	}
	return 0;
}
上面代码可以冲进最优解第一页

回复

1 条回复,欢迎继续交流。

正在加载回复...