YBAGGIO
转载自ZYXB220226,查看请输入密码ZYXB220226诗歌报汇总.pdf
传送门CF1882D题意给出一颗树,节点编号为 $1 ... n$,每个点有一个权值 $a_i$。你可以执行任意次操作:选择一个 $x$ 满足 $1 \le i \le n$,和一个正整数 $c$。并将 $x$ 子树中所有点的权值异或上 $c$,这次操作的代价为 $u \cdot c$,其中 $u$ 为子树 $x$ 的节点个数。现在需要你求出,对于每个 $r,1 \le r \le n$,以 $r$ 为根时,让所有 $a_i$ 相等的最小代价。$1 \le n \le 2 \cdot 10 ^ 5,1 \le a_i \le 2 ^ {20}$题解我们首先考虑,只需要求出以 $1$ 为根时的答案。看到异或操作,而且 $a \le 2 ^ {20}$,可以想到对每一位分别处理。接下来我们考虑树形DP,设 $f_{x,j,k}$ 表示将子树 $x$ 所有点权值的第 $j$ 位均变成 $k$ 的方案数,那么答案就是 $\sum_{j=0}^{20} {\min \{f_{1,j,0},f_{1,j,1}\}}$。对于一个叶子节点,可以很容易地求出它的 $f$ 值。对于任意非叶子节点 $x$。
下载方式在vscode中搜索Meogi Theme即可介绍其中深色主题的代码高亮非常“花哨”,浅色很典雅,个人推荐 moegi-black。此外,高亮适合各种语言。一共有 8 种主题:1.moegi-black-zen2.meogi-black3.moegi-dark-vitesse4.moegi-dark5.moegi-dawn6.moegi-light-vitesse7.moegi-light8.moegi-space
备注:此做法来自nzq巨佬题意:FJ 有一个边长为 $n (n \leq 500)$, 共有 $n^2$ 个格子的正方形草地,每一个格子有一个 $1...200$ 的绿度值。对于 FJ 的这个草地,有很多个子矩阵。现在需要你求出子矩阵中所有格子的最小值是 $100$ 的子矩阵的个数。样例:输入3 57 120 87 200 100 150 2 141 135输出8_思路我们可以发现答案显然等于最小值小于 $100$ 的矩阵的个数减去最小值小于等于 $100$ 的个数。如何计算这两个值呢?我们设函数 query(m) 为最小值小于 $m$ 的子矩阵个数,那么答案就等于 query(100)-query(101) 。这个函数怎么写呢,我们将所有小于 $m$ 的格子设为 $1$, 将所有大于等于 $m$ 的格子设为 $0$, 我们对于每一行记一个 $sum_{i,j}$。代码如下:for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ if(a[i][j]<maxx)b[i][j]=1,sum[i][j]=0;
题意有 $n$ 场电影,第 $i$ 场电影能够带来 $a_i$ 的快乐值,但是当距离上一次观看电影 $cnt$ 天后观看一场电影,这场电影带来的欢乐值会减少 $d \cdot cnt$(可能减少至负数)。现在我们可以去选择观看 $n$ 场电影中的不大于 $m$ 场,使得最终所获得的欢乐值最大。题解假设我们观看了第 $i_1, i_2 ... i_s$ 这 $s$ 场电影,那么我们获得的欢乐值表示为$a_{i_1} - i_1 \cdot d + a_{i_2} - (i_2 - i_1) \cdot d + ... + a_{i_s} - (i_s - i_{s - 1}) \cdot d$将 $d$ 提取出来得到:$a_{i_1} + a_{i_2} + ... + a_{i_s} - i_s \cdot d$由此可见,$d$ 的系数仅与看的最后一场 $i_s$ 有关,因此我们可以枚举看的最后一场电影,得到 $- i_s \cdot d$ 的取值,随后贪心选择第 $i_1 ... i_{s-1}$ 场电影。Code#include <iostream> #include
题目意思题目意思是给你 $n$ 个元素的序列,要你判断执行若干次操作后,整个序列是否能够全部相等。对于每次操作的定义:每次操作选择 $n-1$ 个元素,把它们全部变成这 $n-1$ 个元素的平均值。思路先来考虑是否可以经过一次操作就能使序列全部相等。很简单,看看那 $n-1$ 个元素的平均值是否等于剩下一个元素。那么如果一次操作完成不了呢?其实一次操作完成不了的话,用多少次操作都完成不了。因为一次操作只改变了每个数,但数组和没有改变。最后贴上代码#include<iostream> #include<cstdio> #include<cstring> using namespace std; int t,n,a[55]; int main(){ scanf("%d",&t); while(t--){ bool flag=0; scanf("%d",&n);int sum=0; for(int i=1;i<=n;i++)scan
准备一个电话号码(国内的、已注册过的号码也可以)一台ios系统的设备。一个没注册过Apple ID的邮箱。开始首先打开美国地址生成器,生成一个地址(最好选择阿拉斯加州)。然后不要关掉网站。接着开始注册Appid,可以在ios系统的设置里注册,也可以打开注册Appleid注册。地区选美国,邮箱、密码按要求填写,出生日期最好选成年的。选择 +86中国大陆,然后填写电话号码,最后填下面的验证码就行,按要求填写邮箱、电话的验证码(可能会提示密码不够好等等)。最后打开你的ios系统设备,在设置里输入邮箱、密码登录Appid。然后打开App-Store开始选择、下载。但是,下载的时候它会问我们一些资料,如下图。直接按要求填写之前生成的地址即可。PS:不要选择付款方式。例子:End本文章转载参考https://zhuanlan.zhihu.com/p/623576755。
介绍CPH 是Vscode的一款插件,支持从VS Code中快速编译、运行和判断竞争性编程问题。此外,你可以通过安装浏览器插件Competitive Companion,从而快速将题目的样例数据导入到CPH中。下载对于拓展CPH,直接在Vscode中搜索“CPH“即可。对于浏览器插件Competitive Companion。需要翻墙从谷歌拓展商店中下载。链接下载后打开Vscode(要打开工作区)再打开题目界面(Codeforces、atcoder、洛谷等OJ均可),然后按照图片所示操作。现在回到vscode,我们发现新建了一个文件,文件名为题目标题,cph界面也有了题目的样例数据。写好代码后点击Run all 即可运行了。
ybaggio