首页 > TAG信息列表 > CH
洛谷P1043
[NOIP2003 普及组] 数字游戏 题目描述 丁丁最近沉迷于一个数字游戏之中。这个游戏看似简单,但丁丁在研究了许多天之后却发觉原来在简单的规则下想要赢得这个游戏并不那么容易。游戏是这样的,在你面前有一圈整数(一共 \(n\) 个),你要按顺序将其分为 \(m\) 个部分,各部分内的数字相加,相加Codeforces 杂题选讲 #1
1715C Monoblock 展开 题意简述: 我们定义连续 \(k\)(\(k\) 尽可能大)个相同的数被称为一个“块”。一个序列的“块”数就相当于将其直接去重后的序列长度。 给定一个长度 \(n\) 的序列和 \(m\) 次询问。对于每次询问,有两个数 \(i,x\),先将 \(a_i\) 改为 \(x\),然后输出 \(\sum\limitsBZOJ 2259 新型计算机(BIT优化DP)
Problem 原题 题意:你有一个序列,一个位置上的数 \(x\) 可以覆盖接下来的 \(x\) 个数,你可以修改一些数,代价就是改变的大小,求覆盖这个序列的最小代价和。 Solution 拿这题练了一下BIT优化DP,感觉还挺有意思的,所以写写。 首先考虑朴素 dp,令 \(dp[i]\) 表示完全覆盖 \([i,n]\) 的最小代「题解」洛谷 P8511 [Ynoi Easy Round 2021] TEST_68
简要题意:给定带点权树,对每个点求出其子树补中选出两个数异或得到的最大值。 考虑整个树中的最优解是 \(a_x\oplus a_y\),那么除了 \(x\) 和 \(y\) 到根的链上这些点以外,其他的所有点答案都是 \(a_x\oplus a_y\). 这样只需要考虑如何求出一条到根的链的答案。 考虑这样一条链,在 dfs「题解」洛谷 P8512 [Ynoi Easy Round 2021] TEST_152
有三个维度,序列维,操作维,询问维。 尝试扫描线,枚举一下扫哪个维能做。 或者考虑序列维上有颜色段均摊的性质。 这样不难想到在操作维上从小到大扫描线,或者说对询问维的 \(r\) 作扫描线,用 set 维护序列维上的连续段。 现在将询问 \((l,r)\) 挂在了 \(r\) 上,扫描线扫到 \(r\) 时,要询问2020年湖南省大学生计算机程序设计竞赛
A 2020 一个简单的 DP,f[i]表示前i位最多能选择的子串个数。 转移首先不选可以得到f[i] = f[i-1],其次如果当前的后缀是2020的话就f[i] = max( f[i] , f[i-4]+1) #include<bits/stdc++.h> using namespace std; const int N = 1e5+5; char s[N]; int f[N]; int32_t main() {【狄利克雷前缀和 / 后缀和】算法学习
1. 狄利克雷前缀和 问题描述 有数列 \(\{a\}\),求数列 \(\{b\}\) 满足 \[b_k = \sum_{i|k} a_i \]数列长度 \(n \le 2 \times 10 ^ 7\)。 分析 考虑质因数分解,某个数 \(x = \prod\limits p_{i} ^ {\alpha_i}\), 将其写成行向量 \((\alpha_1,\alpha_2, \dots,\alpha_k)\)。 那么每次20201307梁辰鱼第二周学习总结
1.知识点总结 1.1常用系统调用函数与I/O库函数 系统调用函数 I/O库函数 作用 open() fopen() 打开文件 read() fread() 读文件 write() fwrite() 写文件 lseek() fseek() 移动文件指针 close() fclose() 关闭文件 1.2 I/O库函数的算法 1.2.1 fread算法 在第一次中秋节yyds
P8539 「Wdoi-2」来自地上的支援 为什么都在用线段树啊? 首先,我们发现一个数如果有一次没有被选,那它以后就永远不会被选上了,所以x被选k次的临界是它从x到x+k-1一直被选上,x+k-1>n就不合法了。 为了保证这个数在它自己的位置上被选中第一次,它需要比前面的修改后最大值大或相等(因为修题解 洛谷 P3915 【树的分解】
1## P3915 树的分解 题目描述 给出\(N\)个点的树和K,问能否把树划分成\(\frac{N}{K}\)个连通块,且每个连通块的点数都是\(K\)。 解题思路 分析样例: 「\(sample1\)」 可被划分为\(1\).\(2\)、\(3\).\(4\)两个大小为\(2\)的连通块。 「\(sample2\)」平面二维点对问题(转化一维)
【元素周期表】通过观察点对构造规律,转化成矛盾或者传递关系 平面坐标系内,给出p个点对(x,y),如果有3个同行或者同列的点对,那么他们组成的“矩形四个角”就都被覆盖,求最少添加多少点使得所有n*m区域都被覆盖。 部分分:p=0,考虑构造,发现只要靠边一行一列都填满就可以满足要求 正解:把【Coel.学习笔记】【半途跑路】CDQ 分治
最近在刷状压 DP,结果发现太难不会做,跑来学点别的。 反正 CSP-S2 之前刷完就行了,吧? 放在数据结构里面是因为 CDQ 分治和数套树能解决的问题差不多,所以放了进去(绝不是因为懒得开一个“离线算法”的 Tag!) 引入 CDQ 分治是一种通过把动态询问/点对问题等离线处理,并分治求解的算法。这种P5298[PKUWC2018]Minimax (线段树合并)
题目链接 思路:因为所有点的权值是互不相同的,并且概率\(0 < p_x < 1\),也就是所有的点都会被选到。所以用\(dp[i][j]\)来表示节点\(i\)权值为\(j\)的概率。首先考虑叶子节点,叶子节点都没有子节点所以他们的权值是确定的,\(dp[i][j] = [i = val]\);再考虑只有一个子节点的节点,那模拟退火
模拟退火 我觉得这是个 useless 的算法,只能说正解肯定和这算法毫无关系,你用这算法也别想拿满分,顶多是个不会做的题浪费你时间去赌这么些运气,而且是真的看脸。。。 先看张 oi-wiki 的图: 简单点想: 我们模拟分子运动的过程,随机选取答案,每次令答案跳跃一个距离,也就是随机移动,温度越高平衡树做题记录
板子就不说了。 P2786 英语1(eng1)- 英语作文 红黑树 map 随便做,用一个 map 存下字符串对应的值,一个字符一个字符读入,然后判断, 如果不是数字并且不是字母,说明空格或者符号,处理答案。 /** * author: TLE_Automation * creater: 2022.9.7 **/ #include<cmath> #include<queue> #inc[Editorial] Codeforces Contest 1726
A. Mainak and Array 显然如果 \([l,r]\) 不包括两端那么就不会对答案有影响,那么直接枚举包括两端的情况即可。 /* author : Gemini date : September 6th, 2022 url : https://codeforces.com/contests/1726/A */ #include<bits/stdc++.h> using namespace std; template<typena算法学习—————PAM回文自动机
时隔一年,第一次学习新的算法 原理和AC自动机差不多 基本思想: 两棵树分别代表奇偶 在一个回文串两边同时填上相同字符可以得到另一个回文串,以此构建两棵树 树上维护信息: 节点表示的回文串为当前位置的最长回文串 节点上维护当前位置最长回文串的长度,fail指针(当前回文串的CF1717D Madoka and The Corruption Scheme
首先注意到我们同一层不可能会修改多次比赛结果,因为 Sponsors 一定会定准一个目标然后修改结果,据此 \(k>n\) 可以视作 \(k=n\)。 因此某个叶子如果被选为冠军,那么根节点到叶子节点这条路上的边一定都被选中了,而如果某个叶子节点到根的路径上有小于等于 \(k\) 条边没有被选中,那么这【题解】做题记录(2022.9)
可能会断断续续的,是因为可能有的时候忘记了写记录 9.5 今天搞了一天的平衡树,但大部分都是比较基础的操作 [SHOI2009]会场预约 题目分析: set 大法吼啊 我们考虑重新定义两个区间 \(A,B\) 的关系: =:\(A,B\)有交集 <:\(A\) 完全在 \(B\) 的左边 >:\(A\) 完全在 \(B\) 的右边 那么我们CSP-S开小灶1
居然敢嫌弃Cat的文化课不让Cat来参加半集训!?哼这是不可能的Cat哭给你看!…… A. ZZH的游戏 WA 15:emmm想到了二分,然后判断的时候我没有想到让它贪心地走到尽量小的节点,而是让它尽量跳father,我怕它尽量往小跳反而偏离了终点结束不了游戏,跳不了了就让另一棵树后退到最小的儿子(这或许是XM6138 分糖果(线段树)
XM6138 分糖果 stO jc Orz 解题思路 很神奇的一题。 看到题目首先想到的就是二分答案。那么问题转化为了如何验证一个答案 \(x\)。 我们定义函数 \(f_{i,j}\) 表示考虑前 \(i\) 个小朋友,是否可以分成 \(j\) 段,使得每一段都满足和小于 \(x\)。这个函数很好转移: \[f_{i,j}\leftarrowCodeforces Round #818 (Div. 2) CF1717 解题报告
Codeforces Round #818 (Div. 2) CF1717 解题报告 A Description 求出满足\(1\le a,b\le N,\frac{\operatorname{lcm}(a,b)}{\gcd(a,b)}\le 3\)的二元组\((a,b)\)的数目。 \(N\le 10^8\) Sol 由\(a\times b=\operatorname{lcm}(a,b)\times \gcd(a,b)\)转化上述分式,可得 \[a\timesCSP-S模拟1
下发文件和题解 A. 斐波那契 对于上面这张图,尝试从2开始依次写下每个兔子的父亲的标号: 那么转换成数列就是这样的: 1 1 1 2 1 2 3 1 2 3 4 5 ... 可以发现这个序列由多个连续从 1 开始的序列组合到一起,每段长度依次是斐波那契数列里面的每一项. 那么就有以下规律: 令f(i)表示第i个D. 2+ doors(构造 二分图) CF 1715D
题目: 现在有一个长度为n的序列待构造,给出m对关系\(i, j,x\),表示\(a_i|a_j=x\),请在满足这m对关系的情况下构造出的最小字典序的序列。 分析: 每当我们看到最小字典序的时候,基本都是贪心的思想。本题可以知道,我们要让序列前面的数尽可能的小。对于他给出的关系,需要按位来考虑,但代码源#960. 一个大整数(用DP实现组合计数)
题目: 给出一个很大的整数x,以质因数分解的方式给出,请问有多少对x的因子是互质的。 分析: 来枚举一下样例,可以发现12的因子有1,2,3,4,6,12。互质的因子对为(1, 1), (1, 2), (1, 3), (1, 4), (1, 6),(1, 12), (2, 1), (2, 3), (3, 1), (3, 2),(3, 4), (4, 1), (4, 3), (6, 1), (