shopping 1009 game cf

Decoding Genome CF222E

需要构造一个符合如下条件的字符串: 长度为 n,并且只包含字符 1∼m (n≤1e15,m≤52) 满足 K 个要求,第 i 个要求为 xi 后面不能是 yi 现在问你,有多少种字符串符合条件。 F[ i ][ j] += F[i -1] [lk ]* a[k][j] 用矩阵快速幂优化 即 F[1] ......
Decoding Genome 222E 222 CF

cf上不用算法的思维题

脑筋急转弯 https://leetcode.cn/problems/minimum-impossible-or/ https://leetcode.cn/problems/minimum-score-by-changing-two-elements/ 1200 找规律? https://codef ......
算法 思维 不用

CF1806F GCD Master

CF1806F GCD Master Div. 2 的 2900,还是非常有难度的,看了题解才有思路。 这题是一个结论题,我们一步步来观察。不难发现每次操作相当于合并两个已经操作的集合,那么最终的问题就是把序列划分成了 $(n-k)$ 个集合。 结论一:考察最小值所在的集合 $S_0$,假设从小到大 ......
Master 1806F 1806 GCD CF

CF123E 题解

简述题意:给你一棵树,每个点有一个被选为起点的概率和一个被选为终点的概率,从起点开始随机遍历子树,问到达终点的期望步数。 直接计算答案很难,考虑对一对 $(S,T)$ 来说,以 $S$ 为根,那么有: 对 $T$ 的子树里的点:显然不会被遍历到,贡献为 $0$。 对 $S\to T$ 路径上的点:显 ......
题解 123E 123 CF

CF:D. Shocking Arrangement

掉大分补提 D 点击查看代码 #include<bits/stdc++.h> using namespace std; typedef long long LL; typedef pair<int,int> PLL; #define IOS cin.tie(nullptr)->sync_with_s ......
Arrangement Shocking CF

Games01作业

GAMES101 作业 作业1 作业1的目的是绘制线框三角形并让其旋转,对于这一目标,框架已经完成了大部分的工作,我们只需要填充MVP变换中的Model和Projection两个个矩阵即可。 首先是Model矩阵: 按照绕z轴旋转的矩阵填入即可。 Eigen::Matrix4f get_model_ ......
Games 01

cf-1800感想

我是菜鸡!我是菜鸡!我是菜鸡! 虽说挺不想承认的,但是必须得承认了,我是菜鸡,真的,一道题写了两天了,还是wa的结果!恨!!! 看看那道题目· 原题传送门 洛谷镜像 题目描述 You are playing some computer game. One of its levels puts you ......
感想 1800 cf

Pencils and Boxes CF985E

给出nn个整数a1,a2,...,an,现在需要对其进行分组,使其满足以下条件: 每个数都必须恰好分入一组中 每一组中必须至少包含K个数 在每一组中,整数的权值之差的绝对值<=D。 请判断是否存在满足条件的分组方案,若有请输出"YES",否则输出"NO"。 直接的贪心是错误的,但要魔改一下,双指针+ ......
Pencils Boxes 985E 985 and

[NC 记录] CF1172D Nauuo and Portals

在随机跳一点 CF 的紫题做。为什么随机一跳就是 CNR。 感觉这能 *2900 有点震撼。不过我不是也没独立做出来嘛。 尝试只为行或列构造,很容易想到直接逐一交换,但是这样会破坏另一维的结构。 怎么做呢,怎么做呢。你忽然注意到这是个方阵诶,可以试着递归弄掉一行一列。 那每次只能放第一行与第一列并起 ......
Portals 1172D Nauuo 1172 and

CF546D

Solution 容易发现答案就是 $[b+1,a]$ 所有数的质因子个数和。 考虑到多次询问,首先预处理出前缀质因子个数和,询问时直接输出 $sum_b-sum_a$ 即可。 如何快速对一个数 $x$ 分解质因子,首先我们可以进行一遍线性筛,因为每个合数只会被它最小质因子筛,于是可以处理出 $f_ ......
546D 546 CF

Permutation Game

#include<iostream> using namespace std; const int N=5e5+10; int n; int a[N]; void solve() { scanf("%d",&n); int cnt1=0,cnt2=0,cnt3=0; for(int i=0;i<n; ......
Permutation Game

Towers CF229D

一个序列A, 每次可以 相邻的数相加为一个数字,求最少次数使得序列非降 f[i ]= min{ f [ j ] + i-j-1 } ,s[i]-s[j] >= s[j] -s[mn[j-1] ] 维护下前缀最小值mn[ i] #include <iostream> #include <queue> ......
Towers 229D 229 CF

CF1806C-Sequence Master

题目地址 题意:给出m和一个长度为2m的数组a,令数组b长度也为m,且对于b任意一个长度为m的子序列的积等于剩下的和,求出最小的Σ|a[i]-b[i]| Solution 显然只有一下几种情况: 1.m=1时,a[1]=a[2] 2.m=2是,4个数均为2, 3.m>2且m为偶数,有2n-1个-1和 ......
C-Sequence Sequence Master 1806 CF

CF1809F Traveling in Berland - 倍增 -

题目链接:https://codeforces.com/contest/1809/problem/F 题解: 对一个点,考虑怎样在 $O(\log n)$ 的时间复杂度内求出答案,联想到倍增 但是,倍增合并的时候只能在两个状态相同的情况下合并,但是如果我们直接从 $i$ 到 $i+1$ 这样算的话, ......
Traveling Berland 1809F 1809 CF

Games101 光线追踪 代码框架解读

1 前言 不同于之前的四次作业,这次的作业来了个大换血。整体框架完全重构,用了自己写的数学库。框架中大量使用c++17的新特性。 如果以老师在课堂上所述的光线追踪算法,与之前光栅化的知识。这次作业的判断光线打到三角型内算法rayTriangleIntersect()可能还好做一点。但是如何生成初始的 ......
光线 框架 代码 Games 101

CF R858 div.2

A 很简单的题,就过了 B 题意: 给定一个长度为 $n$ 的数组 $A$,你可以将其重新排序,并得到一个新数组 $B = [a_1 + a_2, a_2 + a_3, ..., a_{n-1} + a_n]$ ,使得 $mex(B)$ 最小,$mex$ 为在 $B$ 中找到一个最小的 $B$ 中不 ......
R858 858 div CF

Two out of Three CF82D

给定一个序列,每次从前三个中选两个值并取他们的最大值累加,不足 3 个就取剩下的 1 个或 2 个的最大值累加, 求和的最小值以及取法。 每一次会取两个数,也就是会剩下一个数,所以我们可以把剩下的那个数来设状态 F[ i] [j ] 前i个数,剩余的数为j #include <iostream> # ......
Three Two 82D out CF

CF1809C

我好像完全没做过啥构造题啊 =_=,这一场有一道就顺手补一下吧。 对于这种神秘的构造题,我们发现样例完全没有意义,它一定不会告诉你真正的构造方案。 一般而言,我们最终给出的构造方案总是更强一点点。对于这道题而言,比方说我们可以加一个限制:对于一个和为正的子区间 $[l,r]$ 而言,$[l,r\do ......
1809C 1809 CF

CF EC Round 145 D. Binary String Sorting

D 题意 给一个01串,交换两个数需要花费$10^{12}$,删除某个数需要花费$10^{12}+1$,问最少花费多少使得串单调不降 思路 线性dp,$f[i][0]$表示前i位构建的串结尾为0,单调不降的花费,$f[i][1]$同理,$f[i][2]$表示前i位构建的串结尾1的个数多于1的花费。 ......
Sorting Binary String Round 145

Games101-Cp2-Rasterization

所谓光栅化就是在屏幕上画出对应该显示的像素值。 ###采样(Sampling) 光栅化最简单的方法就是采样,采样就是对连续函数离散化的过程。如:在屏幕空间中定义的三角形,采样过程就是通过自变量像素中心判断是否在三角形内部,在则取true,反之则取false。 $$ inside(t, x, y) = ......

CF1168C And Reachability 题解 线性dp

题目链接 https://codeforces.com/problemset/problem/1168/C 题目大意 给定一个数组 $a$,从下标 $x$ 能够转移到下标 $y$ 要满足 $x \lt y$ 且 $a_{p_i}, &, a_{p_{i+1}} > 0$,其中 $&$ 表示逻辑与。多 ......
题解 线性 Reachability 1168C 1168

CF1572C Paint

CF1572C Paint 一看感觉很有 dp 的感觉。所以就来吧。 设 $f_{l,r,c}$ 表示区间 $[l,r]$ 选了颜色 $c$ 的答案,先不管怎么转移。 状态太巨大,有种猜结论的冲动:若只保留 $c=a_l$ 和 $c=a_r$,答案依旧正确。 考虑证明:答案只和 $f_{1,n}$ ......
1572C Paint 1572 CF

Pawn CF41D

给定一个棋盘,你从最下面一行任选一个位置开始移动,每次只能向右上方或者左上方移动,求满足经过路径的权值和是 k+1k+1 (给定常数)的倍数的情况下最大权值和是多少。 #include <iostream> #include <cmath> #include <cstring> using name ......
Pawn 41D CF 41

CF1572B Xor of 3

CF1572B Xor of 3 做多了这种题,感觉好套路。。 首先观察操作性质,有一个有解的必要条件:所有值异或和为 $0$,因为每次操作不会改变 $1$ 的个数的奇偶性。然后再观察一下,发现如果从前缀异或和的角度看待这个操作会变得非常简单,大概就是 $$ s_{k-1}, s_k, s_{k+1 ......
1572B 1572 Xor CF of

CF1791F - Range Update Point Query

题目地址 题意:给你一个数组a,进行q次操作 有两种操作: 1:给出一个区间[l,r],令该区间内所有数都变成他们自身每一位数字的和 2:给出x,输出a[x]的值 Solution 显然可以发现,当数字变为个位数的时候,之后的操作都不用进行了 用树状数组维护一个操作的次数的前缀和,这里用差分,对l进 ......
Update 1791F Range Point Query

CF 1900 乱做

CF1715D 2+ doors 题意 有一个长度为 $n$ 的整数数组 $a$ ,但是他只会告诉你 $n$ 的大小和 $q$ 个要求,每个要求包括三个整数 $i,j,x$ ,要求满足 $a_i\mid a_j = x$,其中 $|$ 表示按位或运算 找到满足所有要求的字典序最小的数组 $a$ $1 ......
1900 CF

【CF1515E Phoenix and Computers】(插入法dp)

原题链接 题意 给定 $n$,$M$。你有 $n$ 台电脑排成一排,你需要依次开启所有电脑。 你可以手动开启一台电脑。在任意时刻,若电脑 $i-1$ 与电脑 $i+1$ 都已经开启 $(1<i<n)$,电脑 $i$ 将立刻被自动开启。你不能再开启已经开启的电脑。 求你有多少种开启电脑的方案。两个方案 ......
Computers Phoenix 1515E 1515 and

CF1630E 题解

题意 传送门 一个长度为 $ n $ 的环状序列 $ {a_i} $ ,其中的数值满足 $ 1\leq a_i\leq n $ ,序列中可能有相等的数。 序列 $ {a_i} $ 的一个排列和另外一个排列本质相同,当且仅当可以通过旋转使它们变得每一项都对应相等。 对于 $ {a_i} $ 的任何一种 ......
题解 1630E 1630 CF

CF150E Freezing with Style

CF150E Freezing with Style $\text{difficulty}=2.5,4$。 $\text{tags}=点分治,单调队列,二分$ 注意到中位数考虑直接二分答案 $k$,令权值 $\ge k$ 的边的新权值为 $1$,权值 $<k$ 的边的新权值为 $-1$,那么如果存在 ......
Freezing Style 150E with 150

题解 CF1149D【Abandoning Roads】

~~看到 $n\le 70$,想到状压 DP。~~ 首先,显然对于一棵最小生成树,每个轻边连通块内部都是一棵树,轻边连通块缩点后点之间的重边也是一棵树。也就是说,缩点后不存在重边组成的环(包括自环),路径一旦离开了一个轻边连通块就再也不会回来了。 于是先洪水填充求出连通块,设共有 $k$ 个连通块。 ......
题解 Abandoning 1149D Roads 1149