自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(88)
  • 收藏
  • 关注

原创 Codeforces Round #772 (Div. 2) A~F

前一段时间总是忙着学校的各种事情,好久没发过博客了,现在更新起来,从一场Codeforces的div2开始吧A. Min Or Sum题目大意给你 nnn 个数记为 aia_iai​,你可以进行任意次数的操作,使得这 nnn 个数之和最小。操作:选择两个不同的数 i,ji, ji,j ,以及两个非负整数 x,yx, yx,y,用 xxx 代替 aia_iai​,yyy 代替 aja_jaj​,且满足 ai∣aj=x∣ya_i | a_j = x|yai​∣aj​=x∣y思路看到 或 操作,容易想

2022-02-21 23:06:16 365

原创 Eclipse中没有server的解决办法

最近在学JavaEEJava EEJavaEE,需要用 eclipseeclipseeclipse 来配置 tomcattomcattomcat,根据网上的教程,发现需要用到 PreferencePreferencePreference 中的 serverserverserver 但是我的 eclipseeclipseeclipse 中没有 serverserverserver解决办法首先你需要知道你的 eclipseeclipseeclipse 的版本号在 MacMacMac 系统下,点击左上角 E

2021-09-28 09:13:48 1011

原创 2021杭电多校第六场 1004——Decomposition

题目大意给你一个 nnn 个点的完全图 nnn 为奇数,让你划分为 kkk 条长度为 aia_iai​ 且不相交的路径,输出这 kkk 条路径。解题思路在完全图上构造 (n−1)/2(n-1)/2(n−1)/2 个不同的长度为 nnn 的欧拉回路。完全图每个顶点的度数一定为偶数,每构造一个欧拉回路之后每个点的度仍然为偶数,所以一定可以构造出来这样的欧拉回路,构造出来之后就按顺序输出即可。这里提供一种构造方法,至于为什么会想到不必深究。由于点数是奇数,所以我们首先将最大的点选出来,然后对于前 (n

2021-09-14 00:09:41 179

原创 2021杭电多校第三场 1010——Road Discount

题目大意给你 nnn 个点, mmm 条边,每条边都有两个值ci,dic_i, d_ici​,di​,代表原始花费和折扣后的花费,问你使用 kkk 条折扣后的边使这 nnn 个点联通,最小花费是多少。对于 k∈[0,n−1] k∈Zk \in [0,n-1] \ k\in Zk∈[0,n−1] k∈Z 每一个值你都需要回答,题目保证有解。2≤n≤1000,n−1≤m≤2×105,1≤di≤ci≤10002\leq n\leq1000, n-1\leq m\leq 2\times 10

2021-09-11 14:59:40 150

原创 2021杭电多校第三场 1004——Game on Plane

题目链接题目大意给你 nnn 条线段, AliceAliceAlice 每次从中选 kkk 条,BobBobBob 每次划一条直线,定义 penaltypenaltypenalty 为 BobBobBob 所划直线与 AliceAliceAlice 所选直线相交的直线数, AliceAliceAlice 想最大化 penaltypenaltypenalty,BobBobBob 想最小化 penaltypenaltypenalty,对于每一个 1−n1-n1−n 的 kkk,你都需要回答 penaltyp

2021-09-07 16:35:14 123

原创 Codeforces Round #742 (Div. 2) E. Non-Decreasing Dilemma(线段树)

题目链接题目大意给你一个长度为 nnn 的数组 aaa每次有两种操作1 x y:ax=y1 \ x\ y: a_x = y1 x y:ax​=y2 l r:2 \ l \ r:2 l r: 问你区间 [l,r][l, r][l,r] 内有多少对 (p,q),l≤p≤q≤r(p, q), l \leq p \leq q \leq r(p,q),l≤p≤q≤r 满足子序列 ap≤ap+1≤⋯≤aqa_p \leq a_{

2021-09-06 16:21:55 334 1

原创 2021杭电多校第三场 1003——Forgiving Matching

题目大意给你两个字符串,一个长度为 nnn 模式串,一个长度为 mmm 匹配串,由字符 000 到 999 和 通配符 * 组成。问你匹配串在模式串中失配长度不超过 0,1,⋯ ,m0, 1,\cdots,m0,1,⋯,m 的字符串一共有多少个。解题思路考虑采用 fftfftfft 来做。预处理对于模式串,我们开十个数组(桶),来标记 000 到 999 出现的下标,如果出现了就标为 111,否则标为 000,对于通配符 ∗*∗ ,将 000 到 999 都标为 111,因为通配符是可以和任何字符

2021-09-04 13:42:19 163

原创 2021杭电多校第二场 1011——I love max and multiply

题目大意给你两个长度为 nnn 的数组 A、BA、BA、B,求 ∑i=0n−1Ci\sum_{i=0}^{n-1}C_i∑i=0n−1​Ci​,Ck=max{Ai×Bj} i&j≥kC_k=max\{A_i\times B_j\}\ i\&j\geq kCk​=max{Ai​×Bj​} i&j≥k解题思路满足条件的 i&j≥ki\&j\geq ki&j≥k 比较难求,我们可以把答案记录到 i&j=ki\&j = ki

2021-09-03 20:30:40 135

原创 2021杭电多校第二场 1008——I love exam

题目大意有一个人要为了期末考试而复习,现在一共有 nnn 门课,给你每门课复习时间所对应的分数,现在你有 ttt 时间来复习,最多挂 ppp 门课,每门课最多得分100,问你在最多挂 ppp 门课的情况下最大得分是多少,否则输出 -1解题思路先用一个背包 f[i][j]f[i][j]f[i][j] 表示第 iii 门课花费时间 jjj 的最大得分是多少然后进行一个 dpdpdpdp[i][k][kk]dp[i][k][kk]dp[i][k][kk] 表示前 iii 门课,花费时间 kkk,在挂 k

2021-09-03 13:57:18 130

原创 2021杭电多校第二场 1005——I love string

题目大意给你一个字符串,你遍历这个字符串,每次从这个字符串的第一个摘下一个字符插入到一个新字符串中,你使得新字符串的字典序最小,问你有多少种不同方法得到字典序最小的新字符串。第一种插入方法是插入到新字符串的前面,第二种是插入到新字符串的后面。解题思路发现只有前面连续的相同字符才有两种插入方法,后面就只能有一种插入方法了,所以我们看前面有多少个相同连续的字符,那么答案就是 222 的这么多次幂。Code#include <bits/stdc++.h>#define ll long l

2021-09-03 10:46:14 126

原创 2021杭电多校第四场 1008——Lawn of the Dead

题目大意给你一个 n×mn\times mn×m 的矩阵,给你 kkk 个点,表示这些点不可走,你从起点 (1,1)(1,1)(1,1) 出发,你每次只能向下或向右走,问你有多少个点是可到达的解题思路由于这道题没有限制总的 n×mn\times mn×m 之和小于一个值,题面给的是 ∑n≤107,∑m≤107\sum n \leq 10^7, \sum m \leq 10^7∑n≤107,∑m≤107,所以不可以直接 bfsbfsbfs我们可以用两个线段树来做,两个线段树进行滚动,一个线段树维护的是

2021-09-03 10:16:52 131

原创 2021杭电多校第二场 1001——I love cube

题目大意给你一个边长为 n−1n-1n−1 的立方体,问你在其中能找出多少个等边三角形,三角形的三条边必须平行于坐标面解题思路我们发现一个边长为 111 的立方体中可以找出 888 个不同的等边三角形。那么我们只需要计算有多少个边长为 1,2,3,⋯ ,n1, 2, 3, \cdots, n1,2,3,⋯,n 的立方体。我们发现边长为 1,2,3,⋯ ,n−11, 2, 3, \cdots, n-11,2,3,⋯,n−1 的立方体分别有 (n−1)3,(n−2)3,⋯ ,13(n-1)^3, (n

2021-08-31 10:38:56 163

原创 2021杭电多校第三场 1009——Rise in Price

题目大意给你一个 n×nn \times nn×n 的矩阵,每个点有两个值,代表当前点物品的累加的数量和累加的价值,累加的价值就是说你到达了这个点,你所有物品的价值都会累加上这个价值,累加的数量表示你到达了这个点你的物品数量会加上这个值,你每次只能向下或者向右走。问你从 (1,1)(1, 1)(1,1) 走到 (n,n)(n, n)(n,n) 所获得的总价值最大是多少,总价值为数量乘以价值。1≤n≤1001 \leq n \leq 1001≤n≤100解题思路dpdpdp由于每个点有两个状态,我们

2021-08-30 18:53:08 138

原创 2020CCPC长春 F. Strange Memory

题目链接题目大意给你一棵树,让你求树上所有满足 ai⨁aj=alca(i,j)a_i \bigoplus a_j = a_{lca(i, j)}ai​⨁aj​=alca(i,j)​ 的点对 i⨁ji \bigoplus ji⨁j 之和解题思路我们可以枚举每个点作为 lcalcalca 的贡献,这是一个不修改的子树问题,可以用树上启发式合并来做(dsu on tree),复杂度 O(nlogn)O(nlogn)O(nlogn)我们怎么求 i⨁ji \bigoplus ji⨁j,我们可以用一个桶来记录

2021-08-27 22:10:59 133

原创 树上启发式合并(dsu on tree)

dsudsu是并查集的意思,但是dsu on tree和并查集没什么关系。主要是借助并查集的思想,在树上进行一个合并。解决什么问题树上的问题大体可分两种,子树问题和树链问题。树链问题可以用树链剖分来做,dsu on tree主要是解决不修改的子树问题。核心思想将轻子树往重子树上合并,删除轻子树的贡献。什么是轻子树和重子树我们定义轻子树是轻儿子所在的子树,重子树是重儿子所在的子树。具体做法处理轻子树及其子树的答案处理重子树及其子树的贡献,并不删除贡献暴力统计所有轻子树及其子树的贡献与上

2021-08-27 14:20:19 144

原创 2021杭电多校第二场 1002——I love tree

题目大意给你一棵树,有两种操作1、将路径 uuu 到 vvv 上的点按照与 uuu 的距离,加上 1 4 9⋯i21 \ 4 \ 9 \cdots i^21 4 9⋯i22、问节点 xxx 的值为多少解题思路树链剖分 + 线段树首先我们可以进行一个树链剖分,这样便于处理操作1。对于操作1,我们首先找出 uuu 与 vvv 的 lcalcalca对于树链 uuu 到 lcalcalca,我们每个节点所加的值为(dep[t]−dep[u]+1)2(d

2021-08-25 14:04:51 127

原创 dfs序与树链剖分

dfs序dfs序是对于一棵树而言,我们dfs的顺序。主要目的是用于对一棵树上的结点形成一个数组,可以用于建线段树等操作。在dfs序中,每个节点只出现一次(欧拉序每个节点出现两次)。比如者一棵树的dfs序为 ABCDEF时间戳每个节点第一次被访问的时间dfs序的性质父节点的时间戳小于子节点的时间戳树链剖分可以解决的问题对于树上两个节点 u,vu, vu,v1、将路径 uuu 到 vvv 上的点都加上一个值2、求路径 uuu 到 vvv 所有点的权值和3、将节点 uuu 为根的子

2021-08-24 22:01:45 173

原创 2021牛客多校第三场 B——Black and white

题目大意给你一个 n×mn \times mn×m 的矩形,每填一个格子都有一个花费,当你把一个矩形四个角中任意三个角填上了,另外一个角自动填上,问你最小花费是多少解题思路首先我们肯定是从花费小的开始填,我们可以维护一个并查集。当一个点被填上之后,把这个点所在的行列都加入到一个并查集中。当我们要填一个点的时候,如果这个点的行列在同一个并查集中,说明这个点是可以自动被填上的。Code#include <bits/stdc++.h>#define ll long long#defin

2021-08-24 20:11:58 185

原创 2021杭电多校第二场 1004——I love counting

题目大意给你 nnn 个数的数列 vvv,有 mmm 次询问,询问 [l,r][l, r][l,r] 内满足 v⨁a≤bv \bigoplus a \leq bv⨁a≤b,不同的 vvv 有多少个解题思路莫队分块分块大小 k=nk = \sqrt nk=n​我们将询问按区间左端点分块,然后排序,先按块号排,如果块号相同按右端点升序排。然后我们将 vvv 数组分块。我们如何统计答案呢?我们用桶来统计数是否出现过。我们对于每一个询问的区间从高位到地位考虑 bbb我们记录一个变量 sss 使得我

2021-08-23 23:37:27 139

原创 2021牛客多校第二场 L——WeChat Walk

题目大意给定 nnn 个人之间的好友关系,每次单点增加一个人的步数,求每个人在自己好友列表保持冠军的时间解题思路分块我们将 nnn 个点分为大小点,定义 s=ms = \sqrt ms=m​,对于度数大于 sss 的点我们称为大点,对于度数小于等于 sss 的点称为小点。可知,大点个数不超过 sss。对于小点的更新,我们直接暴力更新,复杂度不超过 m\sqrt mm​对于大点的更新,大点所连大点我们可以直接更新,复杂度也不超过 m\sqrt mm​对于大点所连大点,我们考虑开一个数组 c[i]

2021-08-23 18:13:06 131

原创 2021牛客多校第二场 K——Stack

题目大意有一个单调栈,你需要往里面放 nnn 个数,这些数是一个排列。你要保证,放入第 ppp 个数的时候单调栈的大小为 xxx解题思路对于没有指定大小的地方,我们可以认为此时的大小为前一个位置大小加一,即b[i]=b[i−1]+1b[i] = b[i-1] + 1b[i]=b[i−1]+1,显然,我们后面一个数不能与前一个数之差大于1,这样会导致中间缺少元素可放,最后我们倒着模拟一遍栈即可得出答案。Code#include <bits/stdc++.h>#define ll lon

2021-08-23 10:15:00 92

原创 2021牛客多校第二场 J——Product of GCDs

题目大意给你 nnn 个数,让你从中挑出 kkk 个数组成一个集合,设第 iii 个集合的最大公约数是 gig_igi​,对于所有集合,求 ∏gi\prod g_i∏gi​解题思路我们可以枚举 gig_igi​,显然 gig_igi​ 是从 1 到最大值,,设 gig_igi​ 的倍数有 mmm 个数,那么我们算 gig_igi​ 的贡献是 CmkC_m^kCmk​ 吗?,其实不是,因为 gig_igi​ 的倍数组成的集合中,可能最大公约数是 gig_igi​ 的倍数,所以我们要减去这些值才是正确的。

2021-08-22 00:17:07 117

原创 2021牛客多校第二场 I——Penguins

题目大意给你两个 20×2020 \times 2020×20 的地图,’#’ 代表不可走,’.‘代表可走。对于第一张图,你需要从右下角走到右上角,对于第二张图你需要从左下角走到左上角。注意,你是同时操控两个小人,他们左右方向相反,上下方向相同,如果走某个方向,有一个人下一步是不可走,那么他会停在原地。问你最少需要多少步两个人都走到终点,如果步数相同,输出操作顺序字典序最小的,最短步数,操作顺序,最后把走的路径上的点标位’A’解题思路我们将第二张图反转一下,这样我们方便一点。定义操作顺序 ‘D’, ‘

2021-08-20 16:32:58 86

原创 2021杭电多校第九场 1002——Just another board game

题目大意有一个 n∗mn*mn∗m 的棋盘,每个格子上有一个值,现在有一个棋子在 (1,1)(1, 1)(1,1),有两个人轮流移动这个棋子,最多移动 kkk 步。第一个人有两种操作,横着移动棋子或者终止游戏第二个人有两种操作,竖着移动棋子或者终止游戏游戏得分即为终止游戏时棋子所在格子的值。第一个想最大化得分,第二个人想最小化得分,第一个人先走,输出最终得分解题思路当 (1,1)(1, 1)(1,1) 位置是最大值,那么得分就为这位置的值考虑 k=1k = 1k=1第一个人一定是走到第一行

2021-08-17 22:37:12 206 2

原创 2021杭电多校第九场 1007——Boring data structure problem

题目大意题如其名有一个双端队列,进行 nnn 次操作,有四种操作L:L:L:在队首插入一个数 tottottotR:R:R:在队尾插入一个数tottottotGxG xGx删除队列中的数 xxxQ:Q:Q:问你队列中最中间的数是什么解题思路用数组模拟链表,数据有 1e71e71e7,可能接受不了很大的常数,我们需要开5个数组mp:mp:mp:用来映射数的下标l:l:l:前一个数的下标r:r:r:后一个数的下标acc:acc:acc:在最中间的数的左侧还是右侧ls:ls:ls:存数的

2021-08-17 20:31:28 216 1

原创 2021杭电多校第九场 1003——Dota2 Pro Circuit

题目大意有 nnn 个人,每个人有一个初始分值,然后再给你 nnn 个数,表示接下来一场比赛获得第 iii 名的得分。问你这场比赛之后每个人可能获得的最好名次和最坏名次。分数并列则名次并列,且并列名次跳过,如四个人得分为5 3 3 2,那么排名是1 2 2 4。n<=50001<=T<=20n <= 5000 1 <= T <= 20n<=50001<=T<=20,最多有8组数据n>100n > 100n>100解题思路考虑直

2021-08-17 20:07:08 232

原创 2021牛客多校第二场 G——League of Legends

题目大意有 nnn 个人,每个人玩游戏的时间为 [li,ri)[l_i, r_i)[li​,ri​),让你把他们分成 kkk 组,使得每一组内共同游戏时间(区间交)至少为 1,每个人必须分到一个组,每个组必须至少有一个人,让你使得所有组共同游戏时间之和最大,输出所有组最大共同游戏时间解题思路DP + 单调队列优化我们将所有人按左端点排序,我们会发现有一些特别的大区间,这些区间可以完全覆盖其他区间,我们考虑这些区间,如果把它们单独拿出来,它们的贡献为区间长度,如果它们与它所包含的区间组合,不会对它包含

2021-08-17 19:28:50 333

原创 2021牛客多校第二场 F——Girlfriend

题目大意给你两个阿波罗尼斯球,让你求两个求的体积交Code#include <bits/stdc++.h>using namespace std;struct node{ double x, y, z;};const double PI = acos(-1.0);node a, b, c, d;double k1, k2;int main(){ int t; cin >> t; while(t--){ cin >> a.x >>

2021-08-16 23:40:06 127

原创 2021牛客多校第二场 D——Er Ba Game

题目大意给你两对数,比较按照规则比较大小解题思路按照规则模拟Code#include <bits/stdc++.h>using namespace std;int main(){ int t; scanf("%d",&t); while(t--){ int a1, b1, a2, b2; scanf("%d%d%d%d",&a1, &b1, &a2, &b2); if(a

2021-08-14 14:24:34 86

原创 2021牛客多校第二场 C——Draw Grids

题目大意有一个 n∗mn * mn∗m 的点阵,每次可以连两个相邻的点,不能连连成一个封闭图形,谁不能连谁就输了。题解猜的Code#include <bits/stdc++.h>#define ll long long#define qc ios::sync_with_stdio(false); cin.tie(0);cout.tie(0)#define fi first#define se second#define PII pair<int, int>#de

2021-08-13 20:56:41 108

原创 2021牛客多校第二场 B——Cannon

题目大意像走象棋,棋盘有两行,很多列,第一列上有 nnn 个炮, 第二列上有 mmm 个炮,炮的规则就和象棋一样,可以隔一个打一个。现在有两种规则,对于每一种规则你需要回答一个数。规则一:你可以任意地下象棋,定义 fif_ifi​ 表示你下 iii 步之后可能形成的局面求 f0 xor f1 xor … xorfn+m−4f_0 \ xor \ f_1 \ xor \ … \ xor f_{n+m-4}f0​ xor f1​&n

2021-08-13 16:24:39 103

原创 2021牛客多校第二场 A——Arithmetic Progression

题目大意给你一个长度为 nnn 的数列 aaa ,数列中每个元素都不一样,问你存在多少个区间,这些区间内的数排序后是一个等差数列解题思路对于一个区间,如果这个区间内的数排序后的元素可以构成一个等差序列,那么一定满足下列性质max−min=(r−l)×gcdmax - min = (r - l) \times gcdmax−min=(r−l)×gcd其中 gcdgcdgcd 是区间差分绝对值的最大公约数minminmin 是区间的最小值maxmaxmax 是区间的最大值我们做这题的思想是,枚举

2021-08-12 00:17:58 317

原创 POJ2796 Feel Good——单调栈

题目链接题目大意给你 nnn 个数,求一个区间和区间的值,定义区间的值为区间内所有数之和乘以区间最小值,输出区间的值以及区间的左右端点解题思路我们考虑每个数作为所在区间的最小值时,这个区间的左右端点是什么。这时,我们可以正反跑两次单调栈,分别得到这个数作为区间最小值时,这个区间的左右端点。考虑正向跑单调栈求区间左端点。维护一个上升的单调栈如果当前元素比栈顶大,直接push进去,这个数的区间左端点就是栈顶元素的下标+1如果当前元素小于等于栈顶元素,一直pop栈直到满足当前元素比栈顶大,然后取栈

2021-08-11 15:57:33 122

原创 2021牛客多校第一场 K——Knowledge Test about Match

题目大意给你一个长度为 nnn 的数列 bbb ,让你把这 nnn 个数重新排列,使得 ∑sqrt(abs(bi−i))\sum sqrt(abs(b_i - i))∑sqrt(abs(bi​−i)) 最小,允许你的答案与最优答案相差不超过 4%4\%4%解题思路没啥思路乱搞一下,看不太懂Code#include <bits/stdc++.h>#define ll long long#define qc ios::sync_with_stdio(false); cin.tie(0

2021-08-10 21:37:15 121

原创 2021牛客多校第一场 J——Journey among Railway Stations

题目大意有 nnn 个车站,每个车站开放时间为 [ui,vi][u_i, v_i][ui​,vi​],车辆经过第 iii 个车站到第 i+1i+1i+1个车站的时间为 cost[i]cost[i]cost[i],如果提前到达一个车站可以等待,如果到达第 iii 个车站的世界超过 viv_ivi​ 则不能在这个车站停车,有 qqq 次操作0 l r:0 \ l\ r:0 l r:能否从 lll 车站出发经停每个车站最后到达 rrr 车站,可以输出 YesYesYe

2021-08-10 21:09:48 275 2

原创 2021牛客多校第一场 I——Increasing Subsequence

题目大意给你一个 nnn 个数的排列 PPP两个人轮流在其中取数,按照以下规则1、每个人取的数的下标大于之前自己所取数的下标2、每个人取的数要大于之前两个人所取的数问两个人所取数的个数的期望解题思路期望DP定义 dp[i]dp[i]dp[i] 表示当前在位置 iii 还需要 dp[i]dp[i]dp[i] 的代价到达终点dp[i]=vi+∑ci∗dp[j]dp[i] = v_i + \sum c_i * dp[j]dp[i]=vi​+∑ci​∗dp[j]答案是 dp[0]dp[0]dp[

2021-08-09 20:47:08 168

原创 2021牛客多校第一场 H——Hash Function

题目大意给你 nnn 个数,找出一个数 xxx(可以不在这些数之中),让这 nnn 个数对 xxx 取模互不相等解题思路首先,很容易发现答案一定在 [n,max(ai)i∈[1,n]+1][n, max(a_i) i \in [1, n] + 1][n,max(ai​)i∈[1,n]+1] 之中然后我们可以得出一个结论,任意两个数之差的绝对值一定不是答案,且任意两数之差的绝对值的因子也一定不是答案首先我们可以用FFT处理出任意两数之差的绝对值,可以参考这篇博客如何求出任意两数之和,我们给数变为一个

2021-08-08 21:13:40 131

原创 小圆前辈的素数——FFT

题目大意给你两组数第一组 nnn 个, 第二组 mmm 个,在第一组数中选一个数,第二组数中选一个数,问你这两个数之和是素数有多少种选法解题思路暴力的方法:遍历第一组,然后遍历第二组,进行判断,复杂度 O(n∗m)O(n * m)O(n∗m) 对于数据量大于 10510^5105 的问题显然无法解决。FFT:我们用两个桶来记录第一二组数,然后对两个桶进行FFTA(x)=xa1+xa2+xa3......xanB(x)=xb1+xb2+xb3......xbmA(x) = x^{a_1} +

2021-08-08 20:44:48 147

原创 2021牛客多校第一场 F——Find 3-friendly Integers

题目大意定义一个“3友好数”,把一个十进制数的任意连续子串之和模3等于0,则这个数是一个“3友好数”,每次问你 [l,r][l, r][l,r]区间内有多少个“3友好数”解题思路思路1主要有两种思路,第一种是数位DP,我们记录从前面的数位到目前为止,各数位之和是否出现过模3等于0,1,2的情况Code1#include <bits/stdc++.h>#define ll long long#define qc ios::sync_with_stdio(false); cin.ti

2021-08-07 22:50:19 128

原创 2021牛客多校第一场 E——Escape along Water Pipe

题目大意给你一个这样的图,你可以旋转每一块,从起点到终点(玩过赛尔号的都懂)解题思路模拟 BFSBFSBFS,记录一下进入的方向和坐标即可typetypetype 数组从上进入是0,从左是1,从下2,从右3.这个 typetypetype 数组是用来计算转动角度的,比如type[0][2]type[0][2]type[0][2]意思是上一个格子从上进入,这一个格子从下进入。你会发现4∗44*44∗4种情况每一种情况都和一种管子一一对应(这里面的“-1”是不合法情况),然后type[0][1]t

2021-08-05 21:43:11 170 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除