头像

Fulcrum




离线:2019-11-15 09:00


最近来访(1)
用户头像
sandss


Fulcrum
2019-11-15 05:41
#include<bits/stdc++.h>
using namespace std;
int d,n;
int p[170][170];
int sum=1,ans,num;
int main()
{
    cin>>d>>n;
    for(int i=1;i<=n;i++)
    {
        int x,y,K;
        cin>>x>>y>>K;
        p[x+20][y+20]=K;
    }
    for(int i=20;i<=148;i++)
    {
        for(int j=20;j<=148;j++)
        {
            for(int k=i-d;k<=i+d;k++)
                for(int l=j-d;l<=j+d;l++)
                    num+=p[k][l];
            if(ans==num)
                sum++;
            if(ans<num)
                sum=1;
            ans=max(ans,num);
            num=0;
        }
    }
    cout<<sum<<" "<<ans;
    return 0;
}



活动打卡代码 AcWing 517. 信息传递

Fulcrum
2019-11-15 02:08
#include<bits/stdc++.h>
using namespace std;
int n,ans=999999999;
int f[200005];
int find(int x,int &cnt)//查,记录环长 
{
    cnt++;
    if(f[x]==x)
        return x;
    return find(f[x],cnt);
}
int main()
{
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        f[i]=i;//初始 
    }
    for(int i=1;i<=n;i++)
    {
        int cnt=0,t;
        cin>>t;
        if(find(t,cnt)==i)//并 
        {
            ans=min(ans,cnt);//维护最小环 
        }
        else
            f[i]=t;
    }
    cout<<ans;
    return 0;
}



活动打卡代码 AcWing 461. 金币

Fulcrum
2019-11-14 05:36
#include<bits/stdc++.h>
using namespace std;
int n,ans,k,i; 
int main()
{
    cin>>k;
    for(int i=1;i<=k;)
    {
        for(int j=1;j<=n && i<=k;j++)
            ans+=n,i++;
        n++;
    }
    cout<<ans;
    return 0;
}



活动打卡代码 AcWing 473. 标题统计

Fulcrum
2019-11-14 01:50
#include<bits/stdc++.h>
using namespace std;
string a;
int ans;
int main()
{
    getline(cin,a);
    for(int i=0;i<a.size();i++)
        if(a[i]!=' ' && a[i]!='\n')
            ans++;
    cout<<ans;
    return 0;
}


活动打卡代码 AcWing 518. 斗地主

Fulcrum
2019-11-13 08:54
#include<bits/stdc++.h>
using namespace std;
#define maxn 25
int T,n,x,y,ans;
int a[maxn],num[maxn];
int chupai()
{
    memset(num,0,sizeof(num));
    for(int i=0;i<=13;i++)
        num[a[i]]++;
    int tot=0;
    if(n<=2)
        return num[1]+num[2];
    while(num[4] && num[2]>1)
    {
        num[4]--;
        num[2]-=2;
        tot++;
    }
    while(num[4] && num[1]>1)
    {
        num[4]--;
        num[1]-=2;
        tot++;
    }
    while(num[4] && num[2])
    {
        num[4]--;
        num[2]--;
        tot++;
    }
    while(num[3] && num[2])
    {
        num[3]--;
        num[2]--;
        tot++;
    }
    while(num[3] && num[1])
    {
        num[3]--;
        num[1]--;
        tot++;
    }
    return tot+num[1]+num[2]+num[3]+num[4];
}
void dfs(int step)
{
    if(step>=ans)
        return ;
    int tmp=chupai();
    if(tmp+step<ans)
        ans=tmp+step;
    for(int i=2;i<=13;i++)
    {
        int J=i;
        while(a[J]>=3)
            J++;
        if(J-i>=2)
        {
            for(int j=i+1;j<=J-1;j++)
            {
                for(int k=i;k<=j;k++)
                    a[k]-=3;
                dfs(step+1);
                for(int k=i;k<=j;k++)
                    a[k]+=3;
            }
        }
    }
    for(int i=2;i<=13;i++)
    {
        int J=i;
        while(a[J]>=2)
            J++;
        if(J-i>=3)
        {
            for(int j=i+2;j<=J-1;j++)
            {
                for(int k=i;k<=j;k++)
                    a[k]-=2;
                dfs(step+1);
                for(int k=i;k<=j;k++)
                    a[k]+=2;
            }
        }
    }
    for(int i=2;i<=13;i++)
    {
        int J=i;
        while(a[J]>=1)
            J++;
        if(J-i>=5)
        {
            for(int j=i+4;j<=J-1;j++)
            {
                for(int k=i;k<=j;k++)
                    a[k]--;
                dfs(step+1);
                for(int k=i;k<=j;k++)
                    a[k]++;
            }
        }
    }
}
int main()
{
    scanf("%d%d",&T,&n);
    while(T--)
    {
        memset(a,0,sizeof(a));
        for(int i=1;i<=n;i++)
        {
            scanf("%d%d",&x,&y);
            if(x==1)
            {
                x=13;
            }
            else
                if(x)
                    x--;
            a[x]++;
        }
        ans=1e9;
        dfs(0);
        printf("%d\n",ans);
    }
    return 0;
}


活动打卡代码 AcWing 519. 跳石头

Fulcrum
2019-11-13 08:51
#include<bits/stdc++.h>
using namespace std;
int L,n,m;
int l,r,mid,ans;
int d[50005];
bool check(int x)
{
    int cnt=0,lft=0;
    for(int i=1;i<=n+1;i++)
    {
        if(d[i]-lft<x)
            cnt++;
        else
            lft=d[i];
    }
    return cnt<=m;
}
int main()
{
    cin>>L>>n>>m;
    d[n+1]=L;
    for(int i=1;i<=n;i++)
    {
        cin>>d[i];
    }
    l=1,r=L;
    while(l<=r)
    {
        mid=(l+r)/2;
        if(check(mid))
            l=mid+1,ans=mid;
        else
            r=mid-1;
    }
    cout<<ans;
    return 0;
}



活动打卡代码 AcWing 532. 货币系统

Fulcrum
2019-11-13 08:34
#include<bits/stdc++.h>
using namespace std;
int V,N;
int w[6006],c[6006],p[6006],f[6006];
int main()
{
    cin>>V>>N;
    for(int i=1;i<=N;i++)
    {
        cin>>w[i]>>c[i]>>p[i];
    }
    for(int i=1;i<=N;i++)
    {
        if(p[i]==0)
        {
            for(int j=w[i];j<=V;j++)
                f[j]=max(f[j],f[j-w[i]]+c[i]);
        }
        else
        {
            for(int k=1;k<=p[i];k++)
                for(int j=V;j>=w[i];j--)
                    f[j]=max(f[j],f[j-w[i]]+c[i]);
        }
    }
    cout<<f[V];
    return 0;
}


活动打卡代码 AcWing 203. 同余方程

Fulcrum
2019-11-13 08:20
#include<bits/stdc++.h>
using namespace std;
#define ll long long
ll a,b,c,x,y,z;
int gcd(ll a,ll b,ll &x,ll &y)
{
    if(b==0)
    {
        x=1,y=0;
        return a;
    }
    c=gcd(b,a%b,x,y);
    z=x,x=y,y=z-y*(a/b);
    return c;
}
int main()
{
    cin>>a>>b;
    gcd(a,b,x,y);
    cout<<(x%b+b)%b;
    return 0;
}



活动打卡代码 AcWing 211. 计算系数

Fulcrum
2019-11-13 08:19
#include<bits/stdc++.h>
using namespace std;
long long ans,a,b,k,n,m,f[1010][1010];
#define Mod 10007
int main()
{
    cin>>a>>b>>k>>n>>m;
    for(int i=0;i<=k;i++)
    {
        f[i][0]=1;
        for(int j=1;j<=i;j++)
        {
            f[i][j]=(f[i-1][j-1]+f[i-1][j])%Mod;
        }
    }
    ans=f[k][m];
    for(int i=1;i<=n;i++)
    {
        ans=(ans*a)%Mod;
    }
    for(int i=1;i<=m;i++)
    {
        ans=(ans*b)%Mod;
    }
    cout<<ans;
    return 0;
}



活动打卡代码 AcWing 528. 奶酪

Fulcrum
2019-11-13 08:16
#include<bits/stdc++.h>
using namespace std;
#define ll long long
ll T,n,h,r;
ll x[100005],y[100005],z[100005];
int f[1005],f1[100005],f2[100005];
ll dis(ll x,ll y,ll z,ll x1,ll y1,ll z1)
{
    return (x-x1)*(x-x1)+(y-y1)*(y-y1)+(z-z1)*(z-z1);
}
int find(int x)
{
    if(x!=f[x])
        f[x]=find(f[x]);
    return f[x];
}
int main()
{
    cin>>T;
    while(T--)
    {
        int tot1=0,tot2=0;
        cin>>n>>h>>r;
        for(int i=1;i<=n;i++)
            f[i]=i;
        for(int i=1;i<=n;i++)
        {
            cin>>x[i]>>y[i]>>z[i];
            if(z[i]+r>=h)
            {
                tot1++;
                f1[tot1]=i;
            }
            if(z[i]-r<=0)
            {
                tot2++;
                f2[tot2]=i;
            }
            for(int j=1;j<=i;j++)
            {
                if((x[i]-x[j])*(x[i]-x[j])+(y[i]-y[j])*(y[i]-y[j])>4*r*r)
                    continue;
                if(dis(x[i],y[i],z[i],x[j],y[j],z[j])<=4*r*r)
                {
                    int a1=find(i),a2=find(j);
                    if(a1!=a2)//
                        f[a1]=a2;//
                }
            }
        }
        int s=0;
        for(int i=1;i<=tot1;i++)
        {
            for(int j=1;j<=tot2;j++)
            {
                if(find(f1[i])==find(f2[j]))
                {
                    s=1;
                    break;
                }
            }
            if(s==1)
                break;
        }
        if(s==1)
            cout<<"Yes";
        else
            cout<<"No";
        cout<<endl;
    }
    return 0;
}