01 2023 档案
摘要:题目 https://codeforces.com/problemset/problem/1661/D 题意 给一个长度为 n 的数组 a,和一个正数k,每次在数组 a 中选取连续的k个元素 每个元素减去1,2,3……k 问至少要多少次操作,才能呢使数组 a 中所有数字小于 0 思路 从后往前贪心,
阅读全文
摘要:题目 https://codeforces.com/contest/1661/problem/C 代码 #include<bits/stdc++.h> #define debug1(a) cout<<#a<<'='<< a << endl; #define debug2(a,b) cout<<#a<
阅读全文
摘要:题目 https://codeforces.com/contest/1359/problem/D 题意 给一个 n(1≤n≤1e5) 和长为 n 的数组 a(-30≤a[i]≤30) 设 b 为 a 的一个非空连续子数组 输出 sum(b)-max(b) 的最大值 思路 正解 从数组a的范围我们可以
阅读全文
摘要:题目 https://codeforces.com/contest/1790/problem/F 题意 给一颗根节点为 树,有n个节点,n-1条边 根节点已经被染成了黑色,其他所有节点都是白色 每次染黑一个节点 ,问所有已经染黑的节点的距离最短是多少 思路 维护一个dist数组,di
阅读全文
摘要:题目 https://ac.nowcoder.com/acm/contest/46812/H 题意 地图大小N*M,障碍物为“#”,地图上其他所有点有一个字母(“LRUD”之一,表示走的方向;“.”表示A停止) 有两个人A和B,A从( , )按照地图上的标记走,B从( ,$y
阅读全文
摘要:0x1f 题目: https://ac.nowcoder.com/acm/contest/46812/D 0x2f 题意: 定义初始背包的最优解 定义n个物品去掉任意一个后,最优解为 每一个物品 ,在 上加上一个最小值,使得$V_{
阅读全文
摘要:https://codeforces.com/contest/1359/problem/D 线段树最大子段模板 struct node{ int l,r; int sum,ms;//maxsum int ml,mr;//maxl,maxr }tree[N*4]; void PushUp(int i)
阅读全文
摘要:Problem - D - Codeforces 题意: 给n个点,判断这个n个点是否能用不多于两条直线全覆盖 思路: 如果只有不到三个点,那么直接返回”YES“ 否则,显然任意挑三个点,这三个点有两种情况 三个点重合,在一条直线上显然这三个点需要用掉一条边,只需要查看剩下来的点能不能只在一条边上
阅读全文
摘要:Problem - D - Codeforces 题意: 给一个n行m列的关于m的排列数组,n个m的排列,设为q[n] 对于q[i],找到最长的q[q[i]]排列是1,2,...,k,美丽值是k 输出每一个的k 思路: 看样例一可以大概知道字典树是该怎么做 对于1~m,找到原先的关于m的排列,数字的
阅读全文
摘要: 目录 动态求连续区间和 所以用到另一种方法——树状数组 另一种方法——线段树 完整线段树代码 数列区间最大值 分析: 具体实现: 数星星 小朋友排队 分析: 代码实现(树状数组): 一个简单的整数问题2 改进 代码实现 动态求连续区间和 给定 n 个数组成的一个数列,规定有两种操作,一是修改某个
阅读全文
摘要:Problem - D - Codeforces 题意: 给两个长度为n的数组a,b,改变b的顺序,使得 & 最大 分析: 从高位往低位贪心 如果当前一位a中1的数量和b中0的数量相当,那么说明这一位可以取得 然后把a=1,b=0和a=0,b=1分治,
阅读全文
摘要:2543. 判断一个点是否可以到达 - 力扣(Leetcode) 前两个移动很像辗转相除法(这个套路在 Codeforces 上已经出烂了)<br> 后两个移动可以让 g 乘上 class Solution { public: bool isReachable(int X, int Y)
阅读全文
摘要:https://codeforces.com/contest/702/problem/E 题意: 给一个n个点,n条有向边,n个权值的图,每个点一条出边 问所有的点按着有向边走k的权值和,还有k条边上的最小权值是多少,并输出 思路: 经典的倍增题目 先利用倍增找出子 的子节点是哪个,记为$n
阅读全文
摘要:E-Tokitsukaze and Function_2023牛客寒假算法基础集训营2 (nowcoder.com) 思路: 可以知道这是一个凹型函数,但是不是严格中间小于两边 可以三分 也可以转化成二分来写 int n,L,R; inline double f(int x) { return n/
阅读全文
摘要:## 2023.7.31 [提交样例](https://codeforces.com/contest/1276/submission/216523123) [题目](https://codeforces.com/problemset/problem/1276/A) `Exit code is 3`
阅读全文
摘要:Problem - D - Codeforces 要点: for i (1 to n) i ++;for j(i to n) j += i; 这个的时间复杂度是O(nlogn) 题意: 给一个长度为n的子数组a,找出最长的子序列最大公因数不超过m 解发: 观察n,m的范围(1e6),那么最大公因数必
阅读全文
摘要:https://codeforces.com/contest/678/problem/E 思路: 这个概率dp正着方向来算很麻烦,因为可以改变这个选手比赛的顺序(假设擅长的次序为p0,p1,p2,p3,...,pn) 定义f[mask][i]为在mask状态下,赢家是i,mask在二进制上1表示已经
阅读全文
摘要:题意: 给一个长度为 n 的数组 a ,数组中两两不互质的数可以建一条边,即 ,i,j之间存在伊奥无向边 问 s 到 t 的最短路径是多长,并输出 题解 根据唯一分解定理,所有的数都可以表示为 1e9之内所有的数,其不同质数数量
阅读全文
摘要:Problem - E - Codeforces 题意: 给一个长度为n的数组a,问有多少个连续的子数组的异或和大于等于k 思路: 01字典树 建立前缀异或和数组,题目变为有多少个 类似(几乎一模一样)的题目 一次插入一个左端点,然后枚
阅读全文
摘要:1803. 统计异或值在范围内的数对有多少 - 力扣(Leetcode) 题意: 思路: 很经典的方法,01字典树,同时在树上多维护一个数据,有多少个节点经过当前节点,记为cnt 我们可以写出一个query(x,tar)函数,x时num数组中的数,答案就是query(x,high)- query(x
阅读全文
摘要:https://codeforces.com/problemset/problem/1718/A2 题意: 给一个长度为 的数组 每次操作选择一个区间 ,和一个整数x 把区间所有的数异或上x,每次操作的的代价是$(R - L +
阅读全文
摘要:题目 Problem - D - Codeforces 题意 给两个长度为n的数组a,b,再给一个数组长度为m的数组x,表示m次操作 每次操作把选择一个区间把a[l ~ r]中大于x[i]的变为x[j],否则不变 问能否在m次操作内把数组a变为与数组b相等 思路 很容易知道,如果a[i] < b[i
阅读全文
摘要:https://codeforces.com/contest/1733/problem/D2 找出对应不同的位置数组dif 对于两个不同的位置 和 ,有四种可行的操作 ,用一次x操作 $dif_{i-1} + 1 = di
阅读全文
摘要:https://codeforces.com/contest/1770/attachments/download/18470/editorial.pdf 这个pdf都写得很明白了,这个c题终于懂了,麻了à 本来只需要枚举n/2之内的质数,但是因为n很小,所以直接枚举n
阅读全文