暴力写挂求助!
查看原帖
暴力写挂求助!
804607
rainygame楼主2023/4/30 22:48
#include <stdio.h>
#pragma GCC target("sse,sse2,sse3,ssse3,sse4.1,sse4.2,avx,avx2,popcnt,tune=native")
#define f_inline inline __attribute__((always_inline))

const int MAXSIZE = 1 << 20;
char buf[MAXSIZE], *p1, *p2;
#define gc()                                                               \
  (p1 == p2 && (p2 = (p1 = buf) + fread(buf, 1, MAXSIZE, stdin), p1 == p2) \
       ? EOF                                                               \
       : *p1++)

char pbuf[1<<21];
int p, p3(-1);

void flush() {
    fwrite(pbuf, 1, p3+1, stdout);
	p3 = -1;
}

f_inline int uread(){
	register int x(0);
	register char ch;
	while ((ch = gc()) < 48);
	do{
		x = (x << 1) + (x << 3) + (ch ^ 48);
	}while ((ch = gc()) > 47);
	return x;
}

void uprint(register const int x){
	register const int tmp(x/10);
	if (tmp) uprint(tmp);
	pbuf[++p3] = (x-(tmp<<1)-(tmp<<3)+'0');
}

f_inline void print(register const int &x){
	if (p3 > (1 << 20)) flush();
	uprint(x);
	pbuf[++p3] = '\n';
}

int a[500000];

int main(){
	register const int n(uread());
	register int m(uread());
	for (register int i(0); i<n; ++i) a[i] = uread();
	
	do{
		register const int op(uread()), l(uread()-1), r(uread());
		if (op == 1){
			register const int x(uread());
			if (x >= 2){
				for (register int i(l); i<r; ++i){
					if (!(a[i] % x)) a[i] /= x;
				}
			}else if (x == 2){
				for (register int i(l); i<r; ++i){
					if (!(a[i] & 1)) a[i] >>= 1;
				}
			}
		}else{
			register long long ans(0);
			for (register int i(l); i<r; ++i) ans += a[i];
			print(ans);
		}
	}while (--m);
	
	flush(); 
	
	return 0;
}

只得了 1212 分,除 33 个 TLE,其它都是 WA。

2023/4/30 22:48
加载中...