5/10

A

已知三角形三点坐标,算外心坐标

#include 
#include 
#include 
#include 
using namespace std;
typedef long long ll;
const int MAX=100001;
const int INF=0x3f3f3f3f;
const int mod=1000000007;
double x[4],y[4];
double a,b;
int main()
{
    for(int i=1;i<=3;i++)
    {
        scanf("%lf%lf",&x[i],&y[i]);
    }
    double k2=(x[1]-x[3])/(y[3]-y[1]);
    double k1=(x[1]-x[2])/(y[2]-y[1]);
    double midy1=(y[1]+y[2])/2;
    double midy2=(y[1]+y[3])/2;
    double midx1=(x[1]+x[2])/2;
    double midx2=(x[1]+x[3])/2;
    double j=(midx1*k1-midx2*k2+midy2-midy1)/(k1-k2);
    printf("%.3f %.3f",j,k1*(j-midx1)+midy1);
   return 0;
}

C

5/10_第1张图片

以为数据范围是到6*10^100次幂,就干了一整晚大数。~ ~ ~ / / / ( ^ v ^ ) \ \ \ ~ ~ ~
其实就是个水题long long(然鹅花了一个小时还没写完。。)

    ll a,b;     
    while(cin>>a>>b)
    {
      
    a=a-1;
    ll num1=a/60*50+min(50*1LL,a%60);
    ll num2=b/60*50+min(50*1LL,b%60);
    cout<

当大数的练习题来写,通过6%的数据,待更

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
using namespace std;
typedef long long ll;
const int MAX=10005;
const int INF=0x3f3f3f3f;
const int mod=1000000007;
struct node
{
    int d[1050];
    int len;
    node()
    {
        memset(d,0,sizeof(d));
        len=0;
    }
};
char str1[1000],str2[1000];
node change(char str[])
{
    node a;
    a.len=strlen(str);
    for(int i=0;i=1&&c.d[c.len-1]==0)
    {
        c.len--;
    }
    return c;
}
node multi(node a,int b)
{
    node c;
    int carry=0;
    for(int i=0;i=0;i--)
    {
        r=r*10+a.d[i];
        if(r=1&&c.d[c.len-1]==0)
    {
        c.len--;
    }
    return c;
}
int getint(node a)
{
    int sum=0;
    for(int i=a.len-1;i>=0;i--)
    {
        sum=sum*10+a.d[i]-'0';
    }
    return sum;
}
void print(node a)
{
    for(int i=a.len-1;i>=0;i--)
    {
        printf("%d",a.d[i]);
    }
}
node dotime(char str[])
{
    node b=change(str);
    node cs=chu(b,60);
    node ys=sub(b,multi(cs,60));
    node d;
    if(getint(ys)>=50)
    {
        //加五十
        d=add(multi(cs,50),change("50"));

    }
    else
    {
        //加余数
        d=add(multi(cs,50),ys);

    }
    return d;
}
int main()
{
     ll a,b;

    while(cin>>a>>b)
    {
    a=a-1;
    ll num1=a/60*50+min(50*1LL,a%60);
    ll num2=b/60*50+min(50*1LL,b%60);
    cout<

F

找规律。

H

5/10_第2张图片

WA了五发,四发"新年快乐!"

J

广搜题。

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
using namespace std;
typedef long long ll;
const int MAX=105;
const int INF=0x3f3f3f3f;
const int mod=1000000007;
struct node
{
    int x,y,z;
    int step;
}S,T,Node;
int n;
char maze[MAX][MAX][MAX];
int book[MAX][MAX][MAX];
int x[6]={0,0,1,-1,0,0};
int y[6]={1,-1,0,0,0,0};
int z[6]={0,0,0,0,1,-1};
bool check(int a,int b,int c)
{
    if(a>n||a<=0||b>n||b<=0||c>n||c<=0)
        return false;
    if(maze[a][b][c]=='*')
        return false;
    if(book[a][b][c]==1)
        return false;
    return true;
}
int BFS()
{
    queueq;
    q.push(S);
    while(!q.empty())
    {
        node top=q.front();
        q.pop();
        if(top.x==n&&top.y==n&&top.z==n)
            return top.step;
        for(int i=0;i<6;i++)
        {
            int newx=top.x+x[i];
            int newy=top.y+y[i];
            int newz=top.z+z[i];
            if(check(newx,newy,newz))//位置有效
            {
                Node.x=newx,Node.y=newy,Node.z=newz;
                Node.step=top.step+1;
                q.push(Node);
                book[newx][newy][newz]=1;
            }
        }
    }
    return -1;
}
int main()
{
    scanf("%d",&n);
    for(int k=1;k<=n;k++)
    {
        for(int i=1;i<=n;i++)
        {
            getchar();
            for(int j=1;j<=n;j++)
            {
                scanf("%c",&maze[i][j][k]);
            }
        }
    }
    S.x=1;
    S.y=1;
    S.z=1;
    S.step=0;
    int numstep=BFS();
    if(numstep==-1)
        printf("-1\n");
    else
        printf("%d\n",numstep+1);
    return 0;
}

你可能感兴趣的:(5/10)