zoukankan      html  css  js  c++  java
  • luoguP3822 [NOI2017]整数

    #include<set>
    #include<iostream>
    using namespace std;
    typedef unsigned int ui;
    const int N=9999999;
    int n,t1,t2,t3,tp,a,b,k;
    ui zh[N],fu[N];
    set<int> ss;
    inline void add(int cnt,int pos,int val)
    {
        if(val>0)
        {
        	ui ji=(val>>(31-pos)),pre=zh[cnt];
            ji>>=1;zh[cnt]+=(val<<pos);ji+=(pre>zh[cnt]);
        	if(zh[cnt]!=fu[cnt])ss.insert(cnt);
        	else if(ss.find(cnt)!=ss.end())ss.erase(cnt);
            cnt++;
        	while(ji)
        	{
        		pre=zh[cnt];zh[cnt]+=ji;ji=(pre>zh[cnt]);
        		if(zh[cnt]!=fu[cnt])ss.insert(cnt);
        		else if(ss.find(cnt)!=ss.end())ss.erase(cnt);
        		cnt++;
            }
        }
        else if(val<0)
        {
            val=-val;
            ui ji=(val>>(31-pos)),pre=fu[cnt];
            ji>>=1;fu[cnt]+=(val<<pos);ji+=(pre>fu[cnt]);
        	if(zh[cnt]!=fu[cnt])ss.insert(cnt);
        	else if(ss.find(cnt)!=ss.end())ss.erase(cnt);
            cnt++;
        	while(ji)
        	{
        		pre=fu[cnt];fu[cnt]+=ji;ji=(pre>fu[cnt]);
        		if(zh[cnt]!=fu[cnt])ss.insert(cnt);
        		else if(ss.find(cnt)!=ss.end())ss.erase(cnt);
        		cnt++;
            }
        }
    }
    inline int query(int cnt,int pos)
    {
        int v1=(zh[cnt]%(1<<pos)),v2=(fu[cnt]%(1<<pos)),ans=((zh[cnt]>>pos)^(fu[cnt]>>pos))&1;
        if(v1<v2)return (ans^1);
        if(v1>v2 or ss.empty() or cnt<=*(ss.begin())){return ans;}
        set<int>::iterator it=ss.lower_bound(cnt);	--it;
        if(zh[*it]>fu[*it])return ans;
        return (ans^1);
    }
    int main()
    {
        ios::sync_with_stdio(false);
        cin>>n>>t1>>t2>>t3;
        while(n--)
        {
            cin>>tp;
            switch(tp)
            {
                case 1:{cin>>a>>b;add(b>>5,b-((b>>5)<<5),a);break;}
                default:{cin>>k;cout<<query(k>>5,k-((k>>5)<<5))<<endl;break;}
            }
        }
    }
    
  • 相关阅读:
    C语言I博客作业11
    第十四周助教总结
    C语言I博客作业10
    Tensorflow--MNIST简单全连接层分类
    记一些好看的Android开源菜单
    AS更新到3.5.2遇到ERROR: SSL peer shut down incorrectly问题
    Tensorflow tf.app.flags 的使用
    Android Sensor(传感器)
    《第一行代码》百分比布局出现的问题
    当Turtle遇见柯南?
  • 原文地址:https://www.cnblogs.com/Ace-MYX/p/10364122.html
Copyright © 2011-2022 走看看