zoukankan      html  css  js  c++  java
  • BZOJ 5334: [Tjoi2018]数学计算

    线段树裸题

    难度在于认识到这个没法线性做

    #include<cstdio>
    using namespace std;
    int n,mod,tr[400005];
    void insert(int t,int l,int r,int x,int y){
    	if (l==r){
    		tr[t]=y;
    		return;
    	}
    	int mid=(l+r)>>1;
    	if (x<=mid) insert(t<<1,l,mid,x,y);
    	else insert(t<<1|1,mid+1,r,x,y);
    	tr[t]=1ll*tr[t<<1]*tr[t<<1|1]%mod;
    }
    void build(int t,int l,int r){
    	tr[t]=1;
    	if (l==r) return;
    	int mid=(l+r)>>1;
    	build(t<<1,l,mid);
    	build(t<<1|1,mid+1,r);
    }
    int main(){
    	int T;
    	scanf("%d",&T);
    	while (T--){
    		scanf("%d%d",&n,&mod);
    		build(1,1,n);
    		for (int i=1; i<=n; i++){
    			int cas;
    			scanf("%d",&cas);
    			if (cas==1){
    				int x;
    				scanf("%d",&x);
    				insert(1,1,n,i,x);
    			}
    			else{
    				int x;
    				scanf("%d",&x);
    				insert(1,1,n,x,1);
    			}
    			printf("%d
    ",tr[1]);
    		}
    	}
    	return 0;
    }
    

      

  • 相关阅读:
    .net core
    asp.net core之abp框架
    C#
    c#
    C#
    C#
    C#
    技术术语
    mysql
    006.内测.情景之迷你财务记账
  • 原文地址:https://www.cnblogs.com/silenty/p/9898300.html
Copyright © 2011-2022 走看看