头像

忘了爱




离线:8天前


最近来访(11)
用户头像
AcWing2AK
用户头像
wfjfjx
用户头像
X-7D1C11010
用户头像
渡鸦2007
用户头像
退站.AC_Boy
用户头像
@.com_9
用户头像
tratser

新鲜事 原文

boy们,吐槽区真的逆大天


活动打卡代码 AcWing 107. 超快速排序

宣室求贤访逐臣
贾生才调更无伦
可怜夜半虚前席
不问苍生问鬼神

#include<iostream>
#define ll long long
using namespace std;
const int N=5e5+10;
ll n,m,a[N],b[N],cnt;
void merge(ll *a,ll l,ll r)
{
    if(r-l<1)return ;
    ll mid=(l+r)>>1;
    merge(a,l,mid);
    merge(a,mid+1,r);
    ll i=l,j=mid+1;
    for(int k=l;k<=r;k++)
    {
        if(j>r||i<=mid&&a[i]<=a[j])b[k]=a[i++];
        else b[k]=a[j++],cnt+=mid-i+1;
    }
    for(int k=l;k<=r;k++)a[k]=b[k];
}
int main()
{
    while(cin>>n&&n)
    {
        for(int i=1;i<=n;i++)
        {
            cin>>a[i];

        }
        cnt=0;
        merge(a,1,n);
        cout<<cnt<<endl;
    }
}


新鲜事 原文

快读,真好使! int read() { int s=0,w=1; char ch=getchar(); while(ch<'0'||ch>'9') { if(ch=='-')w=-1; ch=getchar(); } while(ch>='0'&&ch<='9') { s=s*10+ch-'0'; ch=getchar(); } return s*w; }


活动打卡代码 AcWing 106. 动态中位数

#include<iostream>
#include<queue>
#include<cstdio>
#define ll long long
using namespace std;
const int N=5e5+10;
ll a[N],p,m,n,mid[N];
int read()
{
    int s=0,w=1;
    char ch=getchar();
    while(ch<'0'||ch>'9')
    {
        if(ch=='-')w=-1;
        ch=getchar();
    }
    while(ch>='0'&&ch<='9')
    {
        s=s*10+ch-'0';
        ch=getchar();
    }
    return s*w;
}
int main()
{
    p=read();
    while(p--)
    {
        n=read(),m=read();
        ll sum=0,cnt=0;
        priority_queue<int,vector<int>,greater<int> > qmn;
        priority_queue<int> qmx;
        cout<<n<<" "<<((m+1)>>1)<<endl;
        for(int i=0;i<m;i++)
        {
            a[i]=read();
            if(qmx.empty()||a[i]<=qmx.top())qmx.push(a[i]);
            else qmn.push(a[i]);
            if(qmx.size()>qmn.size()+1)qmn.push(qmx.top()),qmx.pop();
            if(qmn.size()>qmx.size())qmx.push(qmn.top()),qmn.pop();
            if(i%2==0)
            {
                cout<<qmx.top()<<" ";
                if(++cnt%10==0)cout<<endl;
            }
        }
        if(cnt%10)cout<<endl;
    }
}


活动打卡代码 AcWing 105. 七夕祭

不知道为什么
我变得很主动
若爱上一个人什么都会值得去做
我想大声宣布
对你依依不舍
连隔壁邻居都知道我现在的感受

//Author:忘了爱 
#include<iostream>
#include<algorithm>
#include<cmath> 
#include<cstring>
#define ll long long
using namespace std;
const int N=1e5+10;
ll n,m,t,a[N],b[N],c[N];
ll get(ll *a,ll n)
{
    ll avg=0;
    for(ll i=1;i<=n;i++)avg+=a[i];
    avg/=n;
    for(ll i=1;i<=n;i++)a[i]-=avg;
    c[1]=0;
    for(ll i=2;i<=n;i++)c[i]=c[i-1]+a[i];
    sort(c+1,c+n+1);
    ll mid=c[n/2+1];
    ll ans=0;
    for(ll i=1;i<=n;i++)ans=ans+abs(c[i]-mid);
    return ans;
}
int main()
{
    cin>>n>>m>>t;
    for(ll i=1;i<=t;i++)
    {
        ll x,y;
        cin>>x>>y;
        a[x]++,b[y]++;
    }
    ll row=t%n;
    ll column=t%m;
    if(row==0&&column!=0)cout<<"row "<<get(a,n);
    if(row!=0&&column==0)cout<<"column "<<get(b,m);
    if(row!=0&&column!=0)cout<<"impossible";
    if(row==0&&column==0)cout<<"both "<<get(a,n)+get(b,m);
}


新鲜事 原文

只愿涤荡四方,护得一世之隅


活动打卡代码 AcWing 114. 国王游戏

deep dark fantasy
♂ ♂ ♂

#include<iostream>
#include<algorithm>
#include<cstring>
#define ll long long 
using namespace std;
const int N=1e3+10,M=1e4+10;
int cj[M],tmp[M],ans[M];
struct node
{
    ll l,r; 
}a[N];

int read()
{
    int x=0,f=1;
    char c=getchar();
    while(c<'0'||c>'9')
    {
        if(c=='-')f=-1;
        c=getchar();
    }
    while(c>='0'&&c<='9')
    {
        x=x*10+c-'0';
        c=getchar();
    }
    return x*f;
}

bool cmp(node x,node y)
{
    return x.l*x.r<y.l*y.r;
}

void copy(int *x,int *y)
{
    for(int i=0;i<M;i++)x[i]=y[i];
}
bool more(int *x,int *y)
{
    for(int i=M-1;i>=0;i--)
    {
        if(x[i]>y[i])return 1;
        if(x[i]<y[i])return 0;
    }
    return 0;
}
void times(int *x,int num )
{
    for(int i=M-2;i>=0;i--)
    {
        x[i]*=num;
    }
    for(int i=0;i<M-1;i++)
    {
        x[i+1]+=(x[i]/10);
        x[i]%=10;
    }
}
void div(int *x,int *y,int num)
{
    memset(y,0,sizeof(y));
    int j=0;
    for(int i=M-1;i>=0;i--)
    {
        j=j*10+x[i];
        y[i]=j/num;
        j%=num;
    }
}
void print(int *x)
{
    bool flag=0;
    for(int i=M-1;i>=0;i--)
    {
        if(!flag)
        {
            if(x[i])flag=1;
            else continue;
        }
        printf("%d",x[i]);
    }
}
int main()
{
    int n=read();
    for(int i=0;i<=n;i++)a[i].l=read(),a[i].r=read();
    sort(a+1,a+n+1,cmp);
    cj[0]=1;
    for(int i=0;i<=n;i++)
    {
        div(cj,tmp,a[i].r);
        if(more(tmp,ans))copy(ans,tmp);
        times(cj,a[i].l);
    }
    print(ans);
    return 0;
}



忘了爱
10天前

高中三年
我为什么
为什么不好好读书
没考上和你一样的大学

#include<bits/stdc++.h>
using namespace std;

bitset<40>none, one;
int n,m;
int main()
{
    cin>>n>>m;
    one.set();
    none.reset();
    for(int i=1;i<=n;i++)
    {
        string s;
        int x;
        cin>>s>>x;
        if(s=="AND")
        {
            none &= x;
            one &= x;
        }
        else if(s =="OR")
        {
            none |= x;
            one |= x;
        }
        else 
        {
            none ^= x;
            one ^= x;
        }
    }
    int ans=0;
    for(int i=30;i>=0;i--)
    {
        if(none[i]==1)ans+=(1<<i);
        if(one[i]==1&&m>=(1<<i)&&ans+(1<<i)<=m)ans+=(1<<i);
    }
    cout<<ans<<endl;
}


活动打卡代码 AcWing 104. 货仓选址

忘了爱
10天前

愿意用一支黑色的铅笔
画一出沉默舞台剧
灯光再亮也抱住你
愿意在角落唱沙哑的歌
再大声也都是为你
请用心听不要说话
@焦哥 不要说话

#include<iostream>
#include<algorithm>
using namespace std;
const int N=1e5+10;
int main()
{
    int n,ans=0;
    cin>>n;
    int a[N];
    for(int i=1;i<=n;i++)cin>>a[i];
    sort(a+1,a+n+1);
    if(n&1)
    {
        int mid=(n+1)>>1;
        for(int i=1;i<=n;i++)
        {
            ans+=abs(a[i]-a[mid]);
        }
    }
    else 
    {
        int mid=n>>1;
        for(int i=1;i<=n;i++)
        {
            ans+=abs(a[i]-a[mid]);
        }
    }
    cout<<ans;
}


活动打卡代码 AcWing 103. 电影

忘了爱
10天前

穿梭时间的画面的钟
从反方向开始移动
回到当初爱你的时空
定格内容不忠

所有回忆对着我进攻
我的伤口被你拆封
誓言太沉重泪被操纵
脸上汹涌失控

#include<iostream>
#include<algorithm>
using namespace std;
const int N=2e5+10;
int lan[3*N],uni[3*N],ans[3*N],a[N],b[N],c[N],n,m,k=0,cnt=0;
int find(int x)
{
    return lower_bound(uni+1,uni+cnt+1,x)-uni;
}
int main()
{
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>a[i];
        lan[++k]=a[i];
    }
    cin>>m;
    for(int i=1;i<=m;i++)
    {
        cin>>b[i];
        lan[++k]=b[i];
    }
    for(int i=1;i<=m;i++)
    {
        cin>>c[i];
        lan[++k]=c[i];
    }
    sort(lan+1,lan+k+1);
    for(int i=1;i<=k;i++)
    {
        if(i==1||lan[i]!=lan[i-1])
        {
            uni[++cnt]=lan[i];
        }
    }
    for(int i=1;i<=n;i++)ans[find(a[i])]++;
    int final_ans=0,ans1=0,ans2=0;
    for(int i=1;i<=m;i++)
    {
        int anx=ans[find(b[i])],any=ans[find(c[i])];
        if(anx>ans1||(anx==ans1&&any>ans2))
        {
            final_ans=i,ans1=anx,ans2=any;
        }
    }
    if(final_ans==0)cout<<"1";
    else cout<<final_ans;
}