首页 > 其他分享 >2024日记

2024日记

时间:2024-04-24 16:37:53浏览次数:16  
标签:int pos mid 2024 read num 日记 define

4.24:
由乃打扑克然后……

我招谁惹谁了啊!

加个代码,求神帮调

#include<bits/stdc++.h>
using namespace std;
#define infile(x) freopen(x,"r",stdin)
#define outfile(x) freopen(x,"w",stdout)
#define errfile(x) freopen(x,"w",stderr)
using ll=long long;using ull=unsigned long long;
#ifdef linux
#define gc getchar_unlocked
#define pc putchar_unlocked
#else
#define gc getchar
#define pc putchar
#endif
namespace IO{
    template<typename T>inline bool read(T &x){x=0;char s=gc();bool f=true;for(;(s<'0'||'9'<s);s=gc()) {if(s=='-') f=false;if(s==EOF)return false;}for(;'0'<=s&&s<='9';s=gc()) x=(x<<1)+(x<<3)+(s^48);if(!f) x=~x+1;return true;}
    inline bool read(double &x){x=0.0;char s=gc();bool f=true;for(;(s<'0'||'9'<s);s=gc()) {if(s=='-') f=false;if(s==EOF)return false;}for(;'0'<=s&&s<='9';s=gc()) x=(x*10)+(s^48);if(s!='.'){return true;}double res=0.1;s=gc();for(;'0'<=s&&s<='9';res/=10,s=gc()) x+=(s^48)*res;x=f?x:-x;return true;}
    inline bool read(string &str){string res;str.swap(res);char s=gc();for(;s==' '||s=='\n';s=gc());if(s==EOF) return false; for(;s!=' '&&s!='\n'&&s!=EOF;s=gc())str.push_back(s);return true;}
    inline bool read_line(string &str){string res;str.swap(res);char s=gc();for(;s==' '||s=='\n';s=gc());if(s==EOF) return false;for(;s!='\n'&&s!=EOF;s=gc()){str.push_back(s);}return true;}
    inline bool read_line(char *str){int len=0;char s=gc();for(;s==' '||s=='\n';s=gc());if(s==EOF) return false;for(;s!='\n'&&s!=EOF;s=gc()){str[len]=s;len++;}str[len]='\0';return true;}
    inline bool read(char &s){char x=gc();for(;x==' '&&x=='\n';x=gc());if(x==EOF||x==' '||x=='\n')return false;s=x;return true;}
    inline bool read(char *s){int len=0;char x=gc();for(;x==' '||x=='\n';x=gc());if(x==EOF)return false;for(;x!=' '&&x!='\n'&&x!=EOF;x=gc())s[len++]=x;s[len]='\0';return true;}
    template<class T,class... Args> inline bool read(T &x,Args&... args){return (read(x)&&read(args...));}
    template<class T>inline void write(T x){static T st[45];int top=0;if(x<0)x=~x+1,pc('-');do{st[top++]=x%10;}while(x/=10);while(top)pc(st[--top]^48);}
    inline void write(char x){pc(x);}
    inline void write(string s){for(register int i=0;s[i];++i) pc(s[i]);}
    inline void write(char *s){int len=strlen(s);for(int i=0;i<len;++i) pc(s[i]);}
    inline void write(const char *s){int len=strlen(s);for(int i=0;i<len;++i) pc(s[i]);}
    template<class T,class... Args> inline void write(T x,Args... args){write(x);write(args...);}
}using namespace IO;
const int N=1e5+10;
int n,m,a[N],add[N],L[N],R[N],pos[N],len,minn=INT_MAX,maxx=-INT_MAX;
vector<int> num[N];
inline void update(int l,int r,int k){
    int p=pos[l],q=pos[r];
    if(p==q){
        vector<int> ().swap(num[p]);
        for(int i=l;i<=r;++i) a[i]+=k;
        for(int i=L[p];i<=R[p];++i) num[p].emplace_back(a[i]);
        stable_sort(num[p].begin(),num[p].end());
        minn=min(minn,num[p].front()+add[p]);
        maxx=max(maxx,num[p].back()+add[p]);
        return;
    }
    vector<int> ().swap(num[p]);
    for(int i=l;i<=R[p];++i) a[i]+=k;
    for(int i=L[p];i<=R[p];++i) num[p].emplace_back(a[i]);
    stable_sort(num[p].begin(),num[p].end());
    minn=min(minn,num[p].front()+add[p]);
    maxx=max(maxx,num[p].back()+add[p]);
    vector<int> ().swap(num[q]);
    for(int i=L[q];i<=r;++i) a[i]+=k;
    for(int i=L[q];i<=R[q];++i) num[q].emplace_back(a[i]);
    stable_sort(num[q].begin(),num[q].end());
    minn=min(minn,num[q].front()+add[q]);
    maxx=max(maxx,num[q].back()+add[q]);
    for(int i=p+1;i<q;++i) add[i]+=k,minn=min(num[i].front()+add[i],minn),maxx=max(num[i].back()+add[i],maxx);
}
inline bool check(int mid,int l,int r,int k,int more){
    if(r<l) return more<k;
    int p=pos[l],q=pos[r],res=more;
    for(int i=p;i<=q;++i){
        if(num[i].back()+add[i]<=mid){res+=num[i].size();continue;}
        if(num[i].front()+add[i]>mid) continue;
        res+=upper_bound(num[i].begin(),num[i].end(),mid-add[i])-num[i].begin();
    }
    return res<k;
}
inline int query(int l,int r,int k){
    if(k>r-l+1) return -1;
    if(k==1){
        int res=INT_MAX,p=pos[l],q=pos[r];
        if(p==q){
            for(int i=l,ad=add[p];i<=r;++i) res=min(res,a[i]+ad);
            return res;
        }
        for(int i=l,ad=add[p];i<=R[p];++i) res=min(res,a[i]+ad);
        for(int i=L[q],ad=add[q];i<=r;++i) res=min(res,a[i]+ad);
        for(int i=p+1;i<q;++i) res=min(res,num[i].front()+add[i]);
        return res;
    }
    else if(k==r-l+1){
        int res=-INT_MAX,p=pos[l],q=pos[r];
        if(p==q){
            for(int i=l,ad=add[p];i<=r;++i) res=max(res,a[i]+ad);
            return res;
        }
        for(int i=l,ad=add[p];i<=R[p];++i) res=max(res,a[i]+ad);
        for(int i=L[q],ad=add[q];i<=r;++i) res=max(res,a[i]+ad);
        for(int i=p+1;i<q;++i) res=max(res,num[i].back()+add[i]);
        return res;
    }
    int left=minn,right=maxx,ans=0;
    vector<int> san;
    int p=pos[l],q=pos[r];
    if(p==q) for(int i=l,ad=add[p];i<=r;++i) san.emplace_back(a[i]+ad);
    else{
        for(int i=l,ad=add[p];i<=R[p];++i) san.emplace_back(a[i]+ad);
        for(int i=L[q],ad=add[q];i<=r;++i) san.emplace_back(a[i]+ad);
    }
    stable_sort(san.begin(),san.end());
    l=R[p]+1,r=L[q]-1;
    while(left<=right){
        int mid=(left+right)>>1;
        int more=upper_bound(san.begin(),san.end(),mid)-san.begin();
        if(check(mid,l,r,k,more)) left=mid+1;
        else ans=mid,right=mid-1;
    }
    return ans;
}
signed main(){
    #ifndef ONLINE_JUDGE
        infile("in.in");outfile("out.out");
    #else
    #endif
    read(n,m);
    for(int i=1;i<=n;++i) read(a[i]);
    len=1000;int siz=n/len;
    for(int i=1;i<=len;++i) L[i]=R[i-1]+1,R[i]=i*siz;
    if(R[len]<n) len++,L[len]=R[len-1]+1,R[len]=n;
    for(int i=1;i<=len;++i){
        for(int j=L[i];j<=R[i];++j){
            num[i].emplace_back(a[j]);
            pos[j]=i;
        }
        stable_sort(num[i].begin(),num[i].end());
        minn=min(minn,num[i].front());
        maxx=max(maxx,num[i].back());
    }
    while(m--){
        int op,l,r,k;read(op,l,r,k);
        if(op==1) write(query(l,r,k),'\n');
        else update(l,r,k);
    }
}

标签:int,pos,mid,2024,read,num,日记,define
From: https://www.cnblogs.com/hzoi-Cu/p/18155736

相关文章

  • 2024-04-24 PHP之CURD
    基本的查询业务逻辑,返回列表数据:data;操作信息:msg;操作状态:status$query="SELECT*fromos_system";</span><spanstyle="color:#800080;">$data</span>=<spanstyle="color:#800080;">$mysqli</span>->query(<......
  • PeLK:101 x 101 的超大卷积网络,同参数量下反超 ViT | CVPR 2024
    最近,有一些大型内核卷积网络的研究,但考虑到卷积的平方复杂度,扩大内核会带来大量的参数,继而引发严重的优化问题。受人类视觉的启发,论文提出了外围卷积,通过参数共享将卷积的复杂性从\(O(K^{2})\)降低到\(O(\mathrm{log}K)\),有效减少90%以上的参数数量并设法将内核尺寸扩大到......
  • 2024/4/23中考一模vp游记
    你说得对,但是这次和月考不一样,这次考试当天我才知道要考试。day1晚上四节自习课考两场试。典中典之第一场语文。考试前打桌足,守门员踢进自家球门\(6\)个。并且连输两把。/ll\(5:50\)开始考试。但是我\(5:49\)进考场,然后找不到座位又回教室看了座位表。幸好一车人迟到所......
  • 【2024-04-23】夫妻默契
    20:00一本书,当未读之前,你会感到书是那么.....但是当我们对书的内容真正有了透彻的了解,抓住了全书的要点,掌握了全书的精神实质以后,就会感到书本变薄了。                                       ......
  • 第二届先进传感与智能系统国际会议(ICASIS 2024)
    第二届先进传感与智能系统国际会议(ICASIS2024)日期:2024年6月22-23日地点:中国昆明会议亮点:前沿议题:聚焦先进传感技术、智能传感、物联网、大数据分析与人工智能等核心话题。全球交流:与全球顶级学者、行业领袖面对面,共同探讨行业趋势与未来挑战。有中国工程院外籍院士Prof.......
  • MPV PLAYER播放器 快捷键  2024版本
    MPVPLAYER播放器快捷键 2024版本#MBTN_LEFT忽略#什么都不做#MBTN_LEFT_DBL循环全屏#切换全屏#MBTN_RIGHT循环暂停#切换暂停/播放模式#MBTN_BACK播放列表前一个#跳到前一个文件#MBTN_FORWARD播放列表next#跳到下一个文件#鼠标滚轮、触摸板或其他具有轴的输入设备#如果输......
  • 2024-04-23---简单题---有效的字母异位词(哈希表)
    题目:思路:排序:复杂度较高。两个字符串进行排序,然后开始比较两个字符串是否相等哈希表:主要是一个hashmap记录第一个字符串所有字符出现的次数,然后遍历第二个字符串没找到一个就将次数减一。看最后所有的值是否为0.时间复杂度选第二种,简单题罢了。代码:排序classSolution......
  • 【专题】2023-2024年二手车市场消费需求洞察报告合集PDF分享(附原数据表)
    原文链接:https://tecdat.cn/?p=36021原文出处:拓端数据部落公众号2023年,乘用车二手车市场展现出了蓬勃的发展态势,交易量攀升至1478万辆,同比增长高达15%,创下了近五年的新纪录。在这一繁荣景象的背后,以旧换新政策的助力功不可没,它极大地激发了消费者的换购热情,为二手车市场注入了......
  • 20240423打卡
    第九周第一天第二天第三天第四天第五天第六天第七天所花时间9h4h代码量(行)727110博客量(篇)11知识点了解完成了地铁查询系统的App优化了地铁查询代码并通过验收......
  • 2024年4月23日
    今天我主要将结组作业的登录页面的后端逻辑写了一下代码如下:<script>exportdefault{name:"loginOne",data(){return{form:{id:'',password:''}}},methods:{register(){......