思维
文章平均质量分 72
1
zzqwtc
blog dot zzqwtc dot com
展开
-
2021牛客国庆集训派对day2 - I.car (找规律)
I - car题意白云有一个 n∗nn * nn∗n的矩形,可以在矩形边上放置一辆车,每辆车同时开始以每秒一格的速度从一行或一列的一侧移动到另一侧,如果两辆车同一秒位于矩形上的同一格相遇,会损坏。白云在开始之前会将矩形中的 mmm 个方格毁坏,当车辆行驶到这个方格时,车辆也会损坏。求在这种情况下,最多有多少辆车可以安全通过。思路先求出没有毁坏的方格的情况下,最多能放置多少车辆,如下图:n 为 6 时:n 为 5 时:容易发现,当 n 为偶数时,答案为 2 * n , 当 n 为奇数时,答原创 2021-10-03 16:40:31 · 3347 阅读 · 0 评论 -
2013, Samara SAU ACM ICPC Quarterfinal Qualification Contest C.Victor‘s Research
Victor’s Research题意给定一个长度为 nnn 的数组 找出有多少子数组的和为 kkk思路先求前缀和数组 sum[]sum[]sum[] 题目要求可以表示为求有多少个r、lr、lr、l 满足 sum[r]−sum[l]==ssum[r] - sum[l] == ssum[r]−sum[l]==s (l<rl < rl<r)转换一下可以得到:sum[l]==sum[r]−ssum[l] == sum[r] - ssum[l]==sum[r]−s即求对于当前的 sum原创 2021-04-30 23:57:15 · 3448 阅读 · 1 评论 -
CodeForces - 1469D - Ceil Divisions (思维+数学)
Ceil Divisions题意对于一个大小为 nnn 的排列 在一次操作中可以选择两个数 axa_xax 和 aya_yay (x≠y)(x≠y)(x=y) 并设置ax=⌈axay⌉a_x= \lceil \dfrac{a_x}{a_y} \rceilax=⌈ayax⌉在不超过 n+5n+5n+5 次操作后内使数组由 n−1n-1n−1 个 111 和 111 个 222 组成思路首先我们知道 ⌈i−1i⌉=1\lceil\dfrac{i-1}{i}\rceil = 1⌈ii−原创 2021-02-11 00:23:56 · 3120 阅读 · 0 评论 -
CodeForces - 1472E- Correct Placement (排序 + 思维)
Correct Placement题意nnn 个矩形 对于每个矩形可以将它横着放或者竖着放 问能否找到另一个矩形能够放在它前面并且不将其遮挡 如果有的话输出符合条件的矩形的编号 否则输出 −1-1−1翻译成数学表达式即 :对于 ai,bi (1≤i≤n)a_i,b_i\ \ \ \ \ (1 \leq i \leq n)ai,bi (1≤i≤n) 能否找到 aj,bj &n原创 2021-02-11 00:08:18 · 3092 阅读 · 0 评论 -
CodeForces - 1478C - Nezzar and Symmetric Array (思维+规律)
Nezzar and Symmetric Array题意有 2n2n2n 个不同的整数 对于每个 1≤i≤2n1\leq i \leq 2n1≤i≤2n 都存在1≤j≤2n1\leq j \leq 2n1≤j≤2n 使得 ai=−aja_i = -a_jai=−ajdi=∑j=12n∣ai−aj∣d_i = \sum_{j = 1}^{2n}{|a_i - a_j|}di=∑j=12n∣ai−aj∣ 给你 ddd 问是否存在符合条件的原数组思路举个例子 −4,−3,−2,−1,1,2,原创 2021-02-09 20:43:43 · 2959 阅读 · 0 评论 -
CodeForces - 1469C - Building a Fence (思维)
Building a Fence题意用 nnn 个宽度为 111 高度为 kkk 的木板构建一段栅栏 第 iii 个木板下面的地面高度等于 hih_ihi 第一个和最后一个木板必须在地面上 其他的木板 底端 可能位于地面或者不高于地面 k−1k - 1k−1的高度上 相邻的两个木板必须有公共边 也即有重合的部分 问有没有可能建造一个符合所有规则的围栏思路设 lll rrr 分别为当前栅栏下端的最小高度和最大高度 因为每段栅栏高度都为 kkk 可知 下一段栅栏底边高度的范围为 [l−k+1,r+k原创 2021-01-30 16:32:12 · 3245 阅读 · 0 评论 -
Educational Codeforces Round 103 D - Journey (思维 + 前后缀)
Journey题意一条链上分布有 0~n 个点,每一个点中间有一条单向边连接,并用字母 ‘L’ 和 ‘R’表示若为 L 说明该边方向向左,若为 R 说明该边方向向右你可以在任意一点开始移动,并且每移动一步,上述边的方向改变一次要求求出每一个点能够到达的最多点数(若一个点被多次走到,那么仅算一次)思路当某一点左边或者右边出现 RLRLRL 交替时 可以一直走下去 并且可以原路返回只需要求出当前点左边和右边 RLRLRL 或者 LRLRLR 交替出现的次数即可 (顺序不重要)即if (s[i原创 2021-01-30 16:24:08 · 3088 阅读 · 1 评论 -
Educational Codeforces Round 103 C - Longest Simple Cycle (思维 + 贪心)
Longest Simple Cycle题意有 nnn 条链,第 iii 条链上有 c[i]c[i]c[i] 个点,a[i]a[i]a[i] 为第 iii 条链的顶点与第 i−1i-1i−1 条链的连接点,b[i]b[i]b[i] 为第i条链的最后一个点与第 i−1i-1i−1 条链的连接点。找这样的一个环,环上的每个点都只被访问一次,问该环的最大长度为多少。思路反向遍历 c[i]c[i]c[i]设 res1res1res1 和 res2res2res2res1res1res1 表示 每条链原创 2021-01-30 14:39:53 · 2932 阅读 · 0 评论 -
CodeForces - 1465D.Grime Zoo (贪心+思维)
Grime Zoo题意给出一个包含 0 1 ?0 \ 1 \ ?0 1 ? 的序列 每个子序列 010101会增加xxx点愤怒值,每个子序列101010会增加yyy点愤怒值用 0 10 \ 10 1代替所有的 ??? 使得最终的愤怒值最小思路先用 111 代替所有的 ??? 求出每个位置前缀和后缀中 1 0 ?1 \ 0 \ ?1 0 ? 的数量 计算得到当前愤怒值 $re如果 x<yx原创 2021-01-29 13:50:48 · 3044 阅读 · 0 评论 -
CodeForces - 1459C Row GCD (思维+数学)
Row GCD题意对于两个正整数序列 a!、a2、a3、…ana_!、a_2、a_3、 \dots a_na!、a2、a3、…an 和 b1、b2、b3…bmb_1、b_2、b_3 \dots b_mb1、b2、b3…bm 对于每个 j=1、2、…jj = 1、2、\dots jj=1、2、…j 找到 a1+bj、a2+bj+a3+bj、…an+bja_1 + b_j、a_2+b_j + a_3+b_j、\dots a_n+b_ja1+bj、a2+bj+a3+bj、…an+原创 2021-01-27 22:05:38 · 2847 阅读 · 0 评论 -
AcWing 125. 耍杂技的牛 (推公式)
AcWing 125. 耍杂技的牛农民约翰的N头奶牛(编号为1..N1..N1..N)计划逃跑并加入马戏团,为此它们决定练习表演杂技。奶牛们不是非常有创意,只提出了一个杂技表演:叠罗汉,表演时,奶牛们站在彼此的身上,形成一个高高的垂直堆叠。奶牛们正在试图找到自己在这个堆叠中应该所处的位置顺序。这N头奶牛中的每一头都有着自己的重量wiw_{i}wi以及自己的强壮程度sis_{i}si一头牛支撑不住的可能性取决于它头上所有牛的总重量(不包括它自己)减去它的身体强壮程度的值,现在称该数值为风险值,原创 2021-01-27 02:02:13 · 3100 阅读 · 0 评论 -
Codeforces - 1463C. Busy Robot (思维)
功能:①快速求前缀和O(logn)O(logn)O(logn)②修改某一个数O(logn)O(logn)O(logn)操作:①:建树void add(int x, int c) { //树状数组的插入操作 for (int i = x;i <= n;i += lowbit(i))tr[i] += c;}②:区间查询:1 ~ x 前缀和for(int i = x;i <= n;i += lowbit(i))res += c;③:单点修改:for(int i = x;i;原创 2020-10-23 23:27:14 · 1939 阅读 · 0 评论