NOIP模拟
1.要选一个{1,2,...n}的子集使得假如a和b在所选集合里且(a+b)/2∈{1,2,...n}那么(a+b)/2也在所选集合里
f[i]=2*f[i-1]-f[i-2]+g[i]
g[n]:选1,n的方案数
观察性质,模拟+元素的过程推知集合中元素是等差数列,且公差=1(mod 2)
故g[n] = n-1的奇约数
f长这样:
1 : 2
2 : 4
3 : 7
4 : 12
5 : 18
6 : 26
7 : 36
8 : 48
9 : 61
10 : 77
11 : 95
12 : 115
13 : 137
14 : 161
15 : 187
16 : 217
17 : 248
18 : 281
19 : 317
2.(7).Ever Forever
将一个数的置换看做一条有向边,最后得到的图是很多环(入度=出度=0)。
求每个环初始与最终是否循环同构,并求相差距离,构出一个x=a[i](mod b[i])的方程组
判定方程组x=a[i] (mod b[i])是否有整数根
(1)暴力解,可能会爆long long
(2)将b[i]分解质因数,对于每个p,求出a[i] % (p^k),若有矛盾则不成立
a%b=c可规约到a%p1=c%p1; a%p2=c%p2; 若p次数>1,则同理
3.字符消除——尽可能长的t使得S的长度为t的前后缀循环同构。
M1:枚举总长度——如果在1~i和n-i+1~n这一段字母acsii和相同则在做下一步判断
考虑循环同构性质
在S中枚举A,即S长为|A|的前后缀相同,考虑在删去前后各|A|个字符的S中如何快速求出最长的B。
定义f[i]为|A|=i时B的最大长度。 ==> f[i]-2≤f[i+1]
4.
方法1
借助直径搞一搞,求两点连到直径上的点(a,b),预处理每个直径上点到分支的最长距离,RMQ处理(序号+dis)的最大值,
至于中间那一部分,观察到点到询问点间距离均单调,得到一个Border就可以RMQ询问啦
lalala一遍过rank1
方法2 :暴力求中间点,维护最长链次长链+倍增
找到mid,分两半考虑。
大概是这样。 次长链是为了防止最长链的终点为询问中的x点的子孙(即经过mid后回到x)
max(f1(x),f2(x)) 值在f1(x)或f2(x)中任意一个取到Max时得到
5.bitset优化高斯消元
每一个位置取还是不取设一个变量,然后分每一个质因子考虑就可以列出一些异或方程,解有几个自由元就好了。——jiry_2
对于每个质因数,将所有该因数的次数为奇数的变量异或起来=0
对于每行每列,所有数异或起来=1
答案=2的k次幂
(取奇数个,取偶数个这种东西,是异或方程组的经典题目)
6. (这题是大结论性质难题,等以后变强了继续啃这些推导过程)
本原串:一个字符串s除|s|以外的周期,都不是|s|的约数,则称s是本原串。(不会存在形如aaaa的串,a=string)
若p, q ∈ Per(s)且 p + q <= |s|,则gcd(p, q) ∈ Per(s)
如果一个串不是本原串,修改其中任意一个字符,它就会变成本原串。(eg. ababab --> ababaa)
定义PS(s)为s的所有前后缀的长度组成的集合。即PS(s) = {x | s[1, x]是s的前后缀}
规定0 不属于 PS(s), 而|s| ∈ PS(s)
=>PS(s) = {next[|s|], next[next[|s|]], next[next[next[|s|]]], ...}
将PS(s)里的元素从小到大排序,得到p[1], p[2], p[3], ..., p[|PS(s)|]。(eg. p={1,3,4,7})
//p就是把PS中的元素列出来
再设 strP[i] 为 PS(r) = {p[1], p[2], ... p[i]}的字典序最小的01串。当然了……|strP[i]| = p[i]
(strP[|PS(s)|] = 最终答案, p[|PS(s)|] = len(s))
从strP[1]..strP[|PS(s)|]顺序递推
1.p[i+1]<=p[i]*2,则strP[i]一定是strP[i + 1]的前后缀。 只需将strP[i]后加上长为p[i+1]-p[i]的后缀,得到strP[i+1]
2.中间全接0或末尾扔一个1
结论:若有一个字符串P,设U = P . "0" * j . P,则不存在q,|P| < q < |U|,使得q ∈ PS(U)的充要条件是P . "0" * j是本原串。
KMP:每次在后面添加一个字符,在后面删除一个字符,维护next数组,均摊O(1)
字符串s不是本原串当且仅当它的最小周期不为|s|且最小周期是|s|的约数。
{
1.KMP得到PS集合,得到p[]
2.初始strP[0] :
if p[1] = 1 then strP[1] = "0"
else strP[1] = ("0" * (p[1] - 1)) . "1";
3.递推得到每一个p[]对应的strP[], strP[|PS(s)|]即为答案
}
7.三角形面积S=
-> ->
x * y / 2 = |x1y2-x2y1| / 2
可通过行列式、割补法等求(计算几何)
通过极角坐标排序可去掉绝对值,求叉积之和可通过前缀和解决。
8. [No.9]第三题(disanti) 容斥原理
思想很简单:容斥,判一判某种方案是否符合“匹配”的定义,(就算某种情况值=0,容斥也是正确的)就好了。 //大家的做法好像都用dfs,然后几乎没有什么预处理? 我写的好复杂。。
我的思路是枚举每个集合,判可行性,再求类似边权和的东西。事先维护 1.一个集合所有点都不选的最大匹配权值和 2.A中每个点分别到B中所有点的边权和
(如果没有集合间的关系,可以O(k^2)求上1,即简单的容斥 ==> 应用广泛)
O(2^k*k) //如果不加一些优化可能退化成O(2^k*n)或O(2^k*k^2)
但是,犯了很多小错,比如数组大小。。 (类似状压的题,数组大小要小心啊)
总之,这大概是容斥的大致模板了吧。
9. [No.9]第一题(diyiti) 压位
每次询问把整块的部分扔到一起,多出部分特判即可,细节超多
{
这种题全是位运算, '&' --> "&&"就狗带了
2串长度不同
修改时在原string中也要修改
}
反正考场上一般来说都不太敢打这种东西
压位的正确姿势好像是32位一起,unsigned int
NOIP模拟的更多相关文章
- NOIP模拟赛20161022
NOIP模拟赛2016-10-22 题目名 东风谷早苗 西行寺幽幽子 琪露诺 上白泽慧音 源文件 robot.cpp/c/pas spring.cpp/c/pas iceroad.cpp/c/pas ...
- contesthunter暑假NOIP模拟赛第一场题解
contesthunter暑假NOIP模拟赛#1题解: 第一题:杯具大派送 水题.枚举A,B的公约数即可. #include <algorithm> #include <cmath& ...
- NOIP模拟赛 by hzwer
2015年10月04日NOIP模拟赛 by hzwer (这是小奇=> 小奇挖矿2(mining) [题目背景] 小奇飞船的钻头开启了无限耐久+精准采集模式!这次它要将原矿运到泛光之源的矿 ...
- 大家AK杯 灰天飞雁NOIP模拟赛题解/数据/标程
数据 http://files.cnblogs.com/htfy/data.zip 简要题解 桌球碰撞 纯模拟,注意一开始就在袋口和v=0的情况.v和坐标可以是小数.为保险起见最好用extended/ ...
- 队爷的讲学计划 CH Round #59 - OrzCC杯NOIP模拟赛day1
题目:http://ch.ezoj.tk/contest/CH%20Round%20%2359%20-%20OrzCC杯NOIP模拟赛day1/队爷的讲学计划 题解:刚开始理解题意理解了好半天,然后发 ...
- 队爷的Au Plan CH Round #59 - OrzCC杯NOIP模拟赛day1
题目:http://ch.ezoj.tk/contest/CH%20Round%20%2359%20-%20OrzCC杯NOIP模拟赛day1/队爷的Au%20Plan 题解:看了题之后觉得肯定是DP ...
- 队爷的新书 CH Round #59 - OrzCC杯NOIP模拟赛day1
题目:http://ch.ezoj.tk/contest/CH%20Round%20%2359%20-%20OrzCC杯NOIP模拟赛day1/队爷的新书 题解:看到这题就想到了 poetize 的封 ...
- CH Round #58 - OrzCC杯noip模拟赛day2
A:颜色问题 题目:http://ch.ezoj.tk/contest/CH%20Round%20%2358%20-%20OrzCC杯noip模拟赛day2/颜色问题 题解:算一下每个仆人到它的目的地 ...
- CH Round #52 - Thinking Bear #1 (NOIP模拟赛)
A.拆地毯 题目:http://www.contesthunter.org/contest/CH%20Round%20%2352%20-%20Thinking%20Bear%20%231%20(NOI ...
- CH Round #49 - Streaming #4 (NOIP模拟赛Day2)
A.二叉树的的根 题目:http://www.contesthunter.org/contest/CH%20Round%20%2349%20-%20Streaming%20%234%20(NOIP 模 ...
随机推荐
- Spring学习(十一)-----Spring使用@Required注解依赖检查
Spring学习(九)-----Spring依赖检查 bean 配置文件用于确定的特定类型(基本,集合或对象)的所有属性被设置.在大多数情况下,你只需要确保特定属性已经设置但不是所有属性.. 对于这种 ...
- 拼多多商品id怎么查看 拼多多店铺ID怎样看
网上开店平台有很多编号.id等可以区分商品和店铺的标志,拼多多有店铺id也有商品id,这是两个不同的概念,店铺id进入到拼多多店铺即可查询,拼多多商品id怎么查看 拼多多店铺ID怎样看,那么拼多多商品 ...
- SteamVR Unity Plugin - v2.0.1中的InteractionSystem
最近写VR项目的时候用到了SteamVR Unity Plugin - v2.0.1插件,感觉比之前用到的SteamVR plugin for Unity - v1.2.2版本改进了很多,就算不用VR ...
- PHP学习和使用总结
起因 学习和使用PHP也有不少年头了,而自己也在学习和使用其他许多语言.我想通过这个总结来给自己一个交代.另一方面也分享一下开发经验,如何用PHP开发和管理大型的项目. 闲聊 许多人说自己1天学会PH ...
- Paper Reading - Long-term Recurrent Convolutional Networks for Visual Recognition and Description ( CVPR 2015 )
Link of the Paper: https://arxiv.org/abs/1411.4389 Main Points: A novel Recurrent Convolutional Arch ...
- mysql数据库查询
查询数据指从数据库中获取所需要的数据.查询数据是数据库操作中最常用,也是最重要的操作.用户可以根据自己对数据的需求,使用不同的查询方式.通过不同的查询方式,可以获得不同的数据.MySQL中是使用SEL ...
- mysql You can't specify target table 'xxx' for update in FROM clause
含义:您不能在子句中为更新指定目标表'xxx'. 错误描述:删除语句中直接含select,如下: DELETE FROM meriadianannotation WHERE SeriesID IN ( ...
- 软工1816 · Alpha冲刺(9/10)
团队信息 队名:爸爸饿了 组长博客:here 作业博客:here 组员情况 组员1(组长):王彬 过去两天完成了哪些任务 学习jQuery的AJAX部分的基础知识,对web端如何异步获取服务器信息有了 ...
- a6
组员:陈锦谋 今日内容: 界面按钮.icon制作,PS学习 明日计划: 继续 困难: 时间不多吧,今天主要电气实践
- virsh 命令行管理虚拟机
重用命令和选项 1:查看运行的虚拟机 virsh list 2:查看所有的虚拟机(关闭和运行的虚拟机) virsh list --all 3:连接虚拟机 virsh console +域名(虚 ...