2 条题解

  • 0
    @ 2024-6-14 21:52:06
    #define int long long
    #define elif else if
    #define fin(x) freopen (x, "r", stdin)
    #define fout(x) freopen (x, "w", stdout)
    #define reg(i,x,y) for (register int i = (x); i <= (y); ++i)
    #define Reg(i,x,y) for (register int i = (y); i >= (x); --i)
    using namespace std;
    int m,n,s = 0;
    vector<int> a;
    map<int,bool> ma;
    queue<int> q;
    inline int read (void) {int x = 0,f = 0;char ch = getchar ();while (!isdigit (ch)) {f |= (ch == '-');ch = getchar ();}while (isdigit (ch)) x = (x << 1) + (x << 3) + (ch ^ 48),ch = getchar ();return f ? -x : x;}
    inline string rstr (void) {string s = "";char ch = getchar ();while (ch != '\n' && ch != EOF) {if (ch != ' ') s += ch;ch = getchar ();}return s;}
    inline char rch (void) {char ch = getchar ();while (ch == ' ' || ch == '\n') ch = getchar ();return ch;}
    inline void write (int x = 0) {if (x < 0) putchar ('-'),x = -x;if (x > 9) write (x / 10);putchar (x % 10 | 48);}
    inline void write_ (int x = 0,char ch = ' ') {write (x);putchar (ch);}
    signed main ()
    {
    	m = read (),n = read ();
    	a.push_back (0);
    	reg (i,1,n) a.push_back (read ());
    	int p = 0;
    	reg (i,1,n)
    		if (!ma[a[i]])
    		{
    			if (s < m) ++s,ma[a[i]] = true,++p,q.push (a[i]);
    				else ma[a[i]] = true,ma[q.front ()] = false,q.pop (),++p,q.push (a[i]);
    		}
    	write (p);
    	return 0;
    }
    
    • 0
      @ 2024-3-16 21:20:25
      #include <bits/stdc++.h>
      using namespace std;
      int a[1100],b[1100],k,m,n,t;
      int main() {
          cin>>m>>n;
          for (int i=1;i<=n;i++) {
              cin>>t;
              if (b[t]==1) continue;
              a[++k]=t;
              b[t]=1;
              if (k>m) b[a[k-m]]=0;
          }
          cout<<k;
          return 0;
      }
      
      • 1

      信息

      ID
      298
      时间
      1000ms
      内存
      256MiB
      难度
      2
      标签
      (无)
      递交数
      59
      已通过
      35
      上传者