问题标题: 酷町堂:酷町堂1382 记事本怎么做?(71)

0
1
已解决
李牧之
李牧之
新手光能
新手光能
#include<bits/stdc++.h>
using namespace std;
int main(){
    int m,n,a[500],x,j=0,count=0,flag;
    cin>>m>>n;
    for(int i=1;i<=n;i++){
        cin>>x;
        flag=0;
        for(int k=1;k<=m;k++){
            if (a[k]==x) {
                flag=1;
                break;
            }
        }
        if (flag==0){
            if (j<m){
                j++;
                a[j]=x;
            }
            else {
                j=1;
                a[j]=x;
            }
            count++;
        }
    }
    cout<<count;
    return 0;
} 

大佬教我!!!

http://judge.codingtang.com/problem/1382/


1
已采纳
陆麟瑞
陆麟瑞
资深天翼
资深天翼

这道题可用队列做,但我用的是一个数组,来模拟队列。

for(int i=1; i<=n; i++)
    {
        if(c[a[i]]==0)
        {
            ans++;
            if(n1==m)
            {
                c[b[1]]=0;
                for(int j=1; j<n1; j++)
                b[j]=b[j+1];
                b[n1]=a[i];
                c[a[i]]=1;
            }
            else
            {
                c[a[i]]=1;
                b[++n1]=a[i];
            }
        }
    }
    输出的是ans
2
0
李汉魁
李汉魁
中级光能
中级光能

你把万能头文件换掉,不然编译可能超时!

0
0
王子凡
王子凡
高级光能
高级光能
for (i=1;i<=n;i++)
    {
        flag=0;
        for (j=1;j<=m;j++)//如果笔记里已经有该字符flag=1
            if (a[i]==b[j]) flag=1;
        if (flag==0)
        {
            s++;//需查字典的次数+1
            if (k<m)
                b[++k]=a[i];//记录该字符
            else
                b[++k2]=a[i];//清空原来的,记录新的字符
            if (k2==m) //再次从第1页开始替代旧的字符
                k2=0;
        }
    }

核心代码

 

0
张睿杰
张睿杰
初级天翼
初级天翼
定义jsb[101],dc[1001];
int s(int ddz,int m);
int main()
{
    memset(jsb,-1,sizeof(jsb));
    memset(dc,-1,sizeof(dc));
    定义n,m,j=0,k=0,f;
    输入m,n
    for(int i=0;i<=n-1;i++) cin>>dc[i];
    for(int i=0;i<=n-1;i++)
    {
        f=s(dc[i],m);
        if(f==0)
        {
            jsb[k%m]=dc[i];
            k++;
            j++;
        }
    }
    输出j
}
int s(int ddz,int m)
{
    for(int i=0;i<=m-1;i++)
    {
        if(ddz==jsb[i]) return 1;
//      else return 0;
        }
    return 0;
}

 

0
我要回答