zoukankan      html  css  js  c++  java
  • 机器翻译


    #include<bits/stdc++.h> using namespace std; int x,y,q,l,s,ans,b[100001],a[100001]; int main(){ cin>>x>>y; for(int i=1;i<=y;i++) { cin>>q; if(a[q]==0) { ans++; b[ans]=q; a[q]=1; if(ans>x) { l++; a[b[l]]=0; } } } cout<<ans; return 0; }
    考试时:这道题很常规,常见的思路是将他们读入,达到m个就从第一个开始替换反正是按先后读入的。
    考试后:然后这道题我只得了90分,具体原因如下:
    一,我需要在它的长度大于m时再考虑替换,如果我不分情况,直接for循环1到m的话很简单,他会把本来是空位算作0,这时候你就无法读入0。换言之,只要是前期读入了0的数据,我都会出错,所以得90分只是我运气好。
    然后在洛谷上搜才发现这道题我做过的,方法完全不一样,就是记录每一个长度下最后输入的一个值。将每个出现过的数做标记。当长度大于m时,再从长度为1开始将标记重新清零。
    这道题很简单,但是一定要细心。
     
  • 相关阅读:
    vue与laravel
    php artisan 命令
    HTTP 状态码
    PhpStorm提高效率的使用方法及设置
    好RESTful API的设计原则
    laravel 入门基础之安装
    c++ sizeof(字符数组)
    new delete/delete[] 测试
    linux g++ 查找动态链接库
    linux下定时器耗时研究
  • 原文地址:https://www.cnblogs.com/xxmxxm/p/10938676.html
Copyright © 2011-2022 走看看