NOIP2017 D2T3 题解】的更多相关文章

题面 这种数据范围不是乱搞dfs就是乱搞状压DP 首先应该通过任一方式求出a和b的值: 任意一条抛物线只用两头猪就可以确定,所以我们N^2枚举,并把在这两头猪的抛物线上的猪都存进状态state[i][j]; 然后枚举任意两个还没消灭的小猪i,j:f[i|state[j][k]]=min(f[i|state[j][k]],f[i]+1); 因为有些小猪只能单独被消灭,所以:f[i|(1<<j-1)]=min(f[i|(1<<j-1)],f[i]+1); 然后就好了: #include…
[luogu P3960] [noip2017 d2t3] 队列 题目描述 Sylvia 是一个热爱学习的女♂孩子. 前段时间,Sylvia 参加了学校的军训.众所周知,军训的时候需要站方阵. Sylvia 所在的方阵中有n \times mn×m名学生,方阵的行数为 nn,列数为 mm. 为了便于管理,教官在训练开始时,按照从前到后,从左到右的顺序给方阵中 的学生从 1 到 n \times mn×m 编上了号码(参见后面的样例).即:初始时,第 ii 行第 jj 列 的学生的编号是(i-1)…
题目描述 Sylvia 是一个热爱学习的女♂孩子. 前段时间,Sylvia 参加了学校的军训.众所周知,军训的时候需要站方阵. Sylvia 所在的方阵中有n \times mn×m名学生,方阵的行数为 nn,列数为 mm. 为了便于管理,教官在训练开始时,按照从前到后,从左到右的顺序给方阵中 的学生从 1 到 n \times mn×m 编上了号码(参见后面的样例).即:初始时,第 ii 行第 jj 列 的学生的编号是(i-1)\times m + j(i−1)×m+j. 然而在练习方阵的时候…
day1t1的结论貌似在哪见过,自己稍微验证了一下貌似没记错就没有管了.t2一道很好(keng)的模拟题啊t3自己做题好慢啊,想出来dp打上去最后几分钟才过了大样例,我写的是记忆化搜索,判-1很好判,没时间加上去了可惜了,不过还是自己做题太慢了.然后由于没拍,不确定自己dp对不对,就特判了k=0粘了一个暴力,没想到暴力错了,70变成50...基础不扎实gg 100+100+50=250  好菜啊t3没A掉 day2t1看完题就开始打,没注意算距离时减一下就变成两倍了会爆long long,但好像…
题目描述 参与考古挖掘的小明得到了一份藏宝图,藏宝图上标出了 n 个深埋在地下的宝藏屋, 也给出了这 n 个宝藏屋之间可供开发的 m 条道路和它们的长度. 小明决心亲自前往挖掘所有宝藏屋中的宝藏.但是,每个宝藏屋距离地面都很远, 也就是说,从地面打通一条到某个宝藏屋的道路是很困难的,而开发宝藏屋之间的道路 则相对容易很多. 小明的决心感动了考古挖掘的赞助商,赞助商决定免费赞助他打通一条从地面到某 个宝藏屋的通道,通往哪个宝藏屋则由小明来决定. 在此基础上,小明还需要考虑如何开凿宝藏屋之间的道路.…
我可去他的吧.... ==============先胡扯些什么的分割线================== 一道NOIP题我调了一晚上...(其实是因为昨晚没有找到调试的好方法来的说...) 曾经我以为我写完了然后全WA 0分 发现 2 1 2 1 1 1 1 这组数据能把我卡掉(我都不知道怎么过样例的)... 然后就开始调就精神崩溃就放弃治疗就划水就过去了一下午和一晚上... 今天我立(砾)志要完成这道题. 上luogu打卡 两个号(不要问我为啥两个号)分别: 然后说我调不出WA的题我就很绝望…
非常巧妙的 \(O(n^23^n)\) 做法. 题目的本质是要求一棵生成树,使得其每条边的长度与这条边的起点深度乘积的和最小. 我们使用状压 DP,考虑到当前状态与已经打通的点和深度有关,不妨设 \(f(S,x)\) 为当前所打通点集合为 \(S\),且当前树深度为 \(x\) 时的最小花费.状态转移方程 \[f(S,x)=\min_{S_0\subsetneq S}\left\{f(S_0,x-1)+x\sum_{u\in S \backslash S_0}\min_{v\in S_0}\{w…
https://www.luogu.org/problemnew/show/3954 https://www.luogu.org/problemnew/show/3955 https://www.luogu.org/problemnew/show/3956 https://www.luogu.org/problemnew/show/3957 T1 甚至不想用c++写 a,b,c=map(int,input().split(' ')) print((a+a+b+b+b+c+c+c+c+c)//10…
这题我改了三天,考场上部分分暴力拿了50,考完试发现与正解很接近只是没写出来. 对于每一行和最后一列建n+1颗线段树,维护前缀和. 复杂度qlogn 假如你移动一个坐标为(x,y)的人,你要将第x行线段树中前缀和为y处的值变为0,再将其移至最后一列的末尾,然后将最后一列中前缀和为x处的值变为一,并将这个位置上的数添加到第x行线段树的末尾. #include<bits/stdc++.h> using namespace std; int n,m,q; typedef long long ll;…
重新写了一下去年的题来看看自己到底是有多傻逼. 小凯的疑惑 打表. 时间复杂度 搞了一大坨题面,但是真正有用的信息只有几个: 判断他给你的复杂度是多少. 判断当前循环进不进的去. 判断当前循环产生的贡献. 判断当前的变量冲突和匹配. \(1\)傻逼,\(2,3\)就是分四种情况讨论一下就可以了,为了做\(2\)我们要开一个栈来记录之前所有的循环. 然后为了做\(2\)而开的栈,恰好就把\(4\)顺便做掉了. 所以代码巨短. //100 #include<bits/stdc++.h> #defi…
考试的时候一点思路没有,最近听福州的神仙的一些做法. 想自己推一下. 题目大概是这样的 \(a_i = \frac{i\ *\ a_{i - 1} \ + \ i\ * \ (i\ -\ 1)\ * \ a_{i - 2}}{2}+(-1)^i * (1 - \frac{i}{2})\) \(s_i = \sum_{i = 1}^n C^{n}_{n - i} * (n - i + 1) a_i\) 设母函数\(S(x) = \sum_{i = 0}^{\infty} s_i x^i\) \(G…
noip2017 D2T3 列队 某zz选手当时直接放弃了写了50还写错了 题目大意: 有一个n行m列的方阵,第i行j列的点编号为(i-1)m+j 每次把第x行y列的点拿出来,然后把这一行它之后的点都向左推,把最后一列x行之后的点都向上推 然后把拿出来的点放到最后一个位置,询问这个点的编号 思路: 因为n+q并不大 可以动态开点每行维护一个权值线段树 并对最后一行单独维护 对于新进来的点使用vector维护 #include<iostream> #include<cstdio> #…
下面是边考试边写的严肃版退役记\(:D\) Day0 其实我本来想取个这个名字:\(NOIP2018\)提高组复赛试题解析 但是这个博客自己求生欲望太强自己改名了. 先占个坑. noip考前毒奶 \(Day 1\) \(t1\) 模拟. \(t2\) tarjan. \(t3\) 线段树. \(Day 2\) \(t1\) 简单贪心. \(t2\) 树形Dp,决策单调性. \(t3\) 斗地主斗地主斗地主斗地主斗地主斗地主斗地主. Day1 简单贪心奶中了,树形Dp奶中了. 不扯了,讲讲考炸的原…
列队,NOIP2017 TG D2T3. 树状数组经典题. 题目链接:洛谷. 题意: Sylvia 是一个热爱学习的女孩子. 前段时间,Sylvia 参加了学校的军训.众所周知,军训的时候需要站方阵. Sylvia 所在的方阵中有\(n \times m\)名学生,方阵的行数为 \(n\),列数为 \(m\). 为了便于管理,教官在训练开始时,按照从前到后,从左到右的顺序给方阵中 的学生从 \(1\) 到 \(n \times m\) 编上了号码(参见后面的样例).即:初始时,第 \(i\) 行…
相关链接: noip2018总结 noip2017是我见过的有史以来最坑爹的一场考试了. 今年北京市考点有一个是我们学校,我还恰好被分到了自己学校(还是自己天天上课的那个教室),于是我同时报了普及提高,一天半的时间都考了. 这次考试总的来说基本上都爆炸了.虽然都拿了一等奖,但这根本不能说明问题,从中可以看出我在敲代码学习上还是问题百出. 下面我分两篇来总结一个kubi的OIer的解题思路及心得,当然包括正解.然而我莫名其妙的打了好长好长……难道我太勤奋了? OIer常识:本文所有log均以2为底…
QAQ--由于没报上名并没能亲自去,自己切一切题聊以慰藉吧-- 可能等到省选的时候我就没有能力再不看题解自己切省选题了--辣鸡HZ毁我青春 D1T1 小凯的疑惑 地球人都会做,懒得写题解了-- D1T2 时间复杂度 分类讨论+递归就行了,没啥思维含量,略. D1T3 逛公园 这题好劲啊-- 看见\(k\le 50\)应该能想到这是一个\(O((n+m)k)\)的DP,由于题目要求的是比最短路长度长至多\(k\)的路径条数,因此状态定义应该是定义\(f_{i,j}\)表示从\(i\)走到终点,长度…
终于做完了…… 场上预计得分:?(省一分数线:295) 由于看过部分题解所以没有预计得分qwq 题解: D1T1 小凯的疑惑 题面 震惊!一道小学奥数题竟难倒无数高中考生! 欢迎大家以各种姿势*和谐*出题人 证明见这篇博客 #include<algorithm> #include<iostream> #include<cstring> #include<cstdio> #include<cmath> #include<queue> #…
题解[NOIP2017] 列队 题面 解析 看到这题时感觉这个编号很难维护啊? 后来看了lzf大佬的题解才会.. 首先,考虑一个稍微暴力的做法, 维护每一行的前\(m-1\)个人和最后一列的\(n\)个人的编号, 也就是用\(n+1\)个区间分开维护 设当前询问\((x,y)\), 那么就在第\(x\)行中把它删掉, 再把最后一列的对应第\(x\)行的人加入第\(x\)行中, 最后将询问的人加入最后一列. (当然如果询问的人在最后一列要特判) 但显然这样时间和空间都会炸... 于是考虑优化, 首…
[题解]NOIP2017 提高组 简要题解 小凯的疑惑(数论) 不讲 时间复杂度 大力模拟 奶酪 并查集模板题 宝藏 最优解一定存在一种构造方法是按照深度一步步生成所有的联通性. 枚举一个根,随后设\(dp(i,j)\)表示最大深度为\(i\)且当前联通的集合是\(j\)的最小答案.预处理\(dis(u,j)\)表示当\(j\)集合内的点都存在时,\(u\)到这些点的最短的最短边. 转移: \[ dp(i,j)=\min \{dp(i-1,j),dp(i-1,s)+(i-1)\times \su…
[题解]NOIP2017逛公园(DP) 第一次交挂了27分...我是不是必将惨败了... 考虑这样一种做法,设\(d_i\)表示从该节点到n​节点的最短路径,\(dp(i,k)\)表示从\(i\)节点到\(n\)多走至多\(k\)距离的方案数.转移相当于枚举走哪条边,状态的变化是如果走这条边会比最短路多多少. 转移方程 \[ dp(i,k) =\sum_{(i,u,w)\in E} dp(u,k-(w-(d_i-d_u)) \] 直接用dfs实现转移(记得判环)即可. ... ... ... 但…
作为一个好人(验题人),我给大家奉上下这套题的题解,并且预祝大家这套题能够AK: T1题面:Alice现在有n根木棍,他们长度为1,2,3....n,Bob想把某一些木棍去掉,使得Alice剩下的木棍任意3根不能构成三角形.Bob想知道至少他需要去掉多少根. 题解:不难发现,这一题所求为在[1,n]中有多少个数不是斐波那契数,因为n的范围很小,直接枚举即可. #include<iostream> #include<cstdio> #include<cstring> #d…
题目描述 策策同学特别喜欢逛公园.公园可以看成一张NNN个点MMM条边构成的有向图,且没有 自环和重边.其中1号点是公园的入口,NNN号点是公园的出口,每条边有一个非负权值, 代表策策经过这条边所要花的时间. 策策每天都会去逛公园,他总是从1号点进去,从NNN号点出来. 策策喜欢新鲜的事物,它不希望有两天逛公园的路线完全一样,同时策策还是一个 特别热爱学习的好孩子,它不希望每天在逛公园这件事上花费太多的时间.如果1号点 到NNN号点的最短路长为ddd,那么策策只会喜欢长度不超过d+Kd + Kd…
题目大意:有一个$n \times m$的方阵,第$i$行第$j$列的人的编号是$(i-1) \times m + j$. 现在有$q$个出列操作,每次让一个人出列,然后让这个人所在行向左看齐,再让最后一列向前看齐,最后让这个人站到第$n$行第$m$列的位置. 你需要输出每次出列的人的编号. 题解:可以每行维护一棵平衡树,再给最后一列维护一棵平衡树(虽然正解是用树状数组). 发现每行的人初始编号是连续的,而对于$9 \times 10 ^ {10}$的人数,$3 \times 10 ^ {5}$…
题面 题解 我们考虑使用一个并查集维护空洞之间的关系. 如果两个空洞能相互到达,那么它们的祖先也是相同的. 枚举从哪一个空洞开始,能否到达奶酪的上表面. 如果能到达就输出Yes,否则输出No. 注意开long long. 代码 #include <bits/stdc++.h> #define itn int #define int long long #define gI gi using namespace std; inline int gi() { int f = 1, x = 0; c…
题目描述 小凯手中有两种面值的金币,两种面值均为正整数且彼此互素.每种金币小凯都有 无数个.在不找零的情况下,仅凭这两种金币,有些物品他是无法准确支付的.现在小 凯想知道在无法准确支付的物品中,最贵的价值是多少金币?注意:输入数据保证存在 小凯无法准确支付的商品. 输入输出格式 输入格式 两个正整数 \(a\) 和 \(b\),它们之间用一个空格隔开,表示小凯中金币的面值. 输出格式 一个正整数 \(N\),表示不找零的情况下,小凯用手中的金币不能准确支付的最贵的物品的价值. 输入输出样例 输入…
题目大意 有一个 \(n\times m\) 的方阵,每次有 \((x,y)\) 离开,离开后有两个命令 向左看齐.这时第一列保持不动,所有学生向左填补空缺.这条指令之后,空位在第 \(x\) 行第 \(m\) 列. 向前看齐.这时第一行保持不动,所有学生向前填补空缺.这条指令之后,空位在第 \(n\) 行第 \(m\) 列. 最后 \((x,y)\) 回到 \((n,m)\) 现在问每次离队的人的编号. \((i,j)\) 的编号是 \((i-1)*m+j\) 题解 对每一行前 \(m-1\)…
T1小凯的疑惑 小凯手中有两种面值的金币,两种面值均为正整数且彼此互素.每种金币小凯都有 无数个.在不找零的情况下,仅凭这两种金币,有些物品他是无法准确支付的.现在小 凯想知道在无法准确支付的物品中,最贵的价值是多少金币?注意:输入数据保证存在 小凯无法准确支付的商品. Solution 2017数论题,感觉是历史以来最难的一道. 对于ax+by=c(a>=0,b>=0)当方程无解是,必定为x<0&&y>0且下一组解x>0&&y<0那x为…
目录 D1T1精妙证明: D1T3 D2T2 几道水题就不写了.... D1T1精妙证明: 把ax+by = z 的z按照模a剩余系分类 由于\((a,b)=1\)所以对于每个\(k\in[0, a)\), \(k\cdot b\)都在不同剩余系内!!(反证法) 那么自然最大的取不到数在(a-1)*b的剩余系内, 也就是\((a-1)*b - a = ab-a-b​\) D1T3 orz GXZ:https://www.cnblogs.com/GXZlegend/p/7838900.html (…
题目链接:奶酪 这道题还是很水的,在下拿了满分. 并没有用什么高级的算法,我讲一下基本思路. 我们把每个洞都视为一个节点. 我们读入相关数据后,就先进行预处理,通过每个节点的信息和题目的规定,建立一张无向图,两个能相通的洞对应的节点之间有一条无向边,这样我们就建立好了一张图. 在建图的时候,我们还需要干一件事,那就是记录哪些是起点,哪些是终点. 接下来我们就对每一个节点进行bfs就行了,这样就可以了. 我们再结合代码讲解一下: #include<cstdio> #include<cstr…
还是神奇的链接 上面依然是题目. 这道题依然很简单,比起2015年的普及组t2好像还是更水一些. 不过这道题能讲的比第一题多. 我们一起来看一下吧! 这一题,我们首先将书的编号全部读入,存在一个数组里. 接下来我们需要对这个数组进行一个操作,那就是用sort排序,因为题目中说要求符合条件的编号最小的一本书,这样的话,排完序,操作会更方便,在后面就能体现. 排完序,我们采取在线处理,因为如果把需求全部读入后,再做,纯属浪费空间.所以我们边读边做. 那么接下来我们要做的就是把需求编号和书的末尾几个数…