首页 > TAG信息列表 > noip2017
1033 [NOIP2017]逛公园 记忆化搜索 比最短路长k的方案数 dp递推算方案数
链接:https://ac.nowcoder.com/acm/contest/26077/1033来源:牛客网 题目描述 策策同学特别喜欢逛公园。 公园可以看成一张 N 个点 M 条边构成的有向图,且没有自环和重边。其中 1 号点是公园的入口, N 号点是公园的出口,每条边有一个非负权值,代表策策经过这条P3959 [NOIP2017 提高组] 宝藏 --状态压缩dp,dfs
#include <bits/stdc++.h> #define dbg(x) std::cerr << #x << "=" << x << "\n" using i64 = long long; constexpr int N = 15; int n, m, lim, ans = 2e9, G[N][N]; int dis[N],f[N][1 << N][N]; voidNC16417 [NOIP2017]奶酪
题目链接 题目 题目描述 现有一块大奶酪,它的高度为 h,它的长度和宽度我们可以认为是无限大的,奶酪中间有许多半径相同的球形空洞。我们可以在这块奶酪中建立空间坐标系, 在坐标系中,奶酪的下表面为 z = 0,奶酪的上表面为 z = h。 现在, 奶酪的下表面有一只小老鼠 Jerry, 它知道奶酪中所有P3956 [NOIP2017 普及组] 棋盘
P3956 [NOIP2017 普及组] 棋盘 分析 首先说可以用dfs写,但是不建议。 本题的主流算法( dfs +记忆化优化),其实从最短路的角度上来讲是基于 dfs 实现的 SPFA (没错,就是那个死了又活了的SPFA),如果这一题数据范围扩大,并且做一些特殊构造,是可以被卡掉的。 而且这数据范围,赛中我大概率不敢写[NOIP2017] 棋盘 (BFS)
题解 用a数组记录棋盘每格的颜色,用b数组记录到达棋盘每格所需的最小花费。从起点(1,1)开始BFS,判断颜色相同,颜色不相同和无色三种情况,对于无色方块不能按正常情况继续BFS,只能判断其周围是否有颜色方格为其续命。最终判断重点位置是否到达,并输出最小花费。 #include<stdio.h>Python实现:P3954 [NOIP2017 普及组] 成绩
文章目录 源代码map()split()input().split()map(int, input().split())多个字符以空格分隔输入接收方式 源代码 a, b, c = map(int, input().split()) zong = int(a * 0.2 + b * 0.3 + c * 0.5) print(zong) map() split() input().split() 将input接收的用户输[NOIP2017 提高组] 列队 题解
[NOIP2017 提高组] 列队 有 \(n\times m\) 的方阵, \(k\) 次询问,每次从其中取走一个人后向上向左重整队伍,询问取走的人是谁 \(n,m,q\leq3\times10^5\) 很好的一道动态开点线段树题。 考虑一下,每次取走一个人会发生什么: \(17\) 所在的行,右边的部分全都向左移动一个; 第 \(m\) 列,从洛谷P3955 [NOIP2017 普及组] 图书管理员
题目链接 纯粹的暴力枚举,复杂度O(n2) 因为题目数据很小,所以很安全,不会超时. #include<bits/stdc++.h> using namespace std; #define N 1005 #define LL long long int book[N];//放书 int flag;//放需求码长度 int user;//放需求码 int n,m;//放书的数量和读者的数量【题解】P3959 - [NOIP2017 提高组] 宝藏
题目大意 题目链接 给出一个包含 \(n\) 个结点,\(m\) 条无向边的无向图。现在任意选定一初始结点,拓展 \(n - 1\) 条边求出原图的一棵生成树。假设从初始结点 \(u\) 到达当前结点 \(v\) 需要经过 \(K\) 个结点(包含初始结点但不包含当前结点),且 \(v\) 与上一个结点之间的无向边长度为luogu P3959 [NOIP2017 提高组] 宝藏
题面传送门 遇到这种按路径长度计算代价的考虑分层。 设\(f_{i,j}\)为树高为\(i\),包含了集合为\(j\)的答案的最小答案。 考虑枚举最后一层是什么,然后从前面转移。 每个最后一层的点从前面所有点中找到最优的点连接上去。 但是其实不是每个点连的边都是最后一层的。 其实如果不是最[NOIP2017 提高组] 逛公园 题解
题目 \(\text{30pts}\) 显然就是这道题。 \(\text{100pts}\) 肯定要跑最短路的。令 \(d_i\) 表示 \(i\) 到 \(n\) 的最短路长度。 \(f_{u,i}\) 表示从 \(u\) 到 \(n\) 长度为 \(d_u+i\) 的路径个数。 \(dis\) 数组显然可以建反图然后跑源点为 \(n\) 的最短路。 考虑 \(f\) 数P3951【NOIP2017 提高组】小凯的疑惑 题解
题目描述 小凯手中有两种面值的金币,两种面值均为正整数且彼此互素。每种金币小凯都有无数个。在不找零的情况下,仅凭这两种金币,有些物品他是无法准确支付的。现在小凯想知道在无法准确支付的物品中,最贵的价值是多少金币?注意:输入数据保证存在小凯无法准确支付的商品。 题目链接 NOIP洛谷 P3957 [NOIP2017 普及组] 跳房子(二分,单调队列优化dp)
传送门 第一年noip的考试题哇,满满的回忆 当年就因为这个题输出-1骗了5分拿了普及一等 解题思路 先二分答案,很显然答案满足单调性。 然后就是一个从限定范围转移过来的线性dp,用单调队列维护一下即可。 判断-1可以根据所有的正数加起来是否大于等于k。 细节还是很多的: dp数组初始[NOIP2017 提高组] 列队
考虑我们需要维护的是这样一个东西。 即可能变化的只有每一行前\(m - 1\)个,和最后一列。 我们考虑对每一行开一个权值线段树,记录原本序列的第\(x\)个是否被一出,且用一个\(vector\)记录多出的部分。 那么很好维护的。 考虑内存的问题,我们用动态开点就行了。 #include<iostream> #inNOIP2017提高组 day2
1.奶酪 题目描述 现有一块大奶酪,它的高度为 h h h,它的长度和宽度我们可以认为是无限大的,奶酪中间有许多半径相同的球形空洞。我们可以在这块奶酪中建立空间坐标系,在坐标系中,奶酪的下表面2017 NOIP2017 day 1
pts: ? T1: 100 T2: 0/40/50 T3: 30 T1 [NOIP2017 提高组] 小凯的疑惑 数论,不定方程,同余,中国剩余定理,构造,找规律 solution: 大表找规律: a * b - a - b 还有个 long long T2 [NOIP2017 提高组] 时间复杂度 模拟,字符串,栈 solution 多组数据跑完一组直接 return 0 了 /jk (我是b【NOIP2017 提高组正式赛】列队 题解
题目大意 有一个 \(n\times m\) 的方阵,每次有 \((x,y)\) 离开,离开后有两个命令 向左看齐。这时第一列保持不动,所有学生向左填补空缺。这条指令之后,空位在第 \(x\) 行第 \(m\) 列。 向前看齐。这时第一行保持不动,所有学生向前填补空缺。这条指令之后,空位在第 \(n\) 行第 \(m\) 列gmoj 5439. 【NOIP2017提高A组集训10.31】Calculate
Related Problem Description input Output Solution 可以根据操作x分类 当x=1或x=2时,暴力维护A或B就好 对于x=3的情况: 我们将原式拆开处理 \[\sum_{i=1}^{n}\lfloor \frac{T-B[i]}{A[i]} \rfloor=\sum_{i=1}^{n}(\lfloor \frac{T}{A[i]} \rfloor-\lfloor \frac{B[i]}{A[i]} \rgmoj 5439. 【NOIP2017提高A组集训10.31】Calculate
Related Problem Description input Output Solution 可以根据操作x分类 当x=1或x=2时,暴力维护A或B就好 对于x=3的情况: 我们将原式拆开处理 ∑ i5459. 【NOIP2017提高A组冲刺11.7】密室
Description 小X 正困在一个密室里,他希望尽快逃出密室。 密室中有N 个房间,初始时,小X 在1 号房间,而出口在N 号房间。 密室的每一个房间中可能有着一些钥匙和一些传送门,一个传送门会单向地创造一条从房间X 到房间Y 的通道。另外,想要通过某个传送门,就必须具备一些种类的钥匙(每种[NOIP2017 提高组] 宝藏
[NOIP2017 提高组] 宝藏 状态压缩好题。下面我们来一一分析一下这道题的总体想法。 容易发现,\(n\leq12\)暗示这道题时间复杂度为指数级别的。 由于题目表明 两个已经被挖掘过的宝藏屋之间的道路无需再开发。 所以,我们开发的路径构成的只能是一棵树,不能是有环的图。 因此,我们可【NOIP2017提高组正式赛】列队
题解 本题的解法是丰富多彩的! 线段树做法是极好的 代码非常之少 一个很显然的想法是维护 \(n+1\) 颗线段树 那要怎么维护才能不爆空间呢? 我们发现尽管 \(n \times m\) 那么大 但 \(q\) 相比 \(n \times m\) 小得多 也就是说变动的点比较少 于是我们抓住这点 考虑只记录变动的点 行【NOIP2017提高A组模拟9.12】Arrays and Palindrome
【NOIP2017提高A组模拟9.12】Arrays and Palindrome[SPJ] 题目 Description Input Output Sample Input 1 6 Sample Output 6 2 1 5 Data Constraint 题解 题意 em……语言组织能力不行,看题吧 题解 结论题 可以证得\(A\)里最多只有2个奇数,否则无解 分情况讨论 0个奇数:\(a\)就noip2017 逛公园
https://www.luogu.com.cn/problem/P3953 k=0: 直接在spfa过程中最短路计数。 没有0边: 定义路径长度的增量为它比最短路多的距离 dp[i][j]表示从1到i,路径长度增量为j的路径条数 枚举一条从u->v,距离为w的边 新的增量为dis(1,u)+w-dis(1,v)+j 即dp[v][ dis(1,u)+w-dis(1,v)+j ]NOIP2017 Day2T3 列队
首先可以观察到这样一个事实,如果 \((x, y)\) 出队,那么只会影响 \(x\) 这一行,以及最后一列的排布。并且可以发现,每次一个人出队,总会对最后一列有影响,因此我们可能需要将最后一列单独拿出来维护。让我们来想一想,什么东西可以支持删除一个数,插入一个数,查询排名为第几的数,显然 \(Splay