<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      算法隨筆——ODT

      #include<bits/stdc++.h>
      using namespace std;
      #define ll long long
      #define INF 0x3f3f3f3f
      #define re register
      #define int ll
      #define PII pair<int,int>
      #define rep(k,a,b) for (int k = a;k <= b;k++)
      #define adde(a,b) v[a].push_back(b)
      #define addev(a,b,c) v[a].push_back({b,c});
      #define rd read
      #define all(a) a.begin(),a.end()
      #define mem(a,b) memset(a,b,sizeof a);
      #define pb push_back
      #define vct vector
      #define rev(T) reverse(T.begin(),T.end())
      
      int read()
      {
      	int f=1,k=0;char c = getchar();
      	while(c <'0'||c>'9'){if(c=='-')f=-1;c=getchar();}
      	while(c>='0'&&c<='9')k=(k<<1)+(k<<3)+(c^48),c=getchar();
      	return k*f;
      }
      
      const int N = 1e6+5;
      
      int n,q;
      string str;
      
      struct BIT
      {
      	int c[N];
      	int lb(int x){return x & -x;}
      	void add(int x,int v)
      	{
      		for (int i = x;i <= N-2;i+=lb(i)) c[i] += v;
      	}
      	int query(int x)
      	{
      		int res = 0;for (int i = x;i;i-=lb(i) ) res += c[i];return res;
      	}
      	void mdf(int l,int r,int v)
      	{
      		add(l,v);add(r + 1,-v);
      	}
      }bit;
      
      int tag[N];
      
      struct ODT
      {
      	int n;
      	map<int,int> mp;
      	ODT(int nn) {mp[1] = 1;mp[nn+1] = -1;n = nn;}
      	
      	void split(int x)
      	{
      		auto it = *prev(mp.upper_bound(x));
      		mp[x] = it.second;
      	//	cout <<"xit:"<< x << ' ' << it.second << endl;
      	}
      	void assign(int l,int r,int v)
      	{
      		split(l);
      		split(r+1);
      		auto it = (mp.find(l));
      		while (it->first != r+1) it = mp.erase(it);
      		mp[l] = v;
      	}
      	void perform(int l,int r,int c) //做操作
      	{
      		split(l);split(r+1);//先分割區間
      		auto it = mp.find(l);
      		while (it->first != r+1)
      		{
      			int ql = it->first,qr = next(it)->first-1;
      			bit.mdf(ql,qr,tag[it->second]);
      			it = next(it);
      		}
      		bit.mdf(l,r,-tag[c]);	
      	}
      	int query(int x)
      	{//query 先split
      		split(x);
      		return bit.query(x) + tag[mp[x]];
      	}
      };
      
      void solvemain()
      {
      	cin >> n >> q;
      	ODT odt(n);
      	while(q--)
      	{
      		string str;cin >> str;
      
      	
      		if (str[0] == 'C')
      		{
      			int l =rd(),r=rd(),c= rd();
      			odt.perform(l,r,c);
      			odt.assign(l,r,c);
      		}
      		else if (str[0] == 'A')
      		{
      			int  c =rd(),x =rd();
      			tag[c] += x;
      		}
      		else
      		{
      			int id = rd();
      			printf("%lld\n",odt.query(id));
      		}
      	}
      }
      
      signed main()
      {
      	int t;t = 1;
      	while(t--)
      	{
      		solvemain();
      	}
      	return 0;
      }
      
      posted @ 2025-07-24 09:06  codwarm  閱讀(13)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 免费特黄夫妻生活片| 丝袜美腿诱惑之亚洲综合网| 亚洲欧美日韩综合一区在线| 老湿机69福利区无码| 性男女做视频观看网站| 国产乱码精品一区二区三上 | 亚洲最大日韩精品一区| 成人毛片100免费观看| 欧洲熟妇熟女久久精品综合| 亚洲不卡av不卡一区二区| 亚洲一区二区精品另类| 亚洲sm另类一区二区三区| 成人特黄A级毛片免费视频| 免费视频欧美无人区码| 白丝乳交内射一二三区| 丰腴饱满的极品熟妇| 精品 无码 国产观看| 夜夜嗨久久人成在日日夜夜| 亚洲色欲在线播放一区二区三区| 亚洲色婷婷综合开心网| 亚洲综合一区二区三区| 免费无码又爽又刺激高潮的app| 宣城市| 美女黄18以下禁止观看| 精品视频不卡免费观看| 下面一进一出好爽视频| 中文字幕 制服 亚洲 另类| 国产日韩综合av在线| 亚洲一区二区三区播放| av天堂久久天堂av| 4399理论片午午伦夜理片| 亚洲精品国产成人| 无码人妻出轨黑人中文字幕| 免费日韩av网在线观看| 色综合热无码热国产| 欧美 亚洲 另类 丝袜 自拍 动漫| 亚洲av天堂综合网久久| 国产玖玖视频| 国产精品国产亚洲区久久| 97欧美精品系列一区二区| 天堂在线www天堂中文在线|