[NOIP模拟46]鼠树】的更多相关文章

神仙题. 首先不考虑把黑点变白,发现每个白点的信息与它的归属点是相同的.可以在线段树中只维护黑点的信息,再记录$DFS$序上每个点之前黑点个数的前缀和,每次操作可以二分出该点的归属点进行操作. 具体维护黑点管辖点的个数与它的权值,及前两者乘积之和.一些其他的点数可以通过子树大小减管辖点总和得到.两个修改操作直接线段树上修改即可. 再考虑黑点变白的情况.每次把黑点变白后,它管辖点的归属点改变,但权值不变,可以在线段树中记录下当前点真实权值与它归属点权值的差,删点时做子树加,每次询问用归属点的权值加…
T1 数数 解题思路 大概是一个签到题的感觉...(但是 pyt 并没有签上) 第一题当然可以找规律,但是咱们还是老老实实搞正解吧... 先从小到大拍个序,这样可以保证 \(a_l<a_r\) 直接去掉绝对值. 然后就可以推出如下柿子: \[\displaystyle\sum_{l=1}^{k}-a_l\times(k-l)+\sum_{r=2}^{k}a_r\times a_r(r-1) \] \[\displaystyle\sum_{i=1}^{k}a_i\times (2\times i-…
给了签到题,但除了签到题其他的什么也不会.... T1 数数 人均$AC$,没什么好说的,就是排个序,然后双指针交换着往中间移 1 #include<bits/stdc++.h> 2 #define int long long 3 using namespace std; 4 const int NN=3e5+5; 5 int n,a[NN],ans[NN],id[NN],cha[NN]; 6 inline bool cmp(int a,int b){return a>b;} 7 inl…
A. 数数 排好序从两头贪心即可 B. 数树 首先很容易想到容斥 如果选择的边集的相关点集有点的度数大于 \(1\) 是不合法的 也就是说一定形成若干条长度不一的链 要给这些链上的点安排排列中的数,方案数其实就是 \((n-k)!\) 因为一条链开头的值确定了整条链的值就确定了 发现暴力算是 \(2^n\),考虑选择边集数量一定时贡献是否可以一起算 树形背包即可,算出以 \(1\) 为根的子树内选 \(k\) 条边的方案数 由于入度出度不超过 \(1\) 的限制,\(dp\) 加两维 \(0/1…
脑袋确实是不好使了需要回家暴颓治疗 数数数树鼠树 真好玩. 数数 大水题一个,妥妥的签到题目,然后... 我没签上 气展了!!! 其实我还是想麻烦了. 就是我们实际上就是排序之后每一次找头上和尾巴上的就行 #include<bits/stdc++.h> using std::cout; using std::endl; #define try(i,a,b) for(register signed i=a;i<=b;++i) #define throw(i,a,b) for(registe…
题目分析 如果没有最后的注意事项,此题就是二分裸题.有了注意事项,会有两种思路: 在线:二分天数t,并在主席树上求1~t天中大于d(浪费的时间)的时间之和以及数量,答案即为:sum - d * cnt 无奈写的丑,卡卡只能过6.7个点. 离线:简单考虑,既然要求大于等于d的和以及数量,不妨按照d来排序,再把t也排序.每次将大于等于d的t加入树状数组(记录和以及数量),这样就能直接查出和和数量. AC. code 树状数组 AC #include<bits/stdc++.h> using nam…
传送门 今天的送分题. 首先考虑每次给要围上栅栏的矩阵里的整体加上1,如果栅栏被撤销就整体减1,最后比较两个点的值是否相同来进行判断. 然而这样的效果并不理想,很容易卡掉. 进一步思考,我们第iii次操作整体加上iii? 不行. 整体加上i2i^2i2? 还是不行. 等等. 貌似可以整体加上randrandrand. 于是欣喜地过了. 然而考完之后神仙出题人告诉我说整体加法可以被卡,而如果整体异或则被卡掉的几率很小. 于是重新写了一遍异或的版本. 代码…
A:颜色问题 题目:http://ch.ezoj.tk/contest/CH%20Round%20%2358%20-%20OrzCC杯noip模拟赛day2/颜色问题 题解:算一下每个仆人到它的目的地的时间取max即可 代码: #include<cstdio> #include<cstdlib> #include<cmath> #include<cstring> #include<algorithm> #include<iostream&g…
线段树是一种作用于静态区间上的数据结构,可以高效查询连续区间和单点,类似于一种静态的分治.他最迷人的地方在于“lazy标记”,对于lazy标记一般随我们从父区间进入子区间而下传,最终给到叶子节点,但还有一种做法就是对于作用域一整个区间的标记,就将其放置在此区间节点,查询时再结算其贡献,但无论怎样我们都要保证我们查询到的区间信息的真实性完整性,这就意味着我们接触一个区间若要了解到他的全部有用信息,并不用进入其下层区间(以上两种标记方式往往再结合出现时有巧妙的用处).于是我们必须高效地合并子区间的信…
6.17考试总结(NOIP模拟8) 背景 考得不咋样,有一个非常遗憾的地方:最后一题少取膜了,\(100pts->40pts\),改了这么多年的错还是头一回看见以下的情景... T1星际旅行 前言 考试的时候用一个自己感觉非常妙的思路骗了20pts,因为是双向边,所以分成两个边存,边的tot从2开始,这样可以保证没一组边的序号通过取\(xor\)可以相互转化. 然后对于每一个边记录经过次数,并且记一下经过次数为1和2的边的总数,然后对于dfs时转移的就是状压的每组边的状态,当然也可以拿Hash存…