首页 > TAG信息列表 > NOIP2016
P2058 [NOIP2016 普及组] 海港
# [NOIP2016 普及组] 海港 ## 题目背景 NOIP2016 普及组 T3 ## 题目描述 小 K 是一个海港的海关工作人员,每天都有许多船只到达海港,船上通常有很多来自不同国家的乘客。 小 K 对这些到达海港的船只非常感兴趣,他按照时间记录下了到达海港的每一艘船只情况;对于第 $i$ 艘到达的船,他记[NOIP2016 提高组] 天天爱跑步
题面,题解就不打了,写的较好的题解。 主要是借这个题说一下如何正确的思考出来一道题: 首先样例肯定要模,在模的时候就是构建思路的过程,当然一般的小样例无论什么方法都可以得出答案(spj),能过正确的理解题面就行; 然后我们就可以顺着方案A想,看看是否有漏洞(反例)、复杂度(以这个题来说:每个人P1850 [NOIP2016 提高组] 换教室 题解
题目大意 有 \(n\) 个时间段,有 \(2n\) 个课程,在第 \(i\) 个时间段的时候,有两个教室 \(c_i\) 和 \(d_i\) ,第 \(i\) 个时间段申请换教室通过的概率为 \(k_i\)。 可以选择 \(m\) 个时间段进行换教室,也可以换不到 \(m\) 个教室。 所在大学是一个 \(v\) 个点,\(e\) 条边的图,由双向边连接[NOIP2016 普及组] 魔法阵
洛谷题面 题目大意 给定 \(n,m\) 和 \(m\) 个整数 \(x_i\),\(1\le x_i\le n\)。 如果存在四元组 \((a,b,c,d)\) 满足: \(x_a<x_b<x_c<x_d\) \(x_b-x_a=2\times (x_d-x_c)\) \(x_b-x_a<(x_c-x_b)/3\) 那么这个四元组是有效的,问每个物品分别作为有效四元组中 \(a,b,c,d\) 几次玩具谜题 P1563 [NOIP2016 提高组]
原题链接 来自洛谷https://www.luogu.com.cn/problem/P1563 #include <bits/stdc++.h> using namespace std; char name[100100][12]; int fward[100100]; int main() { int i, j, t; int n, m; scanf("%d%d", &n, &m); for (i = 0; i < n; i++)P2058 [NOIP2016 普及组] 队列+桶
题目描述 小K是一个海港的海关工作人员,每天都有许多船只到达海港,船上通常有很多来自不同国家的乘客。 小K对这些到达海港的船只非常感兴趣,他按照时间记录下了到达海港的每一艘船只情况;对于第i艘到达的船,他记录了这艘船到达的时间ti (单位:秒),船上的乘 客数kiki,以及每名乘客的国【数据结构1-1】线性表 [NOIP2016 普及组] 海港
题解 因为要统计近24小时之间的数据,我们没有办法对当前的数据操作从而达到统计未来24h之内的国籍,但是我们可以通过队列暂时存储该数据,等到24h后再处理当前的数据。也即,队列中一直存储近24h的数据,我们用这个队列“筛子”去从前往后筛不同的24h从而得到每24h的结果。 AC代码 #includNOIP2016&洛谷P1600:天天爱跑步
文章目录 解析sol1:树剖+mapsol2:树剖+离线sol3:dfs维护树状数组+差分 解析 个人认为本题比同年的逛公园可做许多 本题的一个关键是:把慢跑者 ( u , v[NOIP2016 提高组] 天天爱跑步
[NOIP2016 提高组] 天天爱跑步 因为本人很菜所以尽量写得通俗一点, 讲错的地方欢迎指出 参考:https://www.cnblogs.com/dmoransky/p/11406515.html orz墨染空dalao 并自己加上了一点补充 顺便弥补了一下luogu题解图炸了所以看不懂的悲剧。 但是讲得超好!!! 题目描述 小c同学认为跑步洛谷P2831 [NOIP2016 提高组] 愤怒的小鸟——状压dp、预处理
题目链接 题目:愤怒的小鸟 思路过程 数据范围非常小,\(n\leq 18\),可以考虑指数级时间复杂度的算法。 借鉴曼哈顿路径的状压dp算法,可以设计出状态:\(f(i)\)表示状态为\(i\)时用鸟最小数。 状态转移很好想,预处理一下可以做到\(O(n^2)\)转移 时间复杂度\(O(2^n n^2)\) 完整代码 #include[NOIP2016 提高组] 组合数问题
[NOIP2016 提高组] 组合数问题 难度:普及+/提高 解题思路 此题需要计算大量的排列组合结果,所以选择杨辉三角来计算排列组合数。 解题难点 下面先编写了一段杨辉三角和计算个数的代码 90pts: O(tnm) 杨辉三角 #include <bits/stdc++.h> using namespace std; int k,t,n洛谷P2119 [NOIP2016 普及组] 魔法阵
传送门 初步想法,枚举四个物品,明显爆炸 之后想办法优化 看到n1e4的取值范围,我们很容易就能get到这个题应该用桶的方式来解决 具体怎么搞呢? 我们来观察一下他给的等式以及不等式 最小的单位应该是D与C之间的差值 我们设这个值为t,可以通过枚举t来进行计算。 首先,我们可以知道,A的P2822 [NOIP2016 提高组] 组合数问题
题目传送门 零、理解与感悟 1、通过杨辉三角形象记忆帕斯卡公式(代码实现的递推式) 2、二维前缀和优化 这里需要注意的是要根据题意,抽象中一个中间态的a数组,模拟二维前缀和的前置原始数组。这个数组的获取有一点点说道,因为所有C数组数据初始值是0,而我们要根据是0,才会把a数组对应位置【NOIP2016提高A组模拟9.9】Brothers 题解
【NOIP2016提高A组模拟9.9】Brothers Description 在遥远的西方有一个古老的王国,国王将他的王国分成了网格状,每一块称之为一个城市。在国王临死前,他将这些城市分给了自己的N个儿子(编号为0到N-1)。然而这N个王子的关系不是很好,0讨厌1,1讨厌2,2讨厌3……N-1讨厌0。 在国王死后,这种不好NOIp2016 提高组 解题报告
NOIp2016 提高组 D1T1 玩具谜题 简单题,依据题意模拟即可。 得分:\(100 / 100.\) \(\color{green}{AC}\) 记录:https://www.luogu.com.cn/record/55231605. \(\Huge\mathcal{To\ \ Be\ \ Continued...}\)题解[NOIP2016 提高组] 天天爱跑步
算是NOIP中比较麻烦的题了,看题解感觉处理的很巧妙 题意就不再赘述了,刚开始的想法是遍历枚举每一条路径,但是无论如何这样做的复杂度最坏都有O(nm) 所以尝试换一种方法,从观察员下手,对于每一个观察员,我们只需要找到每一条路径带给他的贡献 那这个贡献怎么求呢? 对于每一条路径(u,【题解】[NOIP2016 提高组] 天天爱跑步
P1600 [NOIP2016 提高组] 天天爱跑步 考虑 a 到 b ,c = lca(a, b) ,那么如果对观察员 u 产生贡献: 如果 u 在 a->c 上,则 \(time[a]+dep[a]-dep[u] = w[u]\) ,即 \(time[a]+dep[a] = w[u]+dep[u]\) ,其中 \(time[a]=0\) 如果 u 在 c->b 上,则同理得 \(time[b]-dep[b] = w[u]-dep[u]\) ,其[NOIP2016]组合数问题——排列组合问题
链接:https://ac.nowcoder.com/acm/problem/16429 来源:牛客网 题目描述 组合数表示的是从 n 个物品中选出 m 个物品的方案数。举个例子,从 (1, 2, 3) 三个物品中选择两个物品可以有 (1, 2),(1, 3),(2, 3) 这三种选择方法。 根据组合数的定义,我们可以给出计算组合数的一般公式: C(nP1909 [NOIP2016 普及组] 买铅笔
如果她选择购买第一种包装,那么她需要购买29份,共计2×29=58支,需要花费的钱为2×29=58。 实际上,P老师会选择购买第三种包装,这样需要买22份。虽然最后买到的铅笔数 量更多了,为30×2=60支,但花费却减为27×2=54,比第一种少。 对于第二种包装,虽然每支铅笔的价格是最低的,但要够发必须买2份P1563 [NOIP2016 提高组] 玩具谜题
吐槽 花费了好久好久,发现在以下地方出错 首先虽然我们定义了是从1开始,但是push时,却是从0开始 其次,在index±n的地方出错,应该是<=0时需要+n,大于n的时候-n。 需要注意就是搞清楚什么时候加,什么时候减。 题目 https://www.luogu.com.cn/problem/P1563 #include<bits/stdc++.h>洛谷P1563 [NOIP2016 提高组] 玩具谜题进阶解法
#include<cstdio> #include<cstdlib> struct Man { int f1; int f2; int s; char g[10]; }; int main(void) { int i,j,k,N, M; Man* p=(Man*)malloc(sizeof(Man)*100000); scanf("%d%d", &N, &M); for (i = 0; i < N; i++) scanf【洛谷】P1563 [NOIP2016 提高组] 玩具谜题
原题链接:点我 记录这道题的原因: 出现了“我觉得我没错但是我就是过不了”的问题。 没有找到错因,改了两版,放上来记录一下。也许以后就会了呢。(下次一定 ) 第一版代码:85分,繁琐但是这是我的第一做法。 #include<bits/stdc++.h> using namespace std; int main() { int n,m;P1909 [NOIP2016 普及组] 买铅笔
题目描述 P老师需要去商店买n支铅笔作为小朋友们参加NOIP的礼物。她发现商店一共有 3种包装的铅笔,不同包装内的铅笔数量有可能不同,价格也有可能不同。为了公平起 见,P老师决定只买同一种包装的铅笔。 商店不允许将铅笔的包装拆开,因此P老师可能需要购买超过nn支铅笔才够给小朋luogu P2831 [NOIP2016 提高组] 愤怒的小鸟
题面传送门 数据这么小显然状压dp 考虑状压\(dp_i\)表示打掉的集合为\(i\)时最少抛物线条数。 预处理\(f_{i,j}\)表示过\(i\)点和\(j\)点的抛物线经过的点的集合。 但是这样的转移是\(O(T2^nn^2)\)的。 考虑怎么优化。 很明显我们的\(dp\)转移是无序的。将其变成有序即先打最小的JZOJ 4896. 【NOIP2016提高A组集训第16场11.15】兔子
题目 在一片草原上有 \(N\) 个兔子窝,每个窝里住着一只兔子,有M条路径连接这些窝。更特殊地是,至多只有一个兔子窝有3条或更多的路径与它相连,其它的兔子窝只有1条或2条路径与其相连。换句话讲,这些兔子窝之前的路径构成一张 \(N\) 个点、\(M\) 条边的无向连通图,而度数大于2的点至多有1