这场其实心态十分爆炸,首先一下午改上次破T3卡常一下午没过,心情十分暴躁。上来开题不顺利,T1想了一个小时没动。于是跳到T2,看T2的80pts貌似可拿就先打了。T3只会判10分,又想打个$2^{2N}$暴力看能不能骗点分。回头再看T1,恍然发现是个$N^3 dp$,打完了想对拍却不太会打暴力。又去检查T2。最后结果:A了T1,T2只有40分,T3爆零(数据分治判错了)。十分出乎意料的是T1、T2均30人左右AC,太强了吧。T2的部分分可能并没有数据。

T1:

  把环拆成两倍的链,考虑$dp$,设$f[i][j]$表示到$i$处向前合并了长度为j的集合时的最优答案,最终目标$max{f[i][N]},N<i<=2N$,转移前需要预处理区间颜色数,做到$O(1)$转移,$f[i][j+k]=\max \{f[i][j]+f[i-j][k]+cnt[i-k-j+1][i-j]*cnt[i-j+1][i] \}$(枚举合并两个集合的长度)。

T2:

40pts:

  先考虑如果不下滑,一定是按$a$从大往小嗑药。有下滑,最后一步一定不用下滑,枚举最后一步的药,之前每一步按$a-b$从大往小选取,目标高度为L减去相应的$a$。$O(N^2)$。

100pts:

  考虑如何快速计算出最后一步之前最少需要多少药才能到达目标高度。如果没有放水,那么排序之后直接前缀和+二分就可以。有了水位的限制,我们的答案要在被淹死之前。也就是要判断某一天是否已被淹死。同样记录放水的前缀和(就是每天的水位),用人的高度减水的高度,维护这个差值的前缀$min$,可以初步判断某一天是否被淹死。但是我们枚举了最后一步,而前缀$min$是静态的,就是说,在二分时判断第$m$天,若$m$比最后一步的顺序靠前,那么用前缀$min$就直接可以;若$i$在$m$前,那么在$i$之前的天照样前缀$min$不影响,而$i$之后的每一天实际上要减去上一天的水位(因为$i$为最后一步不能算),所以维护每一天的高度前缀和减去上一天的水位的$min$值。因为查询区间左端点不再只是$1$,所以$st$表维护。最终二分时加上判断这一天在淹死之前的条件。$O(N \log N)$。

T3:

  简单学了一下博弈论和SG函数,但这题的难点其实在于转化和建模。

10pts:

  没有全翻正的情况,只需判断最后谁不能翻了,即$ (H+W)\&1 $。

30pts:

  需要判断出是否存在全翻正的方案。每行、每列只能翻一次,对于一个硬币,如果它是正,要么一次也不翻,要么翻行和列;如果是反,需要反行或列。对于这样的问题很想二分图,我们抽象成图:每行、每列各为一个点,如果有硬币$(x,y)$为正,向行点$x$、列点$y$连一条“边0”,否则连"边1”。这样做的意义是,颜色1表示翻,0表示不翻,要让最终硬币全翻正。最后染色,经过"边1"时将颜色$xor 1$,判断是否冲突。

100pts:

  对于一个$ICG$,它的必胜局面为$SG!=0$,多个ICG和起来总的SG为每个子游戏的异或和。对于本题来说建图后每个联通块成为了一个子游戏,根据SG函数判断先手胜负。考虑每一个联通块,最后胜局落在谁手里和这个联通块需要多少次操作有关。设这个联通块内需要操作的点有$a$个,不需操作的有$b$个,$a$,$b$可以互换因为先手可以选择。一个联通图如果是$a$、$b$都是偶数,先手必败,$SG=0$;如果$a$、$b$都是奇数,后继局面$SG$都是$0$,所以本局面$SG=1$,先手必胜;如果$a$、$b$一奇一偶,后继局面$SG=1$或$SG=0$,本局面$SG=2$,先手必胜。最终根据子游戏异或和判断。

csp-s模拟106的更多相关文章

  1. csp模拟赛低级错误及反思

    \(csp\)模拟赛低级错误及反思. 1.没开\(longlong\). 反思:注意数据类型以及数据范围. 2.数组越界(前向星数组未开两倍,一题的数据范围应用到另一题上,要开两倍的写法为开两倍数组) ...

  2. CSP 201612-3 权限查询 【模拟+STL】

    201612-3 试题名称: 权限查询 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 授权 (authorization) 是各类业务系统不可缺少的组成部分,系统用户通过授权 ...

  3. [考试反思]1109csp-s模拟测试106:撞词

    (撞哈希了用了模拟测试28的词,所以这次就叫撞词吧) 蓝色的0... 蓝色的0... 都该联赛了还能CE呢... 考试结束前15分钟左右,期望得分300 然后对拍发现T2伪了写了一个能拿90分的垃圾随 ...

  4. CSP复赛day2模拟题

    没错,我又爆零了.....先让我自闭一分钟.....so 当你忘记努力的时候,现实会用一记响亮的耳光告诉你东西南北在哪. 好了,现在重归正题: 全国信息学奥林匹克联赛(NOIP2014) 复赛模拟题 ...

  5. 【CSP模拟赛】Freda的迷宫(桥)

    题目描述 Freda是一个迷宫爱好者,她利用业余时间建造了许多迷宫.每个迷宫都是由若干房间和走廊构成的,每条走廊都连接着两个不同的房间,两个房间之间最多只有一条走廊直接相连,走廊都是双向通过.  黄昏 ...

  6. 【CSP模拟赛】starway(玄学建边 最小生成树)

    问題描述 小w伤心的走上了 Star way to heaven.   到天堂的道路是一个笛卡尔坐标系上一个n×m的长方形通道(顶点在(0,0))和(n,m)),小w从最左边任意一点进入,从右边任意一 ...

  7. @CSP模拟2019.10.16 - T3@ 垃圾分类

    目录 @description@ @solution@ @accepted code@ @details@ @description@ 为了保护环境,p6pou建设了一个垃圾分类器. 垃圾分类器是一个 ...

  8. CSP模拟赛2游记

    这次由于有课迟到30min,了所以只考了70min. 调linux配置调了5min,只剩下65min了. T1:有点像标题统计,但要比他坑一点,而且我就被坑了,写了一个for(int i=1;i< ...

  9. CSP模拟赛游记

    时间:2019.10.5 考试时间:100分钟(连正式考试时间的一半还没有到)题目:由于某些原因不能公开. 由于第一次接触NOIinux系统所以连怎么建文件夹,调字体,如何编译都不知道,考试的前半小时 ...

随机推荐

  1. Windows群集之NLB【转】

    本文转自:http://www.talkwithtrend.com/Article/31746 网络负载平衡群集(Network Load balancing) 在Internet快速发展的今天,为了 ...

  2. MFC如何显示位图

    1. 资源文件中加载 bmp 2.1. 静态加载图片 在属性下设置为如下即可 2.2 动态加载图片 其中要在控件中添加CStatic变量,并且属性设置为如下 并且在按钮控件中加入 如下代码 void ...

  3. 如何在 vue 2.0+ 中引入全局的stylus文件,且能正常

    由于stylus在引用时,不能像一般的css文件直接在main.js中引用,就算引用了也会只能使用转换后的css,不能使用里面的函数,方法等,原因可能是:在这里引入会被直接编译成css,不能在别的模板 ...

  4. Unable to open nested entry '********.jar' 问题解决

    今天把现网版本的task的jar拖回来然后用7-zip打开拖了一个jar进去替换mysql-connector-java-5.1.47.jar  为  mysql-connector-java-5.1 ...

  5. 六、TreeMap的使用 及其源码解析

    TreeMap中的元素默认按照keys的自然排序排列 1. 构造函数TreeMap(): 创建一个空的TreeMap ,keys按照自然排序TreeMap(Comparator comparator) ...

  6. perl判断文件是否存在 perl -e

    perl 有很多的命令  其中有  -e   是判断文件和目录是否存在 代码如下: #!/usr/bin/perl $fileExist = -e "/var/log/messages&qu ...

  7. docker搭建单机ELK

    yum -y install epel-release yum -y install python-pip // 更新pip pip install --upgrade pip // 安装docker ...

  8. log4j日志properties配置

    #Console Log log4j.rootLogger=INFO,console,debug,info,warn,error LOG_PATTERN=[%d{yyyy-MM-dd HH:mm:ss ...

  9. C C++输出格式 <转载>仅用于个人

    转载链接:C++ C C语言输出格式总结 1 一般格式    printf(格式控制,输出表列)    例如:printf("i=%d,ch=%c\n",i,ch);    说明: ...

  10. 用js刷剑指offer(从尾到头打印链表)

    题目描述 输入一个链表,按链表从尾到头的顺序返回一个ArrayList. 牛客网链接 js代码 /*function ListNode(x){ this.val = x; this.next = nu ...