【简】题解 AWSL090429 【原子】】的更多相关文章

预处理出每个原子最近的不能合并的位置 枚举当前位置和前面断开的位置合并 发现还是不能过 考虑用选段树优化 但是因为每次转移的最优点是在前面可以合并的范围内 dp值加上当前的到该点的最大值 因为每个位置的最大值每次更新不是只更新一个位置 是一次更新一段位置 所以直接维护复杂度爆炸 有种方法(套路) 是把最值的更新改为值的加减 因为每次是更新一段区间 且每个点到当前的位置的最值是单调不减的 所以每次的修改就可以是一段一段的 可以用单调栈来维护每种值的区间 就可以进行区间修改 #include<bit…
因为这有个时间的限制 并且  求的时间都是前缀和 那么 我们可以根据时间将排序 因为题中没有修改可以直接用背包预处理出答案 但是因为题目ci mi<=1e9   vi<=300 所以发现不能直接背包 发现vi很小 每个商品只能被选一次  能达到的最大的价值就是n*n 因为vi越大 费用单调不减 就可以二分求 #include<bits/stdc++.h> using namespace std; #define ll long long #define C getchar()-48…
因为每次加上一头奶牛 是什么不重要 牛棚之间贡献除清空操作外无影响 就只要考虑 每个牛棚清空分x次 的贡献 x之和为k       求贡献和最小 一个牛棚清空x次 显然平均清空贡献最小 再用等差数列的公式求 之和就是裸的dp #include<bits/stdc++.h> using namespace std; #define ll long long #define C getchar()-48 inline ll read() { ll s=,r=; char c=C; ||c>;…
因为每次只ban一个点 而且不是永久性的 预处理出每个点从上往下和从下往上的最大值 每次询问直接暴力 被ban掉点那行去掉那点的最大值 也可以直接预处理出每行的最大值和次大值 还有种做法貌似可以过 预处理出被ban的点是否在链上 是直接输出原本的最大的值 O(1)回答 不是暴力更新被ban的点会影响的到的那个菱形的区域   数组记录答案避免重复询问 最多这样更新n次 平均一次 n*n/4 总复杂度(n^3)/4 只要常数小+数据水就可以过了 #include<bits/stdc++.h> us…
这题直接换根dp 记录在要转移的点的子树中有多少牛 #include<bits/stdc++.h> using namespace std; #define ll long long #define C getchar()-48 inline ll read() { ll s=0,r=1; char c=C; for(;c<0||c>9;c=C) if(c==-3) r=-1; for(;c>=0&&c<=9;c=C) s=(s<<3)+(s…
先考虑当要选的物品一定时 显然有个贪心 wi越小的要越先选 所以先按wi从小到大拍序 因为发现正着递推要记录的状态很多 并且wi的贡献与后面选了几个物品有关 考虑正难则反 倒着递推 提前计算wi的贡献就可以了 #include<bits/stdc++.h> using namespace std; #define ll long long #define C getchar()-48 inline ll read() { ll s=0,r=1; char c=C; for(;c<0||c…
这是一篇蒟蒻被大佬踩爆后写的笔记 套路 0.贪心(废话)(排序...) 1.dp预处理出要用的东西 2.两头同时dp 3.化简题目中本质相同的东西 转化模型 4.数学计算优化 5.分析题目数据考虑该从哪里dp 6.正难则反 7.数据结构优化 题目(自动舍去0) [简]题解 AWSL090429 [数塔问题] /1/2/ [简]题解 AWSL090429 [噪音] /3/4/ [简]题解 AWSL090429 [市场] /5/ [简]题解 AWSL090429 [价值] /6/ [简]题解 AWS…
传送门:P5283 [十二省联考2019]异或粽子 题目大意: 给一个长度为n的数列,找到异或和为前k大的区间,并求出这些区间的异或和的代数和. QWQ: 考试时想到了前缀异或 想到了对每个数按二进制拆分 最高位取一定比前面所有取优 但是呆住了 没有想到是对前缀异或拆分 对于位运算等操作可以考虑 线性基和trie 因为 ai​ xor aj​=aj​ xor ai 所以吧这种情况算进去就取ans/2 因为 i​=j 时异或为0是最小的 不会影响答案 把各个前缀异或插进数组 询问强制以每个点为前面…
传送门:P4297 [NOI2006]网络收费 题目大意: 给定一棵满二叉树,每个叶节点有一个状态(0,1),任选两个叶节点,如果这两个叶节点状态相同但他们的LCA所管辖的子树中的与他们状态相同的叶节点个数较少(少于1/2),则会产生2f的代价,如果状态不同,则产生f的代价,如果状态相同且LCA管辖子树中与他们状态相同叶节点个数较多,则不产生代价,现在每个节点可以变更状态,但变更状态也有自己的代价,求最小总代价(来自leozhang大佬) QWQ: 因为各个点互相之间的贡献由各个点之间的LCA的…
我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我没看,看不懂. 基本思路:我不会. 参考代码:找Oyk老师和Czj老师去. B. The background of water problem 题目大意(大写加粗的水题):给定$N$个学生和他们$K$个科目的成绩$S_i$,再给出各科目$K_i$的权重顺序$Q_i$,求排名之后,拥有id为$X$的…