![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
训练赛
文章平均质量分 92
backordinary
上海理工大学mx
展开
-
M-Upanishad
M-Upanishad给出n个元素的数组a和m个区间询问。每次询问你区间内出现偶数次的所有元素的异或和。首先可以想到,如果是条件是奇数显然要好处理不少的(直接区间xor),偶数实在不知道怎么处理。暴力 暴力是不可能暴力的,优雅一点,写莫队吧。很好,TLE了。实际上偶数次出现可以转化为(区间内不同元素的异或)xor(区间异或)。那么区间内不同元素的异或怎么搞呢?上莫队!! 我们可以将询问离线并按照r排序,每次扩展右边界至当前询问,维护每一个元素离当前r最近出现的位置,并将这个位置之前出现的位置全部置0原创 2020-10-29 17:04:04 · 308 阅读 · 0 评论 -
巨木之森-牛客小白月赛27-A
A-巨木之森比较显然可以看出来的是从x点出发的时候想要物资消耗最少最后停止的点应该是离x最远的叶子节点,而且消耗是所有边权∗2−x到该叶子节点的路径长所有边权*2-x到该叶子节点的路径长所有边权∗2−x到该叶子节点的路径长。然后,对于树上任何一点,离他最远的叶子节点一定是树的最长的链(直径)的两段其中的一个。我们把每个结点作为初始点的消耗计算出来后贪心求最多可以有几个。求直径直接dfs就可以了,同时dfs两次记录所有的点到直径的两个端点的距离。/*#include<queue>#incl原创 2020-08-25 15:44:30 · 175 阅读 · 0 评论 -
E- 牛妹游历城市
E- 牛妹游历城市一看n的范围果断放弃朴素的枚举每一对点求最短路的想法。其实看到题目二进制,算法一般都和二进制沾边的。可以把二进制的每个结点作为特别的中转站,所有结点连边可能的情况<=它二进制的位数,所以可以将后者作为连边的条件然后在取最短路的时候判断是不是有效的边就可以了,但是,本来是想在求最短路的时候加个判断来只有lowbit等于当前权值时进行放缩,后来想想没必要,因为两个结点有多个中转站可以走最短的那个肯定是lowbit那一个,所以直接最短路即可。#include<queue>原创 2020-08-24 15:25:57 · 165 阅读 · 0 评论 -
Bonuses on a Line
B. Bonuses on a Line给出线段上的点坐标,一个人在原点,可以走t的路程,问最多可以经过几个点。朴素想到贪心,后面感觉贪心情况太复杂,策略不一定对。可以分成4种情况,只往左,只往右,先左再右,先右再左。显然,问题可以转化。将负数段,正数段分别存储。相当于在两个数组里选点数尽可能多的两段,使得其中一段的长度*2+另一段的长度<=t。对于后两种情况,当一个端点定下来的时候,另一端的极限就定了。对于前两种情况也就相当于一端定在0,查找另一端极限的方式是,减去已经用掉的部分。用upper_b原创 2020-07-07 22:55:00 · 475 阅读 · 0 评论 -
高等术学
高等术学给出一行n个随从的生命h[i],一行m个伤害d[i],每一轮伤害对应一个d[i]轮数超过的时候回到第一个伤害(周期性)初始场上一个随从,每轮伤害打到在场上的随从身上。一个随从死亡后在他身后的所有随从上场(前后关系给出)。算法是优先队列实现加周期性剪枝。定义本次伤害为前面伤害的总和,如果本次伤害可以将这个随从打死,就让他下场。对于某次操作如果有随从死亡,新的随从上场我们可以将之前已经扣的血作为额外的血加给上场的随从,这个人拿出来的时候就是额外血+本身血-扣掉的所有血,如果小于0,就pop同时加其他原创 2020-06-11 10:11:02 · 236 阅读 · 0 评论 -
无尽大军
无尽大军这题关键是分析下面AB个操作A操作:代价+2,人数k变成2kB操作:代价+1,假如前一次操作为:人数k变成2k,那么当前2k变3k如果之前2k变3k这次3k变4k,其实如果把B看做A的附属操作,把两者合并起来B操作相当于找到最近的一个A操作将他的代价+1,变化倍数+1这样之后我们将B全部合并到他前面最近的一个A操作里面,这个A操作可以看成代价+x倍数翻x倍那么问题就转化为,初始人数1单次操作相当于乘xix_ixi,求满足∏1kxi==n\prod_1^k{x_i}==n∏1kxi=原创 2020-06-10 22:31:31 · 212 阅读 · 0 评论 -
时间管理,线段树,区间gcd修改,求和
时间管理题意比较明显了。关键是维护gcd区间修改。任老板直播的时候讲了:在对一段区间做x变换后,下一次操作可能对区间内的数没有实质性的改变,比如如果区间内的数 全部变成1,无论什么数进行修改区间,区间的值不发生变化。具体怎么操作,维护了区间最大值和最小值,如果区间最大值=最小值=gcd(修改的值,最大值)那么说明本次修改对区间没有贡献,可以直接返回。然后指出这个算法不足之处比如对于2424242424242 这样的区间修改值=8虽然对区间没有贡献,但是最大值不等于最小值,所以依然要递归到叶子节点才原创 2020-06-06 11:01:42 · 467 阅读 · 0 评论 -
E - Skyscrapers (hard version)
E - Skyscrapers (hard version)题意是给出一个数组m我们要构造一种数组a满足以下的条件:1,a[i]<=m[i]2,a只能是先增后减或者单调,中间允许相等在所以可行的数组里面选择一个数列和最大的输出画图、分析后可得,如果区间最大值在哪个位置确定,整个区间取到区间和最大值的那种情况就唯一确定了,贪心策略是当前结点k到前面比他小的第一个位置i都变成当前的结点值然后将i作为新的k向前递推,向后也一样;这样我们可以枚举每一个点作为整个序列的最大值,计算其区间和,记录所有原创 2020-05-29 14:41:48 · 310 阅读 · 0 评论 -
牛客训练,杀树,树形dp
D杀树一道树形dp题,我刚开始想的是dp[i][j]dp[i][j]dp[i][j]表示i为根结点最长链的长度为j的最小代价,转移的时候很复杂,最后还是没写出来(也有可能是写炸了,但是这个状态应该也是可以的)。比赛结束后看到题解是用dp[i][j]dp[i][j]dp[i][j]表示i为根结点最长链的长度小于等于j的最小代价,这样转移起来就很轻松了,所以做dp的时候选好状态真的很重要…首先递归,让子节点的值全部更新完成。再更新当前结点的值。递推式:当前结点删除:当前代价加所有(子节点的最小代价)的和原创 2020-05-16 13:36:42 · 250 阅读 · 0 评论 -
Valley Numer
Valley Numerdp实在是太难了,做到自闭,但是还是要坚强这道题是一道数位dp,所谓数位dp就是在某个区间内求满足某个条件的数字的个数总数。其实对这个题型不是很熟,就单纯讲讲这个题目吧。对于问题我们将他分成几个层次:以3456为例0000~29993000~33993400~34493450~3456他们分别有贡献的段是0000~2999000~39900~490...原创 2020-04-23 18:56:11 · 164 阅读 · 0 评论 -
Brexit Negotiations
Brexit Negotiations给定n个结点,对他们按照某种方式进行排序,而且对于某个结点规定了那些结点一定要在他的前面,设单个结点的权值加他前面结点的个数为xi 。求x1~xn里面的最大值的最小值对于完成某件事情的前提是完成另一件事,肯定是用到拓扑排序的。这里我们采用反向拓扑排序,因为虽然正向的拓扑排序虽然可以保证完成这件事情的前提已经完成,但是无法保证当前这个顺序对后面的某个结点的...原创 2020-03-30 19:44:38 · 524 阅读 · 0 评论 -
Bomb
Bomb给一个01矩阵,1代表炸弹。炸弹爆炸可以引燃在同一行或者同一列上的炸弹4399小游戏吗,想把炸弹全部炸掉,问要手动点几次。看到这题,显然就是并查集。第一个想法就是把所有处在同一行同一列上的炸弹两两合并在一起,最后查询有几个不同的集合就好了。写着写着感觉写起来好麻烦,记录的量也很多,就在我写到最后一个for循环的时候,突然想到了更优的写法。因为炸弹爆炸的影响范围都是整个的一行加一列,为什么...原创 2020-03-06 22:20:15 · 287 阅读 · 0 评论 -
Money
非等概率的抛硬币抛一次正面向上的概率是p=abp=\frac{a}{b}p=ba,问你抛k次偶数数次正面向上的概率是多少,答案XY\frac{X}{Y}YX是模意义下的整数。首先可以得到答案$\sum_{i=0(i是偶数)}^{k}{p*(1-p)}$这里关键就是处理偶数次。然后我们回忆一下二项式展开里面常用的两种展开方式T1=(a+b)n=∑ai∗bk−i{(a+b)}^n=\s...原创 2020-03-06 22:19:18 · 81 阅读 · 0 评论 -
Half-consecutive Numbers
给出ti=i(i+1)2t_i=\frac{i(i+1)}{2}ti=2i(i+1),给出一个n要求求出满足以下条件的i的最小值1,i>=n2,tit_iti是一个平方数(ti==k∗kt_i==k*kti==k∗k)关键在第二个条件,什么情况下他才是平方数呢,思考后可以得到以下两种情况1,如果iii是奇数,i+1i+1i+1是偶数——iii是平方数且i+12\frac{i+...原创 2020-03-06 21:10:30 · 159 阅读 · 0 评论 -
D. Dr. Evil Underscores
给出n个数a[1]~a[n],用一个数x,令x xor a[i]的最大值最小,求这个最小值。异或这个运算是每一位都独立运行的,显然,这题和二进制有关,所以我们应该把他们拆分成二进制来观察得出规律。显然如果某一位二进制上全是相同的0或者1,x相应的位置上应该和他们相同,这样肯定可以让最后的值变小。关键是有0有1怎么处理,刚开始我是想有0有1,这一位x无论是0还是1对最后答案的贡献都是1,然后直接当...原创 2020-03-06 20:37:49 · 220 阅读 · 0 评论 -
ACM International Collegiate Programming Contest (2018)A~F
ACM International Collegiate Programming Contest (2018)A~F文章目录ACM International Collegiate Programming Contest (2018)A~FA. Careful ThiefB. Friends and CookiesC. Flip the BitsD. Magic SticksE.N-Dimens...原创 2020-02-16 21:23:44 · 487 阅读 · 0 评论 -
Tishreen-CPC 2018 G~L
Tishreen-CPC 2018 G~L文章目录Tishreen-CPC 2018 G~LG. Colors OverflowH. Don’t Ever Ask a Girl for her Codeforces AccountI. Odd and Even QueriesJ. Weird SumK. Quantum StonesL. Odd and Even CountG. Colors ...原创 2020-02-15 14:49:55 · 284 阅读 · 0 评论 -
2016 PSUT Coding Marathon A~G
2016 PSUT Coding Marathon A~G文章目录2016 PSUT Coding Marathon A~GA.LCS (A)B.LCS (B)C.1D Cafeteria (A)D.Cafeteria (B)E.Accepted PasswordsF.Mission in Amman (A)G.Mission in Amman (B)A.LCS (A)输出比输入多1#in...原创 2020-01-24 20:46:59 · 288 阅读 · 0 评论 -
La Salle-Pui Ching Programming Challenge 培正喇沙編程挑戰賽 2016 A~F
La Salle-Pui Ching Programming Challenge 培正喇沙編程挑戰賽 2016 A~F文章目录La Salle-Pui Ching Programming Challenge 培正喇沙編程挑戰賽 2016 A~FA.Shuttle BusB.Salt TradingC.Annoying MathematicsD.ArcheryE.Bacteria Experime...原创 2020-01-23 22:00:50 · 636 阅读 · 0 评论 -
2015 Damascus Collegiate Programming Contest (DCPC 2015)
2015 Damascus Collegiate Programming Contest (DCPC 2015) F~JF Print Mix StringsG Count Mix StringsH touristsI TeleportiaJ palprimeF Print Mix Strings现在有两个字符串,要求打印出所有不同的合成串。合成规则如下:1,两个字符串作为合成...原创 2020-01-19 16:47:37 · 353 阅读 · 0 评论 -
Samara SAU ACM ICPC Quarterfinal Qualification Contest 2012
Samara SAU ACM ICPC Quarterfinal Qualification Contest 2012D题意把一个数每次取走一个因子,直至1为止,取不同的因子算不同的方案,问有几种方案。思路可以推出递推式dp【x】=所有因子方案数之和特别提示:1,用因子成对存在优化一个根号n。2,不能用两层for算出1到k的所有方案,会超时。应该用记忆化搜索,复杂度和因子总数有关...原创 2020-01-06 15:42:55 · 597 阅读 · 0 评论 -
2017 United Kingdom and Ireland Programming Contest (UKIEPC 2017)
2017 United Kingdom and Ireland Programming Contest (UKIEPC 2017)H题意:思路:代码:I题意:给出n个Hi ,1个T。求出T%Hi最小的那个Hi思路:循环一遍即可。代码:#include<bits/stdc++.h>using namespace std;typedef long long LL;...原创 2019-12-22 16:15:14 · 481 阅读 · 0 评论 -
2018-2019 ACM-ICPC, NEERC, Southern Subregional Contest, Qualification Stage
2018-2019 ACM-ICPC, NEERC, Southern Subregional Contest, Qualification StageF. Tickets题目大意:定义权值为:6位数(可以含有前导0)前三位各个位数减去后三位的各个位数的绝对值在线处理每一个输入的6位数,求:在小于该数的所有6位数中权值小于该数的数的个数解决方式:现按照题意求出权值。然后,此处有两个限...原创 2019-12-16 21:07:55 · 381 阅读 · 1 评论