【UOJ Round #8】】的更多相关文章

构造+贪心/数论 为什么只有两个标题呢……因为第二题我不会…… 怎样提高智商 构造题……然而一开始半天我都yy不出来…… 后来我想:这题应该不会特别麻烦,而且既然样例只给了1,可能再给大一点就让人发现规律了……(心理战的可怕0.0?)然后yy了一下,发现全部都写0的答案是最多的,是$4*3^{n-1}$,然后就过了…… 唯一用到的是快速幂? //UOJ Round #5 A #include<cstdio> #include<cstdlib> #include<cstring…
枚举/DP+排列组合 缩进优化 QAQ我当时一直在想:$min\{ \sum_{i=1}^n (\lfloor\frac{a[i]}{x}\rfloor + a[i] \ mod\ x) \}$ 然而并不会做啊……一点思路也没有……主要是后面那个取模非常难受…… 其实正解有点逆向思维的感觉:$ans=\sum_{i=1}^n a[i] - max\{ \sum_{i=1}^n \lfloor \frac{a[i]}{x}\rfloor *(x-1) \} $ 也就是先将a[i]全部加起来,然后再…
A 一道不错的题,虽然大家都觉得是水题,然而蒟蒻我想出来的好慢……Orz alpq 发现其实就是一个网格图,每一个大块都是同一颜色……横纵坐标互不干扰…… //UOJ Round #8 A #include<vector> #include<cstdio> #include<cstring> #include<cstdlib> #include<iostream> #include<algorithm> #define rep(i,n…
枚举/二分 C题太神窝看不懂…… 核聚变反应强度 QwQ很容易发现次小的公约数一定是gcd的一个约数,然后……我就傻逼地去每次算出a[1],a[i]的gcd,然后枚举约数……这复杂度……哦呵呵... 正解是先找到a[1]的所有质因数啊……然后在刚刚那个算法的“枚举gcd的约数”的时候直接枚举这些质因数就好了…… //UOJ Round3 A #include<vector> #include<cstdio> #include<cstring> #include<c…
[题目链接]:https://csacademy.com/contest/round-34/task/minimize-max-diff/ [题意] 给你n个数字; 数组按顺序不下降; 让你删掉k个数字; 使得相邻的数字之间的差的最大值最小; [题解] 二分相邻的数字的差的最大值mid是多少; 然后对于遇到的a[i+1]-a[i]>mid 则考虑把i+1..n都删掉或者是先把1..i删掉; 优先删掉i+1..n,因为这样之后就不会再有约束的情况了; 如果有足够的剩余空间删掉i+1..n,删掉就结…
[题目链接]:https://csacademy.com/contest/round-34/summary/ [题意] 让你找一个最短的连续子串; 使得这个子串里面所有数字or起来最大; [题解] 对于每一个起点i; 最大值肯定是i..n这一段全部or起来; 只是长度可能还能再短一点; 而且,是有单调性的; 定义一个右端点; 显然,你可以二分右端点; 右端点越靠右,i..右端点这一段or起来就会越大; 因为1的数量只会不下降. 处理出前i个数所有数二进制位在某一位的1的个数的前缀和就好;(30位…
求从$ x$走到$ y$的路径上可能经过的最小点权,带修改  UOJ #30 $ Solution:$ 如果两个点经过了某个连通分量,一定可以走到这个连通分量的最小值 直接构建圆方树,圆点存原点的点权,方点用$ multiset$存连通分量的点权集合,权值为集合中的最小值 每次询问就变成求圆方树中一条树链的最小值,可以用树链剖分维护 考虑修改一个圆点的点权 对于这个圆点直接修改,但如果暴力修改周围方点,复杂度明显爆炸 我们修改一下方点的定义,改为这个连通分量中除了自己父亲圆点外其他圆点的最小权值…
Description Cyberland 有 n 座城市,编号从 1 到 n,有 m 条双向道路连接这些城市.第 j 条路连接城市 aj 和 bj.每天,都有成千上万的游客来到 Cyberland 游玩. 在每一个城市,都有纪念品售卖,第 i 个城市售价为 wi.这个售价有时会变动. 每一个游客的游览路径都有固定起始城市和终止城市,且不会经过重复的城市. 他们会在路径上的城市中,售价最低的那个城市购买纪念品. 你能求出每一个游客在所有合法的路径中能购买的最低售价是多少吗? 你要处理 q个操作:…
time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard output Polycarp has interviewed Oleg and has written the interview down without punctuation marks and spaces to save time. Thus, the interview is now a…
time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard output Galya is playing one-dimensional Sea Battle on a 1 × n grid. In this game a ships are placed on the grid. Each of the ships consists of b consecu…
time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard output Vasya is currently at a car rental service, and he wants to reach cinema. The film he has bought a ticket for starts in t minutes. There is a str…
time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard output Famous Brazil city Rio de Janeiro holds a tennis tournament and Ostap Bender doesn't want to miss this event. There will be n players participat…
time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard output Mr. Funt now lives in a country with a very specific tax laws. The total income of mr. Funt during this year is equal to n (n ≥ 2) burles and th…
time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard output Local authorities have heard a lot about combinatorial abilities of Ostap Bender so they decided to ask his help in the question of urbanization…
time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard output On the way to Rio de Janeiro Ostap kills time playing with a grasshopper he took with him in a special box. Ostap builds a line of length n such…
Codeforces Round 1137 这场比赛做了\(A\).\(B\),排名\(376\). 主要是\(A\)题做的时间又长又交了两次\(wa4\)的. 这两次错误的提交是因为我第一开始想的求最大值很不对,竟然还有\(min\)在里面... Codeforces 1137 A 题意:给一个矩阵,问对于每一个格子\((x,y)\),把第\(x\)行和第\(y\)列的值取出,要求将它们每一个赋上一个正整数,要求同一行.列中大小关系依然相同,问最大的数. 思路:我们先考虑每一行(列)的数们把它…
Codeforces Round 1132 这场比赛做了\(A\).\(B\).\(C\).\(F\)四题,排名\(89\). \(A\)题\(wa\)了一次,少考虑了一种情况 \(D\)题最后做出来,但被\(hack\)了...被\(hack\)的原因是没有想到答案会超过\(10^{12}\)(毕竟这个时间上的优化也是在最后迫不得已的情况下加的,就没有考虑正确性... Codeforces 1132 C 题意:给一些区间\([l_i,r_i]\),从中删掉两个,求剩下的区间最多能够覆盖的格子数…
Codeforces Round 1120 这场比赛做了\(A\).\(C\)两题,排名\(73\). \(A\)题其实过的有点莫名其妙...就是我感觉好像能找到一个反例(现在发现我的算法是对的... \(C\)题的心路历程: 第一眼:这不后缀自动机吗??? 算了滚去写哈希表乱搞吧... 嗯怎么\(mle\)了???算了把数组改成\(vector\)吧... 嗯怎么又\(wa\)了???算了我还是老老实实去敲SAM吧... 嗯???\(pretest\ passed\)??!! 所以就交了\(3…
Codeforces Round 1129 这场模拟比赛做了\(A1\).\(A2\).\(B\).\(C\),\(Div.1\)排名40. \(A\)题是道贪心,可以考虑每一个站点是分开来的,把目的地最小编号的留到最后,所以答案稍微算一下就行了. \(B\)题是道找规律,首先可以很容易地发现只要前面弄个负数的开头,错误算法就会忽略掉这一个值,所以利用这个来构造答案.(最讨厌构造题了)然后推导一番式子就会发现如果我们将第一个值放-1,则 \(\sum_{i=2}^na_i=k+n\), 再更改一…
Codeforces Round 1117 这场比赛做了\(A\).\(B\).\(C\).\(D\).\(E\),\(div.2\)排名\(31\),加上\(div.1\)排名\(64\). 主要是\(A\)题卡了很久,直到第\(52\)分钟才做出来,思路固化了,一直没想到最大平均值的区间就是只含有最大值的区间.幸好节奏没有受到太大影响. 最后去肝\(G\),最后一分钟一把过了样例,就赶紧交,结果\(ce\)了...实在是...是因为我定义重数组,而条件编译使我看不出有问题(这段快读的代码本机…
Codeforces Round 1114 这场比赛做了\(A\).\(C\).\(D\).\(E\),排名\(134\). \(B\)题做了很长时间,好不容易最后一分钟\(Pretest\ Passed\)了,但是又\(FST\)了... \(C\)题\(wa7\)了一次,因为爆\(long\ long\)了 \(E\)题\(wa1\)了一次,因为最后的输出格式错了…
Codeforces Round 1110 这场比赛只做了\(A\).\(B\).\(C\),排名\(905\),不好. 主要的问题在\(D\)题上,有\(505\)人做出,但我没做出来. 考虑的时候方向不对,一直抠一个思路不放,然后就一直做不出来. 虽然我中间也考虑过其他的思路,但是都没有思考完善,于是就一直在给我原来的方法加补丁. Codeforces 1110 D 题意:给定一个序列,问最多可以把该序列分成几个满足下列两个条件之一的三元组: 这三个数字相同 这三个数字为连续的三个数 思路:…
1.感谢taorunz老师 2.题目大意:就是给个带权无向图,然后有两种操作, 1是修改某个点的权值 2是询问,询问一个值,就是u到v之间经过点权的最小值(不可以经过重复的点) 操作数,点数,边数都不超过100000 3.分析:首先看这道题,就感觉用双联通+树剖搞一搞可以过,可是怎么搞呢 首先双联通是必然的了,可是正常的缩点+树剖会爆零随便试试就知道了 然后我们需要不正常的缩点,我们在正常的缩点后加入割点,割点向它所属的一切双联通分量连边 这样,我们就不怕询问的u和v中有割点了,可是虽然询问是l…
                                                        C. An impassioned circulation of affection                                                                time limit per test  2 seconds                                                          …
来自FallDream的博客,未经允许,请勿转载,谢谢. 传送门 考虑直接对每个数字,统计它会产生的贡献. 单调栈求出每个数字左边第一个大等于他的数,右边第一个大于他的 (注意只能有一边取等) 假设左右两边分别有x1,x2个数,较大的是mx,较小的是mn 对于长度在(mx+1,mn+mx+1]的x,会产生mn+mx+1 - x - 1的贡献 对于长度在(mn,mx+1]的数,会产生 mn+1的贡献 对于长度在[1,mn]中的数x,会产生x的贡献. 差分维护即可 #include<iostream…
来自FallDream的博客,未经允许,请勿转载,谢谢. 题面 考虑用可持久化线段树直接维护每个点在不同时刻,第一辆车的编号. 这样3操作就变成了区间赋值,1操作变成区间和 2操作的话,只需要查询一下现在这辆车的编号,再到历史版本去查一下上一辆车的编号就行了. #include<iostream> #include<cstdio> #define MN 500000 using namespace std; inline int read() { ,f=;char ch=getch…
题目大意 有一个无限长的二进制串,初始时它的每一位都为 \(0\).现在有 \(m\) 个操作,其中第 \(i\) 个操作是将这个二进制串的数值加上 \(2^{a_i}\).我们称每次操作的代价是这次操作改变的位的数量. 我们以一定概率执行这些操作:第 \(i\) 个操作有 \(p_i\) 的概率执行,否则不执行. 请求出所有执行的操作的代价和的期望. \(n\leq 100000,m\leq 200000,0\leq a_i\leq n\) 题解 容易发现,如果进行了 \(k\) 次操作且把这…
模拟CF650,ABC三题,RK90 Codeforces 650 A 思路:首先看式子 \(\sqrt{(x_i-x_j)^2+(y_i-y_j)^2}=|x_i-x_j|+|y_i-y_j|\) 的唯一可行的情况是\(x_i=x_j\)或\(y_i=y_j\).(因为两边之和大于第三边 所以就知道怎么做了. 第一种方法:我们维护三个\(map\),分别存行.列.坐标是\(\dots\)的时候已经有多少个节点. 然后就可以边读边算,读到\((x,y)\)这个坐标的时候把\(ans\)变成 \(…
模拟Canada Cup 2016,ABC三题,Rank1376 第三题卡住了 Codeforces 725 C 求出两个相同字符的位置,记为x和y. 然后考虑把相同的那个字符放在第一行的什么地方, 然后把x+1..y-1的部分一折两半,放在第一行的末尾再折回第二行. 再把1..x-1和y+1..n放下来就可以了. Codeforces 725 D 题意:有n个队伍,你是第一个队伍的一员,然后你可以把你们队伍拿到的一些气球给其他的队伍,如果一个队伍的气球数量大于他们的质量,那么他们就会被删除.…
模拟RD265 ABC三题,Rank58 Codeforces 464 A 题意:给定一个字符串,求比这个字符串字典序大并且和它长度相等的第一个不含有长度大于等于2的回文串的字符串. 思路:首先我们枚举最后一个与原串相等的位置,从后往前枚举,因为我们需要的是第一个字典序大于给定串的. 然后就枚举我们将下一个字符改变成了什么,再按照这种方法继续填充完整答案串即可. Codeforces 464 B 题意:给8个\((x,y,z)\)三元组,但是每个三元组的内部顺序可能是错乱的,问是否有可能把这些三…