【NOIP2015模拟11.4】JZOJ8月6日提高组T1 刷题计划

题目



题解

题意

有\(n\)道题,编号为1~\(n\)

给出\(m\)次操作

每次操作有3种类型

1 \(x\) 表示交了\(AC\)的代码在编号为\(x\)的题

2 \(x\)表示交了没有\(AC\)的代码在编号为\(x\)的题

3 表示询问当前做过的题目中从来没有\(AC\)的题,晚交的先输出

对于每个3询问,输出前20个

分析

既然\(m\)只有100

那为什么不打暴力呢

对于每种操作

是1的话给题目打个\(AC\)标记

是2的话放入未\(AC\)数组,注意我们不在意之前是否\(AC\)

对于3,查找未\(AC\)数组中的没有打过\(AC\)标记的题目,并判断是否输出过,注意只输出前20个即可

(考试的时候没看见,30没了)

其实可以离散化也可以不离散化,看你的\(AC\)标记怎么打,像我的话就是给编号打标记

Code

#include<cstdio>
#include<cstring>
using namespace std;
int m,i,d,now,num,tot,p[105];
long long n,x,hash[10010];
bool b[10010],bj[10010];
int HASH(long long x)
{
int pos;
pos=x%10007;
while (hash[pos]!=0)
{
if (hash[pos]==x) return pos;
pos++;
if (pos==10007) pos=0;
}
hash[pos]=x;
return pos;
}
int main()
{
freopen("problem.in","r",stdin);
freopen("problem.out","w",stdout);
scanf("%lld%d",&n,&m);
while (m--)
{
scanf("%d",&d);
if (d==1)
{
scanf("%lld",&x);
now=HASH(x);
b[now]=true;
}
if (d==2)
{
scanf("%lld",&x);
now=HASH(x);
if (b[now]==false)
{
num++;
p[num]=now;
}
}
if (d==3)
{
memset(bj,false,sizeof(bj));
tot=0;
for (i=num;i;i--)
{
if (b[p[i]]==false&&bj[p[i]]==false)
{
printf("%lld ",hash[p[i]]);
bj[p[i]]=true;
tot++;
}
if (tot==20) break;
}
printf("\n");
}
}
fclose(stdin);
fclose(stdout);
return 0;
}

【NOIP2015模拟11.4】JZOJ8月6日提高组T1 刷题计划的更多相关文章

  1. 【NOIP2015模拟11.5】JZOJ8月5日提高组T1 俄罗斯套娃

    [NOIP2015模拟11.5]JZOJ8月5日提高组T1 俄罗斯套娃 题目 题解 题意就是说 将1~\(n\)排列,问有多少种方案使得序列的逆序对个数小于\(k\) 很容易想到DP 设\(f[i][ ...

  2. 【NOIP2015模拟11.5】JZOJ8月5日提高组T2 Lucas的数列

    [NOIP2015模拟11.5]JZOJ8月5日提高组T2 Lucas的数列 题目 PS:\(n*n*T*T<=10^{18}\)而不是\(10^1*8\) 题解 题意: 给出\(n\)个元素的 ...

  3. 【NOIP2015模拟11.2晚】JZOJ8月4日提高组T2 我的天

    [NOIP2015模拟11.2晚]JZOJ8月4日提高组T2 我的天 题目 很久很以前,有一个古老的村庄--xiba村,村子里生活着n+1个村民,但由于历届村长恐怖而且黑暗的魔法统治下,村民们各自过着 ...

  4. 【NOIP2015模拟11.5】JZOJ8月5日提高组T3 旅行

    [NOIP2015模拟11.5]JZOJ8月5日提高组T3 旅行 题目 若不存在第\(k\)短路径时,输出"Stupid Mike" 题解 题意 给出一个有\(n\)个点的树 问这 ...

  5. JZOJ8月4日提高组反思

    JZOJ8月4日提高组反思 被一堆2018&2019&2020的巨佬暴打 又是愉快的爆0的一天呢 T1 看了看题 没想法 暴力走起 求个质因数呀,二分呀-- 然后就炸了 正解预处理加二 ...

  6. JZOJ8月10日提高组反思

    JZOJ8月10日提高组反思 T1 没想到怎么打 就去打暴力了 本来想拿个30不错了 结果\(AC\)了 话说回来,数据也挺小的 T2 不AC便爆0 就一个数据点 给不给打暴力的人活了 正解是状压DP ...

  7. JZOJ8月15日提高组反思——2020年暑假终结篇

    JZOJ8月15日提高组反思--2020年暑假终结篇 T1 仙人掌最短路 抱歉我只会最短路 仙人掌是啥? 听说是缩点+\(LCA\) 最短路30 T2 直接暴力计算 正解\(DP\) \(amazin ...

  8. JZOJ8月5日提高组反思

    JZOJ8月5日提高组反思 再次炸了 虽然不是爆0 但也没差多少-- T1 想的DP 然后就打了 一开始是只能拿60的 后来想到了用前缀和优化 然后打完交了 最后一分钟测了一下空间 爆了 就赶紧把数组 ...

  9. JZOJ8月10日提高组T2 Fix

    JZOJ8月10日提高组T2 Fix 题目 Description There are a few points on a plane, and some are fixed on the plane ...

随机推荐

  1. Centos7安 装python3+Selenium+chrome+chromedriver

    Centos7安装python3+Selenium+chrome+chromedriver详细python2和python3共存,Selenium错误的处理更新Centos源 wget -O /etc ...

  2. HTML+CSS系列:CSS选择器(标签、ID、类、通配符、后代、子元素、并集、伪类)

    一.标签选择器 <!DOCTYPE html> <html lang="en"> <head> <meta charset="U ...

  3. ps怎么抠图并和另一张图片合并?

    1.首先打开PS.然后随便选取两张图片.比如下图我想把那个小花朵扣出来移动到另外一张图片上. 2.用套锁工具把那个小花朵扣出来.如图我标出了套锁工具的图标.以及扣出来的小花朵.这里也可以选择" ...

  4. 【阿里云-大数据】阿里云DataWorks学习视频汇总

    阿里云DataWorks学习视频汇总 注意:本文档中引用的视频均来自阿里云官方的帮助文档,本文档仅仅是汇总整理,方便学习. 阿里云DataWorks帮助文档链接:https://help.aliyun ...

  5. 【Java】线程的创建方式

    1.继承Thread类方式 这种方式适用于执行特定任务,并且需要获取处理后的数据的场景. 举例:一个用于累加数组内数据的和的线程. public class AdditionThread extend ...

  6. <摘自>飞:jxl简析2 [ http://www.emlog.net/fei ]

    [<摘自>飞:jxl简析:http://www.emlog.net/fei] (二)应用 在进行实践前 , 我们需要对 excel 有一个大致的了解 ,excel 文件由一个工作簿 (Wo ...

  7. 使用Selenium爬取京东电商数据(以手机商品为例)

    进入京东(https://www.jd.com)后,我如果搜索特定的手机产品,如oppo find x2,会先出现如下的商品列表页: 如果点击进入其中一个商品会进入到如下图所示的商品详情页,可以看到用 ...

  8. C++调用Go方法的字符串传递问题及解决方案

    摘要:C++调用Go方法时,字符串参数的内存管理需要由Go侧进行深度值拷贝. 现象 在一个APP技术项目中,子进程按请求加载Go的ServiceModule,将需要拉起的ServiceModule信息 ...

  9. Linux程序开发中如何判断目录是否为根目录?

    问题引入 判断某个目录字符串是否是根目录,咋一听很简单,只要判断字符串是否是"/"即可,但是,很多情况下使用的路径是相对路径,那么如何判断相对路径是根目录呢? 思路分析 熟悉Lin ...

  10. 关于mybatisPlus一些坑,当条件为null时

    1.TStaffDepart 属性有值是才匹配条件,会报错,相当于mybatis if 判断 eg:TStaffDepart staffDepart = new TStaffDepart();staf ...