首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
【bzoj4551】【NOIP2016模拟7.11】树
】的更多相关文章
【bzoj4551】【NOIP2016模拟7.11】树
题目 在2016年,佳媛姐姐刚刚学习了树,非常开心.现在他想解决这样一个问题:给定一颗有根树(根为1),有以下 两种操作:1. 标记操作:对某个结点打上标记(在最开始,只有结点1有标记,其他结点均无标记,而且对于某个 结点,可以打多次标记.)2. 询问操作:询问某个结点最近的一个打了标记的祖先(这个结点本身也算自己的祖 先)你能帮帮他吗? 分析 此题有很多种方法 暴力+并查集 转了别人的 考虑离线处理. 我们将所有的操作倒序处理,利用并查集进行维护.对于一个修改操 作(即失去标记),相当于将这一…
NOIP2016模拟赛三 Problem B: 神奇的树
题面 Description 有一棵神奇的树.这棵树有N个节点,在每个节点上都有宝藏,每个宝藏价值V[i]金币:对于每条边,每经过一次都要花费C[i]金币. 值得注意的是,每个宝藏只能领取一次(也可以不领):但对于所有的边,如果要多次走这条边,将会多次产生费用. 我们定义 ans[i] 为从点 i 出发能获得的最大金币数量. 现在,请求出 ans[1], ans[2], ..., ans[N] . Input 第一行包含一个整数N (N≤10^5)(N≤10^5) 接下来一行将包含N个整数 V[…
JZOJ 4611. 【NOI2016模拟7.11】接水问题 (贪心+A*+可持久化线段树)
Description: https://gmoj.net/senior/#main/show/4611 题解: 先把A从大到小排序,最小的由排序不等式显然. 考虑类似第k短路的A*的做法. 定义状态为一个已经确定的前缀,它自己的代价显然,它的估价函数为把剩下的数字从小到大填的代价. 以自己代价+估价函数代价放入堆里一直扩展下一个即可,队列中会有\(n^2k\)个,加上求代价的复杂度,时间复杂度:\(O(n^3k)\). 考虑优化扩展,注意假设要在下一位放数字,肯定是从小到大放,所以优化这个无用…
「考试」noip模拟9,11,13
9.1 辣鸡 可以把答案分成 每个矩形内部连线 和 矩形之间的连线 两部分 前半部分即为\(2(w-1)(h-1)\),后半部分可以模拟求(就是讨论四种相邻的情况) 如果\(n^2\)选择暴力模拟是有\(35pts\)的 发现按横坐标排序后,如果有一矩形与当前矩形横向不相邻,则之后矩形都是没有贡献的 所以枚举时比较横坐标视情况跳出 因为会产生贡献的矩形对并不多(不超过\(4e5\),具体还会小),所以这样优化以后可以通过 9.2 模板 暴力跳祖先的话是有\(30pts\)的,经过一番纯玄学特判可…
vue 模拟下拉树
// 使用vue 做表格部分其他部分暂不修改 var app = new Vue({ el: "#freightTbl", watch: { //监听表格数据的变化[使用 watch+nextTick 可以完成页面数据监听的 不会出现闪烁] regFreData: { //深度监听运费表格数据 handler(val, oldVal) { this.$nextTick(function() { var thisSelTreeData = this.regFreTreeData; //每…
[转载]如何在C++03中模拟C++11的右值引用std::move特性
本文摘自: http://adamcavendish.is-programmer.com/posts/38190.htm 引言 众所周知,C++11 的新特性中有一个非常重要的特性,那就是 rvalue reference,右值引用. 引入它的一个非常重要的原因是因为在 C++ 中,常常右值,通俗地讲"在等号右边的"临时变量或者临时对象,我们是无法得到它的修改权限的. 由于类的构造和析构机制,往往产生的临时变量或临时对象的拷贝构造及析构,会带来不少的时间.资源消耗. 也同样由于这样的限…
串门赛: NOIP2016模拟赛——By Marvolo 丢脸记
前几天liu_runda来机房颓废,顺便扔给我们一个网址,说这上面有模拟赛,让我们感兴趣的去打一打.一开始还是没打算去看一下的,但是听std说好多人都打,想了一下,还是打一打吧,打着玩,然后就丢脸了. 一开始注册了一个Hzoi_joker的号,后来反应过来貌似靠挂了挺丢Hzoi的人的,赶紧又注册了一个joker…… 于是乎一批人开始快乐的颓废,直到教练员都看不下去威胁我们要断网才安安静静的答题.由于Hz奇怪的作息时间,我们平均也就打了2个小时多一点的题,连结果都是第二天早上跑完操看的.果然,炸了…
6424. 【NOIP2019模拟2019.11.13】我的订书机之恋
题目描述 Description Input Output Sample Input 见下载 Sample Output 见下载 Data Constraint 题解 lj题卡线段树 求出每个右端点往左第一个跳到的点,可以变成一棵树 如果r1r2(r1<r2)中间没有把两个点分开的弦,那么就是r1的深度 用一个单调栈可以求出往左跳到的点(每次把若干小区间合并),但是有可能一条弦跳到的位置会被向后的一条弦切断 所以再用一个单调栈求出每个右端点向左第一个跨过它的左端点,如果再维护过程中出现了交叉的情…
[CSP-S模拟测试]:砍树(数学+模拟)
题目传送门(内部题1) 输入格式 第一行两个整数$n$,$k$,代表树苗的数量和最大看书的总长度.第二行n个整数$a_i$,代表林先森希望每棵树苗的最终高度. 输出格式 一行一个整数,代表最大可能的d值. 样例 样例输入: 3 4 1 3 5 样例输出: 数据范围与提示 样例解释:第$3$天林先森砍掉了第一和第二棵树苗,第$6$天林先森砍掉了第三棵树苗.总共砍树的长度为$(3-1)+(3-3)+(6-5)=3$米.可以证明更大的d值无法满足要求. 数据范围: 对于$20%$的数据,$a_i ≤…
2019.8.1 NOIP模拟测试11 反思总结
延迟了一天来补一个反思总结 急匆匆赶回来考试,我们这边大家的状态都稍微有一点差,不过最后的成绩总体来看好像还不错XD 其实这次拿分的大都是暴力[?],除了某些专注于某道题的人以及远程爆踩我们的某学车神犇 大约不粘题面也是可以的[越来越懒] T1: 当时我甚至完全没有正解的思路,最后sort骗了四十分跑路 [某种意义上还挺友好的?送你四十分] 然后接下来的六十分,出题人:想都别想 看看正解,线段树分别维护区间里26个字母出现的数量,每次操作变成查询26次[或者一次查询统计26个],然后修改最多26…
C. Okabe and Boxes 思维 模拟 or 线段树
C. Okabe and Boxes 这个题目是一个有点思维的模拟,当时没有想到, 思维就是这个栈的排序这里,因为每次直接排序肯定会t的,所以不可以这么写,那怎么表示排序呢? 就是直接把栈清空,如果栈顶就是我们需要的这个值,那就把这个值直接pop, 但是如果不是呢,就可以直接清空这个栈表示排序,如果栈已经是空的了,说明之前排过序了. 如果不是那就清空(排序),这个有点难想. #include <cstdio> #include <cstring> #include <cstd…
NOIP2016 模拟赛
7.10 T1:求出一个矩阵中平均数大于0的子矩阵的最大面积. T2:给出一个N行的,第I行有n+1-i的倒三角形,从中选取m个数,只有当前数的左上角和右上角都被选是才能选当前数,求选的数字的最大和 T3:给一个有向无环图,求任意两点间距离除以边数的最小值. Sol: T1:n^2枚举行的两端,然后用处理出当前列的前缀和,只有Sum[i]-Sum[j]>0时j+1~i才满足要求 并且要求i-j最大.我们把它按照数值排序,注意Sum[0]也算,排序后从0扫到n就可以得到最小的Id值,每次更新最小的…
UVa 679 小球下落 简单模拟题,树
题目大意:给你一个完全二叉树,并且给他们编号,编号规则为左子树为2*k,右子树为2*k+1,每一个节点 上都有一个开关,初始时开关都处于关闭状态,小球碰到节点就会改变该点的开关的状态.然后给你I个小球, 要求输出第I个小球最终到达的叶子节点的编号. 思路分析:简单的模拟题,主要是要对二叉树的结构和编号原则清楚,有D层,则一共有(1<<D)-1个节点,然 后就可以开一个数组用来储存每一节点的状态,初识化为0,表示均处于关闭状态,然后就开始进行模拟,判断是否 越界通k>n?注意最后 要输出k…
ZOJ 3780 - Paint the Grid Again - [模拟][第11届浙江省赛E题]
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3780 Time Limit: 2 Seconds Memory Limit: 65536 KB Leo has a grid with N × N cells. He wants to paint each cell with a specific color (either black or white). Leo has a magical bru…
NOIP2016模拟赛三 Problem C: 不虚就是要AK
题目大意 给定一棵带有边权的树, 问你在树上随机选两个点, 它们最短路径上的边权之和为\(4\)的倍数的概率为多少. Solution 树分治. 没什么好讲的. #include <cstdio> #include <cctype> #include <vector> #include <algorithm> #include <cstring> using namespace std; namespace Zeonfai { inline in…
NOIP模拟 Work - 二分 + 树状数组 / ???
题目分析 如果没有最后的注意事项,此题就是二分裸题.有了注意事项,会有两种思路: 在线:二分天数t,并在主席树上求1~t天中大于d(浪费的时间)的时间之和以及数量,答案即为:sum - d * cnt 无奈写的丑,卡卡只能过6.7个点. 离线:简单考虑,既然要求大于等于d的和以及数量,不妨按照d来排序,再把t也排序.每次将大于等于d的t加入树状数组(记录和以及数量),这样就能直接查出和和数量. AC. code 树状数组 AC #include<bits/stdc++.h> using nam…
[考试反思]0801NOIP模拟测试11
8月开门红. 放假回来果然像是神志不清一样. 但还是要接受这个事实. 嗯,说好听点,并列rank#7. 说难听点,垃圾rank#18. 都不用粘人名就知道我是哪一个吧... 因为图片不能太长,所以就不截图了. 你是全场最垃圾的,T1唯一一个hzoi里爆零的,明白没有? 全场最低分40.(会打sort即可)呃...除了我 T2已经打了一个20分的状压,结果测试点分治RE0覆盖掉了,我??? T3是好久没有用到的一个思路,想到什么就打一句注释记录思路,结果就...除了sdfz远程同网考的,全场唯一一…
NOIP模拟测试11
这次考试T1想到了正解没有去实现,然后就死了,不过我估计就算想到正解也会挂(26^2和暴力一个分),肝了两个小时T2屁都没蹦出来,T3没有搞清那个式子的含义. (不过一分没挂) T1:string 开26棵线段树维护,还有一种更快的方法:对于每个树上的节点,只有左右儿子字符相同时才更新,不然不更新,这种打法将26换成了较小的常数,并且不需要memset,真是出家旅行必备骗分之良器 #include <bits/stdc++.h> typedef long long LL; inline int…
「2019-8-13提高模拟赛」树 (tree)
传送门 Description 你有一个 \(n\)个点的树,第 \(i\)个点的父亲是\(p_i\).每个点有一个权值 \(t_i\) 和一个颜色黑或者白.所有点一开始都是白色. 你要进行 \(m\)次操作,每次给一个点换颜色(从白变成黑,从黑变成白),在每次操作结束时,问有多少个白点 \(i\) 的子树内黑点的个数大于 \(t_i\). Solution 相当于每次修改一条链的\(t_i\),让它们\(+1/-1\) 树链剖分后分块处理 复杂度\(O(n\sqrt n \log n)\)…
模拟赛 提米树 题解 (DP+思维)
题意: 有一棵棵提米树,满足这样的性质: 每个点上长了一定数量的Temmie 薄片,薄片数量记为这个点的权值,这些点被标记为 1 到 n 的整数,其 中 1 号点是树的根,没有孩子的点是树上的叶子. 定义\((a,b)\)是一对相邻的叶子,当且仅当没有其它的叶子节点在 DFS 序上在a,b 之间. 每对相邻的叶子都会产生一个代价,代价为 a 到 b 路径上(不包含 a,b)的点中,最大点权值. 提米树可以提供决心,一棵提米树能提供的决心的数量是树上所有叶子上长的 Temmie 薄片数量和,减去所…
【bzoj4552】【Tjoi2016&Heoi2016】【NOIP2016模拟7.12】排序
题目 在2016年,佳媛姐姐喜欢上了数字序列.因而他经常研究关于序列的一些奇奇怪怪的问题,现在他在研究一个难题,需要你来帮助他.这个难题是这样子的:给出一个1到n的全排列,现在对这个全排列序列进行m次局部排序,排序分为两种:1:(0,l,r)表示将区间[l,r]的数字升序排序2:(1,l,r)表示将区间[l,r]的数字降序排序最后询问第q 位置上的数字. 分析 二分答案, 把二分出的ans与原序列比较,小于ans的数改为-1,大于ans的数改为1. 对于输入的每一个修改,用线段树来处理. 最后求…
[CSP-S模拟测试]:超级树(DP)
题目传送门(内部题5) 输入格式 一行两个整数$k$.$mod$,意义见上. 输出格式 一行一个整数,代表答案. 样例 样例输入1: 2 100 样例输出1: 样例输入2: 3 1000 样例输出2: 样例输入3: 20 998244353 样例输出3: 数据范围与提示 样例解释:对于第一组样例,将节点如图编号,共有9条不同的路径:1,2,3,1-2,2-1,1-3,3-1,2-1-3,3-1-2. 限制与约定: 对于$10\%$的数据,$k \leqslant 4$.对于$40\%$的数据,$…
[NOIP模拟测试11] 题解
A.string 和河北的一道省选题很像.考场上写的暴力桶排,正解其实就是优化一下这个思路. 开线段树维护字符串中每个字母出现的次数.对于每条询问,区间查询.区间赋值维护即可. 另外,本题卡常严重,正解能被卡到40到90不等.所以直接循环展开乱搞一波? 暴力40分代码: #include<cstdio> #include<iostream> #include<cstring> using namespace std; ; ],n,m; char str[N]; int…
[JZOJ4684] 【GDOI2017模拟8.11】卡牌游戏
题目 描述 题目大意 有111到2n2n2n牌,一开始分别给两个人,每人nnn张. 轮流出牌,给出对手出牌的顺序,若自己的牌更大,就记一分. 在中间的某个时刻可以改变游戏规则. 问最大的分数. 思考历程 显然,一定是把大的放分界点左边,把小的放右边. 那可以枚举分界点,两边分别计算就可以了.时间复杂度为O(n2)O(n^2)O(n2),朴素的暴力算法. 接下来我就想有没有什么数据结构可以在枚举分界点的时候维护左右两边的答案. 想不出-- 换种简单的思路. 当分界点从左向右移动的时候,左边的答案会…
GDOI模拟4.11~4.13总结
总体情况 省选前的第一场模拟,就连续三天垫底滚粗了. 三天下来,只做了第一天的签到题,然后再做了一些水题的暴力,还不得分. 三天分数:100/400+40/400+90/400=230/1200,得了1/5的分不到,得分率是非常低的. 暴力不会打,又打不对. 日常点剖 这三场模拟中,每天都有一道点剖题,但是我每天都不会做. 尽管我会点剖,但是并不能实际运用. 事实上,点剖也算是很套路的题了. 实际上,我认为只有套路题是稳定得分点,其他的题都显得很看现场发挥. 现场发挥能力在我看来,是个玄学的东西…
【模拟8.11】将军令(贪心&&树形DP)
只看45分的话,是树形DP....(当然也有能拿到70分+的大佬) 40分: 只考虑k==1的情况,树形DP 所以每个节点可能被父亲,自己,儿子控制 设f[MAXN][3],0表示儿子,1表示自己,2表示父亲 f[i][1]+=min(f[to][0],f[to][1],f[to][2])(因为自己控制自己,儿子怎样都行) f[i][0]+=min(f[to][0],f[to][1]) 但是因为i的儿子必须有一个自己控制自己,所以还要判断所加值中是否有f[to][1],如果没有 f[i][0]+…
【模拟8.11】星空(差分转化,状压DP,最短路)
一道很好的题,综合很多知识点. 首先复习差分: 将原来的每个点a[i]转化为b[i]=a[i]^a[i+1],(如果是求和形式就是b[i]=a[i+1]-a[i]) 我们发现这样的方便在于我们可以运用前缀和的形式,求出单点值,当然,差分一般支持区间修改 单点查询,同时我们发现异或也满足转化的性质,我们发现异或的区间修改,也可以化为单点修改 然后进行问题转换:在一个序列中按要求修改端点,问最少修改多少次区间全部为0 把原来的每个数转化为差分形式,注意要多加一个b[0]=b[0]^b[1]…
[调试笔记] 10.8模拟赛11 T4 甜圈
这题正解线段树维护哈希,同机房神犇已经讲的很明白了.这里只说sbwzx在调试的时候犯的sb错误. 1.关于pushdown和update 众所周知,sbwzx一写带lazy的线段树,就必在pushdown和update上花式写挂.那么这次是怎么写挂的呢?快和小编一起来看看吧. 挂掉的码: ll tree[maxn<<2],lazyp[maxn<<2],lazyadd[maxn<<2]; void updateadd(int rt,int w){ tree[rt]*=w;…
[NOIP模拟46]鼠树
神仙题. 首先不考虑把黑点变白,发现每个白点的信息与它的归属点是相同的.可以在线段树中只维护黑点的信息,再记录$DFS$序上每个点之前黑点个数的前缀和,每次操作可以二分出该点的归属点进行操作. 具体维护黑点管辖点的个数与它的权值,及前两者乘积之和.一些其他的点数可以通过子树大小减管辖点总和得到.两个修改操作直接线段树上修改即可. 再考虑黑点变白的情况.每次把黑点变白后,它管辖点的归属点改变,但权值不变,可以在线段树中记录下当前点真实权值与它归属点权值的差,删点时做子树加,每次询问用归属点的权值加…
模拟赛:树和森林(lct.cpp) (树形DP,换根DP好题)
题面 题解 先解决第一个子问题吧,它才是难点 Subtask_1 我们可以先用一个简单的树形DP处理出每棵树内部的dis和,记为dp0[i], 然后再用一个换根的树形DP处理出每棵树内点 i 到树内每个点的距离和,记为dp[i], 好,现在分两个连通块跟三个连通块两种情况讨论 两个连通块 把两棵树A,B合并到一起,我们得先确定两个连接的点, 若其分别为 i,j,不难发现答案就是 dp0[A] + dp0[B] + dp[i] * size[B] + dp[j] * size[A] + size[…