- 博客(8)
- 收藏
- 关注
原创 CSUST - 2022算法测试
CSUST - 2022算法测试A、useB、小精灵爱打工C、迷宫问题D、算数E、树上问题F、走出迷宫G、安排课程A、use首先要分析复杂度题目中 nnn 是 10510^5105 ,O(n2)O(n^2)O(n2)是会TLETLETLE的!题目求 a[i]+a[j]>b[i]+b[j]a[i]+a[j]>b[i]+b[j]a[i]+a[j]>b[i]+b[j] (i<j)(i<j)(i<j)的对数这种给定式子的题目,一般来说先要将相同下标放在一起,方便寻找思路。
2022-01-03 19:59:37 531
原创 CSUST 2021银川选拔赛
CSUST 银川选拔赛A、查询区间众数出现次数B、PC玩游戏C、PC买礼物D、gameE、medianF、重建网络G、最大得分H、PC要出题良心场,除了pc一直在拖A、查询区间众数出现次数莫队的板子题,不多赘述。(题名直接百度)B、PC玩游戏解法一:二分答案,找到临界态解法二:set容器,把每次查询当成一次插入操作,维护可以存放的玩偶数量,找到临界态C、PC买礼物树上dpdp[i][j]dp[i][j]dp[i][j] 表示在第iii间店,花了jjj元钱的方案数设有(u,v)(u,v
2021-04-27 18:34:27 876 9
原创 整除分块思路
求解 ∑i=1N[Ni]\sum_{i=1}^N [\frac{N}{i}]∑i=1N[iN]一般思路 O(N) 求解但用分块可以达到 O(N\sqrt{N}N) 复杂度理解 :为了避免每个 i 都计算一次,我们需要分块(i 不同时,有 kkk 个 [Ni][\frac{N}{i}][iN]仍然相同,将他们分为一块,贡献即为 k∗[Ni]k*[\frac{N}{i}]k∗[iN])那么问题关键就是 : 每一块的 [Ni][\frac{N}{i}][iN] 系数 k 是多少呢举个栗子
2020-08-01 21:03:41 219 1
原创 Codeforces Round #659 (Div. 2) (A、B1、B2、C 题题解)
B1 与 B2 思路不同A. Common Prefixes链接 :A. Common Prefixes题意 :(多组输入)给定长度为 n 的数组 a,输出 n + 1 个字符串 s.让 si 与 si+1 的 最长公共前缀长度 为 ai.数据范围 : n⊂[1,100]n \subset[1,100]n⊂[1,100],ai⊂[0,50]a_i \subset[0,50]ai⊂[0,50]思路 :注意到题目中 ai 范围[0,50],si 长度范围[1,200],说明可以先将 s.
2020-07-25 12:46:03 149
原创 Codeforces Round #658 (Div. 2) (C1、C2)
C、Prefix Flip两题题意相同,变化在 n 的取值范围(可以直接看C2部分)C1、Easy Version(代码与 C2 不同)题意 :(多组输入)(n <= 1000)给你两个长度为 n 的01字符串 s1 与 s2选中 s1 任意长度的前缀,将他们01转换,再转置这个前缀,最多可进行 3n 次上述操作,让其变成 s2(如: 01一次操作后仍是01)问题 :求操作次数 (不要求最少) 和 每次选择的前缀长度(每组输出为一行,第一个为操作次数 后面为前缀长度)样例 :
2020-07-22 15:16:47 146
原创 Codeforces Round #656 (Div. 3) (C、D题)
C. Make It Good题意 :(多组输入)给定 长度为 n 的 数组a,可以将其前x个元素删除(从头删起),得到一个新数组b然后每次都选择拿新数组b的 首或尾 一个元素 放入新数组c必须满足 数组c是非递减数组问题 :求x的最小值(最少删除的元素个数)思路 :b数组 只要保证从一个元素开始 向两边单调递减(在这定义为 峰 )又因为 a数组 的删除是从头开始的我们只需要从尾开始跑 a数组 找到 最长的峰的左边界 pos(此处 峰的右边界必须是n)pos 之前的元素都是要删除
2020-07-19 11:50:16 125
原创 Educational Codeforces Round 91 (Rated for Div. 2) (C、D)
C. Create The Teams - 贪心题意 :(多组输入)将n个人分组每组要满足 : 组员数 * 组内最小能力值 >= x问题 :求最多分成几组思路 :先对n个人以能力值排序,再从大到小取出。若 累计组员数 * 目前取出值 >= x,则分为一组(保证让尽可能少的人分为一组)AC代码 :#include <algorithm>#include <cmath>#include <cstdio>#include <cst
2020-07-14 14:37:55 387
原创 算法模板
1. KMP原理 : 获得 前缀和后缀 相同的长度 用数组保存作用 : 求 文本串 中 模板串 的位置(没有则返回-1)s[] 为文本串p[] 为模板串next[] 为前后缀相同长度代码 :char s[MAX],p[MAX];int next[MAX]void getnext(char p[]){ int i = 0,j = -1,l = strlen(p); next[0] = -1; while(i < l - 1)
2020-07-13 21:01:56 212
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人