洛谷 簡單的模擬1

P1003 鋪地毯

#include <bits/stdc++.h>
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 <bits/stdc++.h>
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 <bits/stdc++.h>
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;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章