- 博客(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 525
原创 CSUST 2021银川选拔赛
CSUST 银川选拔赛A、查询区间众数出现次数B、PC玩游戏C、PC买礼物D、gameE、medianF、重建网络G、最大得分H、PC要出题 良心场,除了pc一直在拖 A、查询区间众数出现次数 莫队的板子题,不多赘述。(题名直接百度) B、PC玩游戏 解法一:二分答案,找到临界态 解法二:set容器,把每次查询当成一次插入操作,维护可以存放的玩偶数量,找到临界态 C、PC买礼物 树上dp dp[i][j]dp[i][j]dp[i][j] 表示在第iii间店,花了jjj元钱的方案数 设有(u,v)(u,v
2021-04-27 18:34:27 871 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 215 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 147
原创 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 143
原创 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 115
原创 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 376
原创 算法模板
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 208
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人