NOIP模拟
MaxMercer
成都七中学生,OIer
展开
-
9.24 NOIP模拟题(By liu_runda)
话说衡水出的题怎么名不副其实啊… 一点都不水, 可能是因为达哥太强的原因, 毕竟河北rank1啊… 想当初东北集训的时候找他问题也很热心, 不过题就太不友善了… 虽然这次的题确实比较水…简(simple) 【题目描述】 大道至简.这就是出题人没有写题目背景的原因. 给出2n个数字,将它们划分成n组,每组的得分为这一组中两个数字的较小值. 求最大得分. 【输入格式】 第原创 2017-09-25 11:42:32 · 1367 阅读 · 0 评论 -
10.11 NOIP模拟赛 DP + 线段树 + DP + 单调队列
Gray内存限制 256MB 时间限制 1S 程序文件名 gray.pas/ gray.c/ gray.cpp 输入文件 gray.in 输出文件 gray.out Gnaw刚刚学习在数字逻辑中学到了格雷码,它的定义是这样的,对于二进制数A,它对应的格雷码为G= A xor(A>>1),格雷码有个很有趣的性质是相邻二进制数对应的格雷码只有一位不同。 现在以”01?”的方式给出一个长为的二进制原创 2017-10-11 08:29:13 · 499 阅读 · 0 评论 -
NOIP模拟赛 数论专题 扩展欧几里得 + 组合数 + 容斥原理
Problem 1. payInput file: pay.in Output file: pay.out Time limit: 1 second Memory limit: 256 MB Mr.Hu 开了个饭店,来了两位客人:Alice 和Bob,他们吃完饭要结账时,发现他们需要支付c 元钱,但 是Alice 只有面值为a 的钱,Bob 只有面值为b 的钱(他们每个人的钱的和都大于c,原创 2017-10-19 21:30:24 · 733 阅读 · 0 评论 -
10.5 NOIP模拟赛 割点+贪心+最小点覆盖
今天的题很简单, 估分200+但是每个程序都写挂了2个字符左右, 居然爆零…估分这么高简直让我无地自容…退役吧退役吧. 好在写的是正确的考完试改一下就300了. 有的时候从0到300只需要很短的时间…Board数据是300 * 300的. 首先有一个很显然的结论, 答案不是1就是2. 因为你可以在角落上抠两个土地出来, 这样角落上那个土地就与其他不连通了. 那么我们就只需要考虑 有没有只需要挖一个原创 2017-10-05 16:40:29 · 362 阅读 · 0 评论 -
10.4 NOIP模拟赛 线段树+DP+Trie
String考虑到只有26个字母, 所以区间排序相当于就是把1-26的值从大到小或者从小到大一次区间赋值. 线段树即可. 当然用平衡树套一下的话就没有26这个常数了. 当然有一位神犇Kechan不加读优只用线段树一样跑在0.5s以内. Kechan的极优代码.#include<cstdio>#include<cstring>#include<algorithm>#include<iostr原创 2017-10-05 18:03:10 · 330 阅读 · 0 评论 -
NOIP模拟赛 鸽巢原理 + 众数 + Trie
Set Set(set.cpp/c/pas, 1s, 64MB) 题目描述 你手上有N个非负整数, 你需要在这些数中找出一个非空子集, 使得它的元素之和能被N整除. 如果有多组合法方案, 输出任意一组即可. 注意: 请使用高效的输入输出方式避免输入输出耗时过大. 输入格式 第一行一个整数N, 代表数字个数. 接下来一行N个数, 代表你手上的数. 输出格式原创 2017-11-06 22:04:38 · 627 阅读 · 0 评论 -
NOIP模拟赛 数论 积性函数 + BSGS + Lucas模进制数位Dp
Problem 1. facsum题解我们发现后面那个sigma里都是积性函数, 积性函数相乘也是积性函数. 我们可以线性筛筛除后面那个就可以. 考虑后面那个和式设为积性函数g, p为质数的话, g(p) = 2 - p. g(p ^ 2) = 3 - 2p. g(p ^ 3) = 4 - 3p, 以此类推. 然后用线性筛来筛, 若i 与 pr[j]互质的话, g(i * p[j]) = g[i]原创 2017-10-20 18:43:17 · 632 阅读 · 0 评论 -
NOIP模拟赛 斐波那契树 + 二分 + 并查集
FIbonaccim <= 3e5. 询问的数字是10^12级别的.题解首先很明显肯定要log的算法. 并且由于斐波那契的性质, 树高一定是log级别的. 那么对于两个点我们只要暴力跳fa即可过. 问题就在于怎么快速求father. 比如编号i的他的fa是谁. 我们想这个树每次生成f[j]个(f是斐波那契数列). 那么i一定是某一批斐波那契数列. 那么我们知道这一批之前一共生成了多少个的话,原创 2017-10-23 22:21:58 · 398 阅读 · 0 评论 -
10.16 NOIP模拟赛 期望斜率优化 + 模拟 + 状压
游戏 (game.cpp/c/pas) 【题目描述】 有n 个数,编号从1 到n。现在把n 个数分成k 组编号为1 到k,使得每组内的数必须 连续,组与组之间不能相交并且每个数必须属于一个组。 游戏进行的过程如下: 1. 如果n 个数都已经获得了,游戏结束。否则,找到编号最小没有全部获得的组X。 2. 游戏系统会给一个空的盒子,对于组X 中已经获得的数i,将ti 张写着数i 的卡片放原创 2017-10-16 21:13:08 · 430 阅读 · 0 评论 -
NOIP模拟赛 四校联考 递推 + 分类讨论 + 树上期望
NOIP 模拟题 题目名称兔子被子蚊子 源程序文件名rabbit.cpp quilt.cpp mosquito.cpp 输入文件名rabbit.in quilt.in mosquito.in 输出文件名rabbit.out quilt.out mosquito.out 每个测试点时限1s 1s 5s 内存限制512MB 512MB 512MB 测试点数目10原创 2017-10-27 11:34:02 · 841 阅读 · 0 评论 -
Codeforces438D 线段树取模
题意单点修改, 区间求和, 区间模(不对整体和模, 对每一个数模).题解考虑每一个数被模, 如果模数大于它, 就不管. 如果模数p小于它, 则这个数每次被模过一次就缩小至少一半. 证明: 设数为x, 模数p > x/2, 则模一次肯定小于x之后肯定x/2. 若p < x/2, 那么模p后x < p, 所以后来x < x/2. 那么一个数最多被有效模log次. 一共nlogn次即可.原创 2017-10-02 19:18:53 · 342 阅读 · 0 评论 -
[BZOJ]3727 Final Zadanie 公式推导
3727: PA2014 Final ZadanieTime Limit: 10 Sec Memory Limit: 128 MBSubmit: 319 Solved: 138[Submit][Status][Discuss]Description吉丽YY了一道神题,题面是这样的:“一棵n个点的树,每条边长度为1,第i个结点居住着a[i]个人。假设在i结点举行会议,原创 2017-09-25 12:19:29 · 365 阅读 · 0 评论 -
2017 9.17 NOIP模拟 胡策题总结
Mushroom的序列 【问题描述】 Mushroom手中有n个数排成一排,现在Mushroom想取一个连续的子序列,使得这个子序列满足:最多只改变一个数,使得这个连续的子序列是严格上升子序列,Mushroom想知道这个序列的最长长度是多少。 【输入格式】 第一行一个整数n,表示有n个数。 第二行为n个数。 【输出格式】 一个数,为最长长度。 【输入样例】 6 7 2 3 1 5原创 2017-09-18 09:03:03 · 535 阅读 · 0 评论 -
9.27 [NOIP模拟]数据结构 不正常团伙 莫队/主席树
题目大意 : 询问一段区间内出现次数不为2的数字之和.题解: 离线做法: 莫队. 因为数字在1e5范围内, 用一个cnt数组维护值为i的当前出现次数. 莫队移动更新的时候就维护cnt数组, 注意当cnt[a[i]] 为1, 2, 3的时候要特判, 因为出现次数为2的时候是没有贡献的.在线做法: 用主席树差分, 主席树维护序列而不是维护值域. 建主席树的时候维护一个值上上次, 以原创 2017-09-27 19:38:41 · 288 阅读 · 0 评论 -
加帕里的聚会 树链剖分 + 线段树(区间加 、区间赋值)
加帕里的聚会256MB / 1s ; japari.cpp / c /pas / in / out【题目描述】加帕里公园里有n个区域,n-1条道路将它们连接到了一起,形成了一个树的结构。开始时,第i个区域有Ai个friends,但是由于砂之星的作用,有时从x区域到y区域的简单路径上的所有区域的friends数量都会增加v,有时从x区域到y区域的简单路径上所有区域的friends数量都会原创 2017-09-27 20:06:22 · 558 阅读 · 0 评论 -
9.27 不正常国家 Trie + 启发式合并
题意: 每个点有一个点权, 每个点u定义一个繁忙程度, 为u子树里面两点之间的路径异或和最大的两点的异或和. 这两点的lca必须要是u. 输出每个点的繁忙程度.题解 x, y的路径异或和就是x到根的异或和 异或 y到根的异或和 再异或lca的值.对于异或和01trie不太懂得:Click Here这道题烦就烦在必须要是子树里面的两点, 这样普通的trie或原创 2017-09-27 22:18:45 · 559 阅读 · 0 评论 -
李超线段树
题目描述秋月十分擅长对空作战。尽管如此,必要的训练也不能懈怠。在一次训练中,会有m个事件发生。1. 出现一架飞机在(x1,y1)到(x2,y2)的线段上出现并来回飞行。2. 秋月接到指令,要在x坐标为a处击坠一架飞行路线经过该位置的飞机。为了确保击坠的可能性最大,秋月将选择在x位置时高度最低的飞机。由于只是训练任务,秋月并不会真正地击坠飞机。你只需要在每次接到指令时告诉她高原创 2017-09-28 21:02:07 · 503 阅读 · 0 评论 -
NOIP模拟 10.17 单调队列 + 树形Dp + 区间Dp
烟火 (fireworks.cpp/c/pas) 【题目描述】 城镇的主干道上有n个区域,从左到右编号为1到n,每个区域之间相距1个单位距离。在节日中要放m个烟火,第i个烟火会在ti时刻的ai区域放。如果在ti时刻你所处区域为x,那么你可以获得bi - | ai - x |的快乐值。在每个单位时间你可以移动不超过d个单位距离,初始的位置是任意的,求通过移动能获得快乐值和的最大值。 【输入格式】原创 2017-10-17 21:09:45 · 401 阅读 · 0 评论 -
10.9 NOIP[真] 背包 + 状压 + 单调栈 + 最短路
Birthday内存限制 256MB 时间限制 1S 程序文件名 birthday.pas/birthday.c/birthday.cpp 输入文件 birthday.in 输出文件 birthday.out 前些天是Miss D生日,gnaw去逛街给Miss D买礼物。商店有这样的福利:第i件商品价值为Wi,买k个(k>0),可以送Ai × k + Bi颗Miss D喜欢的糖 最大预算为M原创 2017-10-09 14:46:09 · 360 阅读 · 0 评论 -
10.3 NOIP模拟赛 DP + 最小生成树 + 容斥
Mine 考虑dp[i][0/1][0/1], 表示第i位当前有雷(1), 无雷(0), 以及下一位有雷或者无雷. 转移见代码注释.#include<stdio.h>#include<cstring>using namespace std;const int mod = 1e9 + 7;const int maxn = 1000005;char s[maxn];int f[maxn][原创 2017-10-03 22:04:53 · 447 阅读 · 0 评论 -
number 二分答案
题意给出m和k. 某数i满足, i + 1, i + 2, i + 3.... 2 * i中恰好有m个数二进制拆分后有k位为1. 求出longlong范围以内, 输出一个这样的数和这样的数有多少个. 若有无穷个则输出-1.题解设f[i][j]表示第i个数中i + 1 ... 2 * i中恰好有j个1的个数. 不难发现, j一定时, 随i的单增, 值也呈单调性变化. 所以我们二分答案即可原创 2017-10-02 18:59:17 · 283 阅读 · 0 评论 -
字符串训练赛 By YYR AC自动机 + KMP/HASH + 贪心
字符串 #2 By YYR题目名称 基因的庇护 修仙 眼镜 输入文件名 protect.in hhh.in glasses.in 输出文件名 protect.out hhh.out glasses.out 每个测试点时限 1s 1s 2s 测试点数目 10 10 10 每个测试点分值 10原创 2017-10-25 19:25:10 · 475 阅读 · 0 评论