Menu
0 Comments

【模拟】洛谷 P1540 机器翻译

标题问题安插

小晨的电脑上建立了独身机器翻译软件,他常常用这么地软件来翻译英语脚本。
标题问题描绘

翻译软件的规律不常见的简略。,朴素地从开端到完毕,成二列纵队将每个英文单词用对应的国文牵连来交换。为每个英文单词,软件会先在内存中查找这么地单词的国文牵连,倘若有取消,软件将用它翻译;倘若内存中不注意内存,软件将在字典中在内部贮存器中找到。,搜寻单词的国文牵连因此翻译,把这么地词和翻译放进取消里,用于后续查找和翻译。

万一取消中有M单位,每个单元可以贮存器独身单词和翻译的意思。。每回软件把独身旧词新义放进内存中,倘若涌流内存中贮存器的单词数不超过M-1,软件将旧词新义贮存器到未应用的贮存器单元中。;倘若M字早已贮存器在内存中,软件将把第独身单词贮存器到内存中。,降落合身,贮存器新单词。

万一一篇英语脚本的一定尺寸的为N个单词。赠送的要翻译的脚本,翻译软件需求搜索多少次?,取消中不注意脚本。

出口出口体式

出口体式:

一群落2行出口文献。每个行说得中肯两标号字由独身空白的分。。

第独身行动两个无符号圆整数m和n,代表的取消才能与脚本的以一定间隔排列。

非负圆整数的次要的行动,理由脚本的次,每标号(上胶料不超过1000)代表独身英文单词。脚本说得中肯两个词是同独身词。,当且仅当它们对应的非负圆整数同样的人时。

出口体式:

表现圆整数,需求反省的字典数目标的次数。

出口出口范本

出口范本1:

3 7
1 2 1 5 4 4 1

出口范本1:

5

阐明

每个考查点1s

为10%的datum的复数,有M=1。,N≤5。

100%的datum的复数是0。<=M<=100,0<=N<=1000。

查字典的整个过程列举如下:每行代表独身单词的翻译,结肠前翻译的取消正式的:

空:内存的初始正式的为空。。

1. 1:向上看单词1并把它记在取消中。。

2. 1 2:向上看单词2并把它记在取消中。。

3. 1 2:在内存中查找单词1。

4. 1 2 5:向上看单词5并把它记在取消中。。

5. 2 5 4:查找单词4并传送到贮存器器交换字1。。

6. 2 5 4:在内存中查找单词4。

7. 5 4 1:向上看单词1并把它记在取消中。废弃单词2。

总共反省了5本字典。。

编码

#includeusingnamespacestd;
int a[1005];
int main()
{
    int m,n,head=1,tail=1,sum=0;
    bool order=true;
    cin>>m>>n;
    for(int i=0;i<1005i  )a[i]1;
    for(int i=1;i<=n;i++)
    {
        int x;
        cin>>x;
        for(int j=head;jif(a[j]==x)
            {
                order=false;
                break;
            }
        }
        if(定货单)
        {
            [臀部]=x
            sum++;
            tail++;
            if(tail-head>m)head++;
        }
        order=true;
    }
    cout<return0;
}

发表评论

电子邮件地址不会被公开。 必填项已用*标注