WA 求hack
查看原帖
WA 求hack
252549
Iwara楼主2024/5/9 19:28

RT

#include<bits/stdc++.h>
#pragma GCC optimize(3)
#pragma GCC target("avx")
#pragma GCC optimize("Ofast")
#pragma GCC optimize("inline")
#pragma GCC optimize("-fgcse")
#pragma GCC optimize("-fgcse-lm")
#pragma GCC optimize("-fipa-sra")
#pragma GCC optimize("-ftree-pre")
#pragma GCC optimize("-ftree-vrp")
#pragma GCC optimize("-fpeephole2")
#pragma GCC optimize("-ffast-math")
#pragma GCC optimize("-fsched-spec")
#pragma GCC optimize("unroll-loops")
#pragma GCC optimize("-falign-jumps")
#pragma GCC optimize("-falign-loops")
#pragma GCC optimize("-falign-labels")
#pragma GCC optimize("-fdevirtualize")
#pragma GCC optimize("-fcaller-saves")
#pragma GCC optimize("-fcrossjumping")
#pragma GCC optimize("-fthread-jumps")
#pragma GCC optimize("-funroll-loops")
#pragma GCC optimize("-fwhole-program")
#pragma GCC optimize("-freorder-blocks")
#pragma GCC optimize("-fschedule-insns")
#pragma GCC optimize("inline-functions")
#pragma GCC optimize("-ftree-tail-merge")
#pragma GCC optimize("-fschedule-insns2")
#pragma GCC optimize("-fstrict-aliasing")
#pragma GCC optimize("-fstrict-overflow")
#pragma GCC optimize("-falign-functions")
#pragma GCC optimize("-fcse-skip-blocks")
#pragma GCC optimize("-fcse-follow-jumps")
#pragma GCC optimize("-fsched-interblock")
#pragma GCC optimize("-fpartial-inlining")
#pragma GCC optimize("no-stack-protector")
#pragma GCC optimize("-freorder-functions")
#pragma GCC optimize("-findirect-inlining")
#pragma GCC optimize("-fhoist-adjacent-loads")
#pragma GCC optimize("-frerun-cse-after-loop")
#pragma GCC optimize("inline-small-functions")
#pragma GCC optimize("-finline-small-functions")
#pragma GCC optimize("-ftree-switch-conversion")
#pragma GCC optimize("-foptimize-sibling-calls")
#pragma GCC optimize("-fexpensive-optimizations")
#pragma GCC optimize("-funsafe-loop-optimizations")
#pragma GCC optimize("inline-functions-called-once")
#pragma GCC optimize("-fdelete-null-pointer-checks")
using namespace std;
typedef long long ll;
const ll MAXN=1e6+5;
ll n,blen,q,op,x,y,z;
struct node{
	ll num,id;
	bool operator < (const node &oth)const{
		return num<oth.num;
	}
}a[MAXN];
struct block{
	ll l,r;
}t[1005]; 
ll cnt,block_num[MAXN];
//bool cmp_num(node n1,node n2){
//	return n1.num<n2.num;
//}
//bool cmp_id(node n1,node n2){
//	return n1.id<n2.id;
//}
ll solve(ll L,ll R,ll X){
	if(X>a[R].num)return 0;
	if(X<=a[L].num)return R-L+1; 
	ll res=lower_bound(a+L,a+1+R,(node){X,0})-a;
	return R-res+1;
}
int main(){
//	freopen("111.in","r",stdin);
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0); 
	cin>>n;
	for(int i=1;i<=n;i++)cin>>a[i].num;
	for(int i=1;i<=n;i++)a[i].id=i;
	blen=sqrt(n);
	for(int i=1;i<=n;i+=blen){
		cnt++;
		t[cnt].l=i;
		t[cnt].r=min(i+blen-1,n);
		for(int j=t[cnt].l;j<=t[cnt].r;j++)block_num[j]=cnt;
	}
	for(int i=1;i<=cnt;i++)stable_sort(a+t[i].l,a+1+t[i].r,[](node n1,node n2){
		return n1.num<n2.num;
	});
	cin>>q;
	for(int i=1;i<=q;i++){
		cin>>op;
		if(op){
			cin>>x>>y;
			ll b_id=block_num[x];
			for(int i=t[b_id].l;i<=t[b_id].r;i++)if(a[i].id==x){
				a[i].num=y;
				break;
			}
		}
		else{
			cin>>x>>y>>z;
			if(block_num[x]==block_num[y]){
				ll res=0;
				for(int i=t[block_num[x]].l;i<=t[block_num[x]].r;i++)if(a[i].num>=z&&a[i].id>=x&&a[i].id<=y)res++;
				cout<<res<<'\n';
				continue;
			}
			ll res=0;
			for(int i=t[block_num[x]].l;i<=t[block_num[x]].r;i++)if(a[i].num>=z&&a[i].id>=x&&a[i].id<=y)res++;
			for(int i=t[block_num[y]].l;i<=t[block_num[y]].r;i++)if(a[i].num>=z&&a[i].id>=x&&a[i].id<=y)res++;
			for(int i=block_num[x]+1;i<=block_num[y]-1;i++)res+=solve(t[i].l,t[i].r,z);
			cout<<res<<'\n';
		}
//		cout<<"case "<<i<<endl;
	}
	return 0;
} 
2024/5/9 19:28
加载中...