洛谷 简单的模拟1

P1003 铺地毯

#include 
using namespace std;
struct dt
{
    int a,b;
    int g,k;
} z[10050];
int main()
{
    int n;
    cin>>n;
    for(int i=1; i<=n; i++)
        cin>>z[i].a>>z[i].b>>z[i].g>>z[i].k;
    int x,y;
    cin>>x>>y;
    int res=-1;
    for(int i=n; i>0; i--)//倒着便利,先遍历到的就是最大的
    {
        if(z[i].a<=x&&(z[i].a+z[i].g)>=x&&z[i].b<=y&&(z[i].b+z[i].k)>=y)
        {
            res=i;
            break;
        }
    }
    cout<<res;
    return 0;
}

P1067 多项式输出
题不难
分类真的麻烦

#include 
using namespace std;
int main()
{
    int n;
    cin>>n;
    int x[120];
    for(int i=0; i<=n; i++)
        cin>>x[i];
    if(x[0]==1)
        printf("x^%d",n);
    else if(x[0]==-1)
        printf("-x^%d",n);
    else
        printf("%dx^%d",x[0],n);
    for(int i=1; i<n-1; i++)
    {
        if(x[i]==0)
            continue;
        else
        {
            if(x[i]==1)
                printf("+x^%d",n-i);
            else if(x[i]==-1)
                printf("-x^%d",n-i);
            else if(x[i]>0)
                printf("+%dx^%d",x[i],n-i);
            else
                printf("%dx^%d",x[i],n-i);
        }
    }
    if(x[n-1]==0)
        ;
    else if(x[n-1]==1)
        printf("+x");
    else if(x[n-1]==-1)
        printf("-x");
    else if(x[n-1]>0)
        printf("+%dx",x[n-1]);
    else
        printf("%dx",x[n-1]);
    if(x[n]==0)
        ;
    else if(x[n]>0)
        printf("+%d",x[n]);
    else
        printf("%d",x[n]);
    return 0;
}

P1540 机器翻译

#include 
using namespace std;
int x[1200];
int y[1200];
int main()
{
    int n,m;
    cin>>m>>n;//内存m 文章长度n
    int res=0;
    int num;
    int t=0,f=0;
    for(int i=0; i<n; i++)
    {
        cin>>num;
        if(x[num]==0)
        {
            x[num]=1;
            res++;
            y[t]=num;
            t++;
            if(t>m)
            {
                x[y[f]]=0;
                f++;
            }
        }
    }
    cout<<res;
    return 0;
}

你可能感兴趣的:(洛谷,乱七八糟)