头像

非凡超越


访客:440

离线:5个月前


活动打卡代码 AcWing 413. 乒乓球

非凡超越
7个月前
#include<bits/stdc++.h>
using namespace std;
int n=1;
char s[100005];
void print(int k)
{
    int x=0,y=0;
    for(int i=1;i<=n;i++)
    {
        if(s[i]=='W')x++;
        else y++;
        if(x-y>=2 && x>=k || y-x>=2 && y>=k)cout<<x<<":"<<y<<endl,x=y=0;
    }
    cout<<x<<":"<<y<<endl;
}
int main()
{
    while(cin>>s[n]&&s[n]!='E')if(s[n]=='W' || s[n]=='L')n++;
    n--;
    print(11),cout<<endl,print(21);
    return 0;
}


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

非凡超越
9个月前
#include <bits/stdc++.h>
#define fir(i,a,b) for(i=a;i<=b;i++)
using namespace std;
long long n,s,m,x,zhong,p=0;
priority_queue <int> q1;
priority_queue <int,vector<int>,greater<int> >q2;
int main()
{
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>s>>m;
        cout<<s<<" "<<m/2+1<<endl;
        zhong=1e9;p=0;
        q1=priority_queue<int>();
        q2=priority_queue <int,vector<int>,greater<int> >();
        for(int j=1;j<=m;j++)
        {
            cin>>x;
            if(x<=zhong) q1.push(x);
            else q2.push(x);
            int sum=j/2+1;
            while(q1.size()>sum)
            {
                int y=q1.top();
                q1.pop();
                q2.push(y);
            }
            while(q2.size()>=sum)
            {
                int y=q2.top();
                q1.push(y);
                q2.pop();
            }
            //cout<<x<<" "<<q1.top()<<endl;
            zhong=q1.top();
            if(j%2==1) cout<<q1.top()<<" ",p++;
            if(p==10) p=0,cout<<endl;
        }
        if(p!=10) cout<<endl;
    }
    return 0;
}


活动打卡代码 AcWing 148. 合并果子

非凡超越
9个月前
#include <iostream>
#include <cmath>
#include <cstring>
#include <cstdio>
#include <algorithm>
using namespace std;
long long n,ans=1e9;
long long a[1000];
int cz(int s,long long x,long long y)
{
    if(s==n+1)
    {
        ans=min(ans,abs(x-y));
        return 0;
    }
    cz(s+1,x+a[s],y);
    cz(s+1,x,y+a[s]);
    return 0;
}
int main()
{
    cin>>n;
    for(int i=1;i<=n;i++) cin>>a[i];
    cz(1,0,0);
    cout<<ans<<endl;
    return 0;
}


活动打卡代码 AcWing 132. 小组队列

非凡超越
9个月前
#include <bits/stdc++.h>
using namespace std;
long long n,m,x,t;
long long a[5000],c[1000100];
queue <int> p,q[1100];
char s[100];
int main()
{
    while(cin>>n&&n)
    {
        for(int i=1;i<=n;i++) q[i]=queue<int>();
        p=queue<int>();
        for(int i=1;i<=n;i++)
        {
            cin>>m;
            for(int j=1;j<=m;j++)
            {
                cin>>a[i];
                c[a[i]]=i;
            }
        }
        printf("Scenario #%d\n",++t);
        while(cin>>s&&s[0]!='S')
        {
            if(s[0]=='E')
            {
                 cin>>x;
                 if(q[c[x]].empty()!=0) p.push(c[x]);
                 q[c[x]].push(x);
            }
            else
            {
                int k=p.front();
                cout<<q[k].front()<<endl;
                q[k].pop();
                if(q[k].empty()!=0) p.pop();
            }
        }
        cout<<endl;
    }
    return 0;
}


活动打卡代码 AcWing 136. 邻值查找

非凡超越
9个月前
#include<bits/stdc++.h> 
using namespace std; 
#define fir(i,a,b) for(int i=a;i<=b;i++) 
const int N=1e5+10; 
struct node 
{ int x,pos,l,r; 
friend bool operator <(node a,node b) { return a.x<b.x; } 
}a[N]; 
int b[N],ans[N],pos[N],n; 
int main() 
{ ios::sync_with_stdio(false); 
cin>>n; 
fir(i,1,n) 
{ cin>>a[i].x; 
a[i].pos=i; 
} 
sort(a+1,a+n+1); 
fir(i,1,n) 
{ b[a[i].pos]=i; 
a[i].l=i-1; 
a[i].r=i+1; 
} 
a[n].r=0; 
for(int i=n;i>1;i--) 
{ int t=b[i]; 
if(a[t].l && a[t].r) 
{ ans[i]=min(a[t].x-a[a[t].l].x,a[a[t].r].x-a[t].x); 
pos[i]=ans[i]==a[t].x-a[a[t].l].x ? a[a[t].l].pos:a[a[t].r].pos; 
a[a[t].r].l=a[t].l,a[a[t].l].r=a[t].r; 
} 
else if(!a[t].l) 
{ ans[i]=a[a[t].r].x-a[t].x; 
pos[i]=a[a[t].r].pos;
 a[a[t].r].l=0; 
 } 
else 
{ ans[i]=a[t].x-a[a[t].l].x;
 pos[i]=a[a[t].l].pos; 
 a[a[t].l].r=0; 
 } 
} 
for(int i=2;i<=n;++i) 
printf("%d %d\n",ans[i],pos[i]); 
return 0; 
}


活动打卡代码 AcWing 273. 分级

非凡超越
9个月前
#include <bits/stdc++.h>
using namespace std;
int n,a; 
long long ans,fan; 
priority_queue <int> q;
priority_queue <int,vector <int>,greater <int> > p;
int main()
{     
    scanf("%d",&n);
    while(n--)
    { 
        scanf("%d",&a); 
        q.push(a);p.push(a);
        if(a<q.top())
        {    
            ans+=q.top()-a; 
            q.pop(); 
            q.push(a);
        }
        if(a>p.top())
        {
            fan+=a-p.top();
            p.pop();
            p.push(a);
        }
    }
    ans=min(ans,fan);
    printf("%lld",ans); 
    return 0;
} 


活动打卡代码 AcWing 273. 分级

非凡超越
9个月前
#include <bits/stdc++.h>
using namespace std;
int n,a; 
long long ans,fan; 
priority_queue <int> q;
priority_queue <int,vector <int>,greater <int> > p;
int main()
{     
    scanf("%d",&n);
    while(n--)
    { 
        scanf("%d",&a); 
        q.push(a);p.push(a);
        if(a<q.top())
        {    
            ans+=q.top()-a; 
            q.pop(); 
            q.push(a);
        }
        if(a>p.top())
        {
            fan+=a-p.top();
            p.pop();
            p.push(a);
        }
    }
    ans=min(ans,fan);
    printf("%lld",ans); 
    return 0;
} 



非凡超越
9个月前
#include <bits/stdc++.h>
using namespace std;
long long n,val,ans=-1e9;
long long a[5000],b[5000],f[3001][3001];
int main()
{
    cin>>n;
    for(int i=1;i<=n;i++) cin>>a[i];
    for(int i=1;i<=n;i++) cin>>b[i];
    a[0]=b[0]=-1e9;
    for(int i=1;i<=n;i++)
    {
        val=0;
        if(b[0]<a[0]) val=f[i-1][0];
        for(int j=1;j<=n;j++)
        {
            f[i][j]=(a[i]==b[j])?val+1:f[i-1][j];
            if(b[j]<a[i]) val=max(val,f[i-1][j]);
        }
    }
    for(int i=1;i<=n;i++) ans=max(ans,f[n][i]);
    cout<<ans<<endl;
    return 0;
}



非凡超越
9个月前
#include <bits/stdc++.h>
using namespace std;
long long n;
int a[10000];
long long f[31][31][31][31][31];
int main()
{
    while(cin>>n&&n)
    {
        memset(a,0,sizeof(a));
        for(int i=1;i<=n;i++) cin>>a[i];
        f[0][0][0][0][0]=1;
        for(int i1=1;i1<=a[1];++i1)
            for(int i2=0;i2<=min(a[2],i2);++i2)
                for(int i3=0;i3<=min(a[3],i3);++i3)
                    for(int i4=0;i4<=min(a[4],i4);++i4)
                        for(int i5=0;i5<=min(a[5],i5);++i5)
                        {
                            f[i1][i2][i3][i4][i5]=0;
                            if(i1>i2) f[i1][i2][i3][i4][i5]+=f[i1-1][i2][i3][i4][i5];
                            if(i2>i3) f[i1][i2][i3][i4][i5]+=f[i1][i2-1][i3][i4][i5];
                            if(i3>i4) f[i1][i2][i3][i4][i5]+=f[i1][i2][i3-1][i4][i5];
                            if(i4>i5) f[i1][i2][i3][i4][i5]+=f[i1][i2][i3][i4-1][i5];
                            if(i5>=1) f[i1][i2][i3][i4][i5]+=f[i1][i2][i3][i4][i5-1];
                        }
        cout<<f[a[1]][a[2]][a[3]][a[4]][a[5]]<<endl;
    }
    return 0;
}


活动打卡代码 AcWing 247. 亚特兰蒂斯

非凡超越
9个月前
#include <bits/stdc++.h>
using namespace std;
int n,m,tot,s=0;
double a,b,c,d,da,ans;
double e[400005],h[400005];
struct jgt
{
    double x,y,yy,p;
}f[400005];
struct jgt1
{
    int l,r,cut;
    double len;
}t[400005];
void discrete()
{
    sort(e+1,e+1+n+n);
    for(int i=1;i<=2*n;i++) if(i==1||e[i]!=e[i-1]) h[++m]=e[i];
}
int query(double w)
{
    return lower_bound(h+1,h+1+m,w)-h;
}
int px(const jgt &o,const jgt &u)
{
    return o.x<u.x;
}
int build(int p,int l,int r)
{
    t[p].l=l,t[p].r=r,t[p].len=0,t[p].cut=0;
    if(l==r) return 0;
    int mid=(l+r)/2;
    build(p*2,l,mid);
    build(p*2+1,mid+1,r);
}
void getlen(int p)
{
    if(t[p].cut) t[p].len=h[t[p].r+1]-h[t[p].l];
    else t[p].len=t[p*2].len+t[p*2+1].len;
}
int change(int p,int l,int r,int v)
{
    if(l==t[p].l&&r==t[p].r)
    {
        t[p].cut+=v;
        getlen(p);
        return 0;
    }
    int mid=(t[p].l+t[p].r)/2;
    if(r<=mid) change(p*2,l,r,v);
    else if(l>mid) change(p*2+1,l,r,v);
    else
    {
        change(p*2,l,mid,v);
        change(p*2+1,mid+1,r,v);
    }
    getlen(p);
}
int main()
{
    while(scanf("%lld",&n)!=EOF)
    {
        if(n==0) break;
        ans=0,da=0;
        tot=0;
        //memset(e,0,sizeof(e));memset(f,0,sizeof(f));memset(h,0,sizeof(h));memset(t,0,sizeof(t));
        printf("Test case #%d\n",(++s));
        for(int i=1;i<=n;i++)
        {
            scanf("%lf%lf%lf%lf",&a,&b,&c,&d);
            da=max(da,max(b,d));
            e[i]=b,e[i+n]=d;
            f[++tot].x=a,f[tot].y=b,f[tot].yy=d,f[tot].p=1;
            f[++tot].x=c,f[tot].y=b,f[tot].yy=d,f[tot].p=-1;
        }
        discrete();
        sort(f+1,f+1+n*2,px);
        build(1,0,query(da));
        for(int i=1;i<n*2;i++)
        {
            change(1,query(f[i].y),query(f[i].yy)-1,f[i].p);
            ans+=t[1].len*(f[i+1].x-f[i].x);
        }
        printf("Total explored area: %.2lf\n\n",ans);
    }
    return 0;
}