
训练赛
文章平均质量分 92
backordinary
mx 上理 => 华理
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
M-Upanishad
M-Upanishad 给出n个元素的数组a和m个区间询问。每次询问你区间内出现偶数次的所有元素的异或和。 首先可以想到,如果是条件是奇数显然要好处理不少的(直接区间xor),偶数实在不知道怎么处理。暴力 暴力是不可能暴力的,优雅一点,写莫队吧。很好,TLE了。 实际上偶数次出现可以转化为(区间内不同元素的异或)xor(区间异或)。那么区间内不同元素的异或怎么搞呢?上莫队!! 我们可以将询问离线并按照r排序,每次扩展右边界至当前询问,维护每一个元素离当前r最近出现的位置,并将这个位置之前出现的位置全部置0原创 2020-10-29 17:04:04 · 354 阅读 · 0 评论 -
巨木之森-牛客小白月赛27-A
A-巨木之森 比较显然可以看出来的是从x点出发的时候想要物资消耗最少最后停止的点应该是离x最远的叶子节点,而且消耗是所有边权∗2−x到该叶子节点的路径长所有边权*2-x到该叶子节点的路径长所有边权∗2−x到该叶子节点的路径长。然后,对于树上任何一点,离他最远的叶子节点一定是树的最长的链(直径)的两段其中的一个。我们把每个结点作为初始点的消耗计算出来后贪心求最多可以有几个。 求直径直接dfs就可以了,同时dfs两次记录所有的点到直径的两个端点的距离。 /*#include<queue> #incl原创 2020-08-25 15:44:30 · 203 阅读 · 0 评论 -
E- 牛妹游历城市
E- 牛妹游历城市 一看n的范围果断放弃朴素的枚举每一对点求最短路的想法。 其实看到题目二进制,算法一般都和二进制沾边的。 可以把二进制的每个结点作为特别的中转站,所有结点连边可能的情况<=它二进制的位数,所以可以将后者作为连边的条件然后在取最短路的时候判断是不是有效的边就可以了,但是,本来是想在求最短路的时候加个判断来只有lowbit等于当前权值时进行放缩,后来想想没必要,因为两个结点有多个中转站可以走最短的那个肯定是lowbit那一个,所以直接最短路即可。 #include<queue>原创 2020-08-24 15:25:57 · 204 阅读 · 0 评论 -
Bonuses on a Line
B. Bonuses on a Line 给出线段上的点坐标,一个人在原点,可以走t的路程,问最多可以经过几个点。朴素想到贪心,后面感觉贪心情况太复杂,策略不一定对。可以分成4种情况,只往左,只往右,先左再右,先右再左。显然,问题可以转化。将负数段,正数段分别存储。相当于在两个数组里选点数尽可能多的两段,使得其中一段的长度*2+另一段的长度<=t。对于后两种情况,当一个端点定下来的时候,另一端的极限就定了。对于前两种情况也就相当于一端定在0,查找另一端极限的方式是,减去已经用掉的部分。用upper_b原创 2020-07-07 22:55:00 · 537 阅读 · 0 评论 -
高等术学
高等术学 给出一行n个随从的生命h[i],一行m个伤害d[i],每一轮伤害对应一个d[i]轮数超过的时候回到第一个伤害(周期性)初始场上一个随从,每轮伤害打到在场上的随从身上。一个随从死亡后在他身后的所有随从上场(前后关系给出)。算法是优先队列实现加周期性剪枝。 定义本次伤害为前面伤害的总和,如果本次伤害可以将这个随从打死,就让他下场。对于某次操作如果有随从死亡,新的随从上场我们可以将之前已经扣的血作为额外的血加给上场的随从,这个人拿出来的时候就是额外血+本身血-扣掉的所有血,如果小于0,就pop同时加其他原创 2020-06-11 10:11:02 · 260 阅读 · 0 评论 -
无尽大军
无尽大军 这题关键是分析下面AB个操作 A操作:代价+2,人数k变成2k B操作:代价+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 · 244 阅读 · 0 评论 -
时间管理,线段树,区间gcd修改,求和
时间管理 题意比较明显了。关键是维护gcd区间修改。 任老板直播的时候讲了: 在对一段区间做x变换后,下一次操作可能对区间内的数没有实质性的改变,比如如果区间内的数 全部变成1,无论什么数进行修改区间,区间的值不发生变化。具体怎么操作,维护了区间最大值和最小值,如果区间最大值=最小值=gcd(修改的值,最大值)那么说明本次修改对区间没有贡献,可以直接返回。然后指出这个算法不足之处比如对于2424242424242 这样的区间修改值=8虽然对区间没有贡献,但是最大值不等于最小值,所以依然要递归到叶子节点才原创 2020-06-06 11:01:42 · 516 阅读 · 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 · 369 阅读 · 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 · 279 阅读 · 0 评论 -
Valley Numer
Valley Numer dp实在是太难了,做到自闭,但是还是要坚强 这道题是一道数位dp,所谓数位dp就是在某个区间内求满足某个条件的数字的个数总数。 其实对这个题型不是很熟,就单纯讲讲这个题目吧。 对于问题我们将他分成几个层次:以3456为例 0000~2999 3000~3399 3400~3449 3450~3456 他们分别有贡献的段是 0000~2999 000~399 00~49 0...原创 2020-04-23 18:56:11 · 200 阅读 · 0 评论 -
Brexit Negotiations
Brexit Negotiations 给定n个结点,对他们按照某种方式进行排序,而且对于某个结点规定了那些结点一定要在他的前面,设单个结点的权值加他前面结点的个数为xi 。 求x1~xn里面的最大值的最小值 对于完成某件事情的前提是完成另一件事,肯定是用到拓扑排序的。这里我们采用反向拓扑排序,因为虽然正向的拓扑排序虽然可以保证完成这件事情的前提已经完成,但是无法保证当前这个顺序对后面的某个结点的...原创 2020-03-30 19:44:38 · 576 阅读 · 0 评论 -
Bomb
Bomb 给一个01矩阵,1代表炸弹。炸弹爆炸可以引燃在同一行或者同一列上的炸弹4399小游戏吗,想把炸弹全部炸掉,问要手动点几次。看到这题,显然就是并查集。第一个想法就是把所有处在同一行同一列上的炸弹两两合并在一起,最后查询有几个不同的集合就好了。写着写着感觉写起来好麻烦,记录的量也很多,就在我写到最后一个for循环的时候,突然想到了更优的写法。因为炸弹爆炸的影响范围都是整个的一行加一列,为什么...原创 2020-03-06 22:20:15 · 323 阅读 · 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 · 109 阅读 · 0 评论 -
Half-consecutive Numbers
给出ti=i(i+1)2t_i=\frac{i(i+1)}{2}ti=2i(i+1),给出一个n要求求出满足以下条件的i的最小值 1,i>=n 2,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 · 192 阅读 · 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 · 252 阅读 · 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 · 595 阅读 · 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 Count G. Colors ...原创 2020-02-15 14:49:55 · 331 阅读 · 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 · 369 阅读 · 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 · 723 阅读 · 0 评论 -
2015 Damascus Collegiate Programming Contest (DCPC 2015)
2015 Damascus Collegiate Programming Contest (DCPC 2015) F~J F Print Mix Strings G Count Mix Strings H tourists I Teleportia J palprime F Print Mix Strings 现在有两个字符串,要求打印出所有不同的合成串。合成规则如下: 1,两个字符串作为合成...原创 2020-01-19 16:47:37 · 395 阅读 · 0 评论 -
Samara SAU ACM ICPC Quarterfinal Qualification Contest 2012
Samara SAU ACM ICPC Quarterfinal Qualification Contest 2012 D 题意 把一个数每次取走一个因子,直至1为止,取不同的因子算不同的方案,问有几种方案。 思路 可以推出递推式dp【x】=所有因子方案数之和 特别提示: 1,用因子成对存在优化一个根号n。 2,不能用两层for算出1到k的所有方案,会超时。应该用记忆化搜索,复杂度和因子总数有关 ...原创 2020-01-06 15:42:55 · 660 阅读 · 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 · 556 阅读 · 0 评论 -
2018-2019 ACM-ICPC, NEERC, Southern Subregional Contest, Qualification Stage
2018-2019 ACM-ICPC, NEERC, Southern Subregional Contest, Qualification Stage F. Tickets 题目大意: 定义权值为:6位数(可以含有前导0)前三位各个位数减去后三位的各个位数的绝对值 在线处理每一个输入的6位数,求:在小于该数的所有6位数中权值小于该数的数的个数 解决方式: 现按照题意求出权值。 然后,此处有两个限...原创 2019-12-16 21:07:55 · 474 阅读 · 1 评论