Contest1538

Mancala II

A Rational Sequence

 

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll p,q,a;
int main()
{
    int _,k;
    scanf("%d",&_);
    while (_--)
    {
        scanf("%d %lld/%lld",&k,&q,&p);
        printf("%d ",k);
        if (p==1&q==1)
        {
            printf("1/2
");
            continue;
        }
        if (p==1)
        {
            printf("1/%lld
",q+1);
            continue;
        }
        if (q==1)
        {
            printf("%lld/%lld
",p,p-q);
            continue;
        }
        if (p==2)
        {
            printf("%lld/%lld
",p,q);
            continue;
        }
        if (q<p)
        {
            printf("%lld/%lld
",p,p-q);
            continue;
        }
        a=0;
        a=q/p;
        q=q%p;
//        while (p<=q)
//        {
//            q-=p;
//            a++;
//        }
        printf("%lld/%lld
",p,p-q+a*p);
    }
    return 0;
}

Growing Rectangular Spiral

#include <bits/stdc++.h>
 
using namespace std;
int T;
int main()
{
    cin>>T;
    while(T--)
    {
        int k;
        scanf("%d",&k);
        int a,b;
        scanf("%d %d",&a,&b);
        if(a<b)
        {
            printf("%d 2 ",k);
            printf("%d %d
",a,b);
        }
        else if(b<4)
        {
            printf("%d NO PATH
",k);
        }
        else
        {
            printf("%d 6 1 2 3 ",k);
            printf("%d %d %d
",a-b+5,a+2,a+3);
        }
    }
    return 0;
}

Farey Sums

#include <bits/stdc++.h>
 
using namespace std;
const int N=100100;
typedef long long ll;
int phi[N+10],prime[N],vis[N+10],tot;
void get_euler()
{
    phi[1]=1;
    for (int i=2; i<=N; i++)
    {
        if (!vis[i])
        {
            prime[tot++]=i;
            phi[i]=i-1;
        }
        for (int j=0; j<tot&&1ll*prime[j]*i<=N; j++)
        {
            vis[prime[j]*i]=1;
            if (i%prime[j]==0)
            {
                phi[i*prime[j]]=phi[i]*prime[j];
                break;
            }
            phi[i*prime[j]]=phi[i]*phi[prime[j]];
        }
    }
}
 
int main()
{
    get_euler();
    int _,n,k;
    ll sum;
    scanf("%d",&_);
    while (_--)
    {
        sum=0;
        scanf("%d%d",&k,&n);
        printf("%d ",k);
        for (int i=1;i<=n;i++){
            sum+=phi[i];
        }
        printf("%lld/2
",sum*3-1);
    }
}

The Queen’s Super-circular Patio

#include<bits/stdc++.h>
 
using namespace std;
const double pi=acos(-1);
double r[1000],d,a,b,c,x,A;
int main()
{
    int _,k,n,m;
    scanf("%d",&_);
    while (_--)
    {
        scanf("%d%d%d",&k,&n,&m);
        printf("%d ",k);
        d=pi/n;
        r[1]=1;
        r[2]=sin(d)/(1-sin(d));
        A=r[1]+r[2];
        a=tan(d);
        a=1/(a*a);
        c=A*A-r[2]*r[2];
        b=-2*r[2]-2*A/tan(d);
        r[3]=(-b+sqrt(b*b-4*a*c))/(2*a);
        for (int i=4; i<=m+1; i++)
        {
            r[i]=(r[i-1]*r[i-1])/r[i-2];
        }
        printf("%.3f %.3f
",r[m+1],r[m+1]*2*n+2*pi*r[m+1]);
    }
}
 

 

原文地址:https://www.cnblogs.com/Accpted/p/11347924.html