
CF
穷源溯流
路很长,尽管走便是。
-
原创 Codeforces Round #701 (Div. 2) D. Multiples and Power Differences(思维+构造)
给出一个矩阵 a,要求构造一个矩阵 b,使得b[i][j] 是 a[i][j] 的倍数 b[i][j] 与其四周相邻的数之间相差的绝对值为,其中 输出 b 矩阵如果题目有思路,那么这道题就是一道水题我们可以想着减少条件限制,如果 b 矩阵中的每个元素为 a 矩阵所有数的倍数的话,那么第一个条件就可以省略了这个数为 a 矩阵中所有数的 lcm 即可,且 lcm 最大为 3*4*5*7*11*13*15但是 b 矩阵所有的数不能全为 lcm,要满足条件 2 ,在相应的...2021-02-25 16:10:568
0
-
原创 Codeforces Round #701 (Div. 2) B. Replace and Keep Sorted(推导)
给出长度为 n 的数组,有 q 次询问,以及特殊元素 k,每次询问给出 [l,r] 区间,要求构造一个长度相同的区间,使得构造的区间满足严格递增 有相同的长度 所有的元素都属于 与所询问区间只有一个位置处的元素不同求总共可以构造多少这样的区间对于给定的区间直接暴力统计不就可以了吗,代码如下:for(int i=x;i<=y;i++){ if(i==x) ans+=a[i+1]-1ll-1; else if(i==y) ans+=1ll*k...2021-02-25 15:59:089
0
-
原创 Codeforces Round #701 (Div. 2) C. Floor and Mod(数论)
给出 x,y 使确定,满足且 以上条件的,<a,b> 有几组首先满足上述条件的一定满足,这里大家可以自己排除一下x,y 的范围都很大,要么 ,要么优化至首先妄图打表解决,最终可以发现,其中,所以得到,而这已经很接近的复杂度了放缩一下 ,,所以;最终可以得到 :,这样 k 就可以用来枚举了而 b 同样可以,,所以知道了 k,b 之后 a 便可以求出来,所以只要枚举 k 来统计答案即可int main(){ rus...2021-02-25 15:44:0811
0
-
原创 Codeforces Round #704 (Div. 2) C. Maximum width(思维+DP)
给出两个字符串 s 和 t,s 中一定有一个子序列可以构成 t,假设构成 t 的子序列的下标为 ,求对于 t 的每一个字符,都可以找到 s 中最大匹配的位置和最小匹配的位置,找到之后两相邻字符之间的最大距离即为答案const int N=5e5+5; int n,m; int i,j,k; char s[N],t[N]; int l[N],r[N];int main(){ while(~sdd(n,m)){ ss(s+1); s...2021-02-23 23:17:4182
0
-
原创 Codeforces Round #704 (Div. 2) B. Card Deck(暴力)
给出大小为n 的排列,每次操作从后面开始取,取任意大小为 k 的长度组成一种新的排列,问最后这种排列字典序最大是多少其实很容易发现最优的排列应该类似于 也就是说从后面开始找这几个点,但是不能够保证 n 之后我们要找的点是 n-1 ,因为 n-1 可能已经与 n 组成排列,所以利用一个数组来找到下一个需要找的点是什么即可const int N=5e5+5; int n,m; int i,j,k; int a[N]; bool vis[N...2021-02-23 21:58:2896
0
-
原创 Codeforces Round #703 (Div. 2) C2 - Guessing the Greatest (hard version)(二分+思维)
有 n 个数构成一种排列,每次询问一个区间,可以给出区间中第二大数的位置,在 20 次询问中找到区间最大数的位置又是一道交互题,一眼二分一开始想的是对于区间询问其第二大数的位置 pos,然后再查询区间中的第二大数的位置,如果两者相同,那么一定在,否则在中,但是策略被卡,询问次数过多值得注意的是题目一开始就可以得到中的第二大数的位置,利用这个位置与 mid 就可以完成 logN 的复杂度但是中间需要注意区间中第二大数的位置 pos 是固定的,二分过程...2021-02-20 21:58:4321
0
-
原创 Codeforces Round #703 (Div. 2) B. Eastern Exhibition(思维)
NoteHere are the images for the example test cases. Blue dots stand for the houses, green — possible positions for the exhibition.First test case.Second test case.Third test case.Fourth test case.Fifth test case.Sixt...2021-02-19 22:04:4932
0
-
原创 Codeforces Round #703 (Div. 2) D - Max Median(二分+思维)
有 n 个数,在长度>=k 的任意子区间内寻找其中位数,使得这个中位数最大记得洛谷上有一个题是主席树+二分用到的一个芝士我们二分枚举答案 x,大于等于 x 的数记为 1,小于 x 的数记为 -1,若有任意一个长度 >=k 的子区间满足和为正数,那么 x 可以记为最小答案这里可能会有疑惑,枚举的 x 不存在于原数组内该怎么办?例如在 5 1 4 2 6 中查找 3 (3 此时是要查找的中位数),虽然此时 3 为答案,但是 3 并不是最后的答案而二分单调性的证明:...2021-02-19 17:33:4524
0
-
原创 Educational Codeforces Round 104 (Rated for Div. 2) B. Cat Cycle(规律)
有两个人走格子,给出格子的数量 n,其中 走,走,当两个人走到同一位置 x 时,由于 B 太年轻了,所以将 x 让给 A,B 到达 x+1,同时两个人都不喜欢走回头路,即 A 从 x 到达 x+1 时,B 不会再走 x,而是到达 x+2若每次直走一个格子,那么经过 k 步后,B 到达那里找规律可以发现当 n 为偶数的时候,两者不会相遇当 n 为奇数的时候,每经历步,B 都会多走一步int main(){ //IOS; rush(){ ...2021-02-16 14:03:56120
0
-
原创 Educational Codeforces Round 104 (Rated for Div. 2) D. Pythagorean Triples(数学+枚举)
给出数 n,求三个数,且满足的勾股数有多少组与可以解得和由于每个数的范围都是,所以只能枚举 的值,这样复杂度就变为int main(){ //IOS; rush(){ sd(n); int ans=0; for(ll i=1;(i*i-1)/2<=n;i++){ ll a=i,b,c; if((a*a-1)%2) continue;...2021-02-16 13:54:2738
0
-
原创 Educational Codeforces Round 104 (Rated for Div. 2) C. Minimum Ties(构造+规律)
有 n 支队伍,每两支队伍之间都要进行一场比赛,胜利的队伍得 3 分,失败的队伍不得分,平局各得 1 分,比赛结束后,一共进行场比赛,要求最后所有队伍的得分相同,构造每场比赛的胜利情况x 与 y 比赛 ,x 胜利表示为 1,y 胜利表示为 -1,平局表示为 0一开始忽略平局双方都要得分,但是平局时对最后的结果仍然有影响,打表可以发现当 n 为 4 时,对局分别为1 2 1 1 3 0 1 4 -1 2 3 1 ...2021-02-16 11:12:29113
2
-
原创 Codeforces Round #700 (Div. 2) C. Searching Local Minimum(二分)
有最多 100 次询问,在 100 次询问之内,找到一个数 a[i] ,其中 a[i-1]>a[i]<a[i+1],当然一共有 n 个数,且这个数列为长度为 n 的排列二分查找一个区间 [l.r] 使得 a[l]>a[l-1] 并且 a[r]<a[r+1],如果中间 mid 位置 a[mid]>a[mid+1] ,那么 l 变为 mid+1,反之 r=midconst int N=1e6+5; int n,m,t; int i...2021-02-08 14:55:4049
1
-
原创 Codeforces Round #700 (Div. 2) D1. Painting the Array I(暴力+后缀)
有 n 个数,可以将他们分成 2 组,但是相对顺序不可以被打乱,在每一组中相邻的多个相同的元素 a,必须合成为一个元素 a,问如何构造这两组,使得元素数量最多题目翻译的可能不够清楚,建议读懂原题。感觉这应该是一道 dp 的题目,但是却没有用 dp 来解如样例 1 所示,预处理得 1(2) 2(2) 3(3) 其中括号内为元素的数量,括号前为元素的大小这样很明显两组分别为 1 2 3 和 1 2 3,多余的 3 无论放到哪一组中都会被合成,这样算法就很好实现了但是需要注意,...2021-02-08 09:40:22208
1
-
原创 Codeforces Round #700 (Div. 2) B. The Great Hero(贪心)
有 n 个怪物,1 个英雄,英雄的攻击和体力分别为 A 和 B,怪物的攻击分别为 a[i] 和 b[i],每次攻击一次怪物,英雄损失 a[i] 的体力,对应的怪物损失 A 点体力,问英雄是否可以将所有怪物打败注意即使 B<a[i] 但是 B>0,英雄仍然可以对怪物造成 A 点伤害显然,怪物伤害低的先被击败即可,留着一丝血量去攻击伤害高的const int N=1e6+5; int n,m,t; int i,j,k; pll a[N...2021-02-08 09:23:0457
1
-
原创 Codeforces Round #699 (Div. 2) B. New Colony(模拟)
有 k 块石头从前面滚来,当 a[i]<a[i+1] 时,石头停止滚动,并且 a[i]++,否则石头将一直滚下去,并且如果滚到 n+1 处,那么认为失败如果失败输出 -1,否则输出第 k 块石头的位置如果 k 很大,那么一定会失败,因为将所有的 a[i] 填满变为平地即可,而 a[i] 很小,n 也很小,暴力即可const int N=1e5+5; int n,m,t; int i,j,k; int a[N];int main(...2021-02-06 11:57:5046
1
-
原创 Codeforces Round #699 (Div. 2) C. Fence Painting(暴力)
有 n 块木板,每一块都有颜色 a[],但是想让每一块木板变为 b[i],请了 m 个工人,每个工人可以将任意一个木板涂为 c[i] ,但是必须工作,同时工人按照顺序拜访,问 m 个工人是否可以完成你的心愿由于颜色会覆盖,所以我们反向思考,后面的工人涂完之后,前面的不可以将他们更改,注意这一点即可前面需要处理哪一块需要更改,以及考虑工人是否可以白干(即原来的木板是否有 c[i],再将其涂为 c[i])const int N=1e5+5; int n,m,t; ...2021-02-06 11:40:0989
0
-
原创 Codeforces Round #687 (Div. 2, based on Technocup 2021 Elimination Round 2) D. XOR-gun(前缀异或+暴力+鸽笼原理)
有一个不减序列,每次可以将相邻的两个数相异或,并放到原来的位置,最少多少次可以破坏这个不减序列首先这个题目要确定一个范围,[L,R] ,在这个范围内如果前缀异或出现[L,i] > [i+1,R],那么将不满足不减的性质但是如果枚举的话,起点,终点,中间点,复杂度为但是根据鸽笼原理,如果有三个数都是长度为 x 的二进制数,那么后两个数异或长度一定小于 x,考虑到每个数不超过 1<<30 所以当 n>60 时,答案一定为 1const int ...2021-02-03 16:27:3013
0
-
原创 Codeforces Round #687 (Div. 2, based on Technocup 2021 Elimination Round 2) B. Repainting Street(暴力)
有 n 块木板一次连接,每次可以选择一种颜色涂连续 k 的长度,问最少几次可以将 n 块木板涂成一样的颜色题目入手点为 c∈[1,100]枚举能够涂成的颜色,求最小值即可const int N=1e5+5; int n,m; int i,j,k; int a[N];int main(){ //IOS; rush(){ sdd(n,m); int minn=100,maxx=0; ...2021-02-03 11:44:4728
0
-
原创 Codeforces Round #687 (Div. 2, based on Technocup 2021 Elimination Round 2) C. Bouncing Ball(逆向思维)
有 n 个格子,0代表空,初始时扔一个球至 p,每次小球可以条 k 个格子,但是小球的落地点必须为 1将 0 变为 1,花费为 x 将第一个格子删除,花费 y要求小球跳出这 n 个格子,求最小的花费是多少再不删除前面的格子的时候,第一次跳跃最多跳到 p小球成功出去,最后的格子范围为 [n-k+1,n] ,所以枚举最后一次跳跃的位置,寻找最小值即可const int N=5e5+5; int n,m; int i,j,k; int a[N...2021-02-03 11:40:5414
0
-
原创 Codeforces Round #698 (Div. 2) E. Nezzar and Binary String(思维+线段树)
给出两个长度为 n 的 01 字符串,给出 m 次操作,问 m 次操作过后是否可以将第一个字符串变为第二个字符串每次操作将 [l,r] 内的字符严格小于 (r-l+1) 的字符串反转,即 1 变为 0,0 变为 1,最多反转 (r-l) 个字符 如果没有严格小于区间长度一半的字符,那么这段字符将被丢弃题目说明两个字符串长度全为 n,所以只要长度不改变就好我们将第二个字符反向操作,看是否能将其变为第一个字符串,区间覆盖问题,利用线段树求解最后再一个一个进行询问...2021-01-31 22:53:0926
1
-
原创 Codeforces Round #698 (Div. 2) B. Nezzar and Lucky Number(数学)
有 n 个数,给出一个数 d定义好数,有一个 n 位数,只要有一位为 d,那么他是好数,多个好数之和也是好数判断这 n 个数是否为好数如果 x >=10d ,那么 10d+1,10d+2,……10d+9 都是好数,这样之后的数都可以凑出来 当 x<10d,如果 x 满足 10a+bd 的形式,a b 为任意数,那么就是好数const int N=1e5+5; int n,m; int i,j,k; int a[N];bool g...2021-01-31 10:53:4873
0
-
原创 Educational Codeforces Round 103 (Rated for Div. 2) C. Longest Simple Cycle(思维)
有 n 条链,给出这 n 条链的长度 c[i]-1,从第二条链开始,a[i] 表示第 i 条链的头节点 1 链接前一条链的 a[i] 节点,b[i] 表示第 i 条链的尾节点链接前一条链的 b[i] 节点,在整张图中找到一个环,使得换的长度最大题目与图没有任何关系,我们可以发现 a[i]=b[i] 时,之前所形成的链一定要断,即此时的 a[i] 一定是环中度为 2 的节点如果 a[i]!=b[i] 那么就要判断是以之前的链继续,还是从 a[i] b[i] 开始重新建一条链(...2021-01-31 10:23:0631
0
-
原创 Educational Codeforces Round 103 (Rated for Div. 2) D. Journey(前缀+后缀+思维)
给出 n 条边,有 n+1 个不同的城镇,每一条边都有一个方向L 表示从 i 到 i-1 有一条边 R表示从 i 到 i+1 有一条边旅游者从每一个城镇 i 出发,每到达下一个城镇时,所有的边都会反转,L 变为 R,R 变为 L,问对于每个城镇而言,旅行者可以到达的城镇数目最多是多少首先对于每一个城镇 i 而言,如果 i 的左边为 L,那么他可以前往 i-1,i 的右边为 R,那么他可以前往 i+1我们以向右走为例:因为从 i 走到 i+1 之后,R变为 L,L 变为 R,那么如...2021-01-30 10:56:5464
0
-
原创 Codeforces Round #698 (Div. 2) C. Nezzar and Symmetric Array(数学)
有一个数组 a,其中对于每一个 x,都有 -x 属于 a 数组,现定义 di= { ai 与数组 a 中其他元素的距离},题目给出数组 d ,问是否存在数组 a 与之对应题目模拟一下找一下规律即可假设 a 数组有三个正数,a,b,c 按升序排列,那么剩下的三个数一定是他们的相反数,那么 d1=2*(a+b+c),d2=4*b+2*c,d3=6*c,题目已经给出 d 了,判断他们时候是整数,或者都是正数,注意,如果 a 数组中有一个为 0,那么不满足互异性const int...2021-01-29 18:08:4635
0
-
原创 Educational Codeforces Round 100 (Rated for Div. 2) C. Busy Robot(模拟+思维)
给出 n 个操作,t[i] x[i] 表示在 t[i] 时刻开始移动至 x[i] 位置,如果机器人在某一时刻正在移动,那么他将不听当前操作,继续执行原来的操作,如果静止,那么执行当前操作,初始时静止由于题目将时间和空间相关联,思路比较绕;首先要明白如果机器人不动,其位置不改变但是时间一直改变设计四个量 pos,tag 为当前位置和目标位置,cur,next 为当前时间和移动结束时间,这样next=tag-pos+cur 等式成立,将时间和空间关联起来这样就比较容易想...2021-01-26 15:59:2028
0
-
原创 Educational Codeforces Round 100 (Rated for Div. 2) B. Find The Array(思维)
构造一个美丽数组 b,要求 在 b 数组中,任意两个相邻的数必须满足小的数整除大的数从第一个条件下手,很容易想到 1 a[2] 1 a[4] 1 的构造方法在验证算法正确性,其中将 a[2] a[4] 看作整体,a[1] a[3] a[5] 看作整体,一定有一方大于另一方,或者两者相等,所以成立const int N=2e5+5; int n,m; int i,j,k; int a[N]; int t[N];signed main...2021-01-26 15:08:2725
2
-
原创 Codeforces Round #691 (Div. 2) C. Row GCD(数论)
给出 n 个数,记为数组 a,给出 m 个数,记为数组 b,对于每一个数组 b 中的元素 x,输出 gcd(a1+x,a2+x,……an+x)假设有 3 个数 a,b,c,(a>b>c),这三个数 所以要求的那个式子就变成了其中 x 为 b 数组中的当前值,所以只需要预处理出除 a[1]+x 这一项的 gcd 即可const int N=2e5+5; int n,m; int i,j,k; ll a[N]; ll b[N];...2021-01-23 20:09:0026
0
-
原创 Codeforces Round #691 (Div. 2) B. Move and Turn
有一个机器人,一开始的朝向是任意的,方向只有正北,正南,正东,正西 4 个方向,机器人只能向前走,且每次走完了之后都会旋转 90° ,问走 n 步后可能到达多少个不同的格子可以发现走的步数与顺序无关,令 x=n/2如果走偶数步,那么在水平方向上有 ,在竖直方向上同样也有,我们需要计算有多少项,x=-x+2(c-1),加上首项 -x,一共有 x+1 项,所以答案为 如果走奇数步,那么水平方向可能有 x+1 步,也可能有 x 步,所以答案为 2*(x+1)*(x+2)int m...2021-01-23 11:44:3223
0
-
原创 Codeforces Round #694 (Div. 2) C. Strange Birthday Party(贪心)
题目描述的比较复杂,给出每个人一个权值 k[i],再给出 m 件商品的价格 c[j],每一个人可以选择前 k[i] 件商品作为礼物,也可以直接要c[k[i]] 钱,显然如果买商品的话这件商品就会售空,但是对应商品没有了我们可以接受这件商品的价值,问给每一个人礼物所要的最少花费题目一开始想的是动态规划,像是背包问题,但又不是,直接贪心求解,将 k[] 数组按照从大到小排序,因为最小的一定被拿,依次取商品即可const int N=3e5+5; int n,m; ...2021-01-21 13:49:3030
0
-
原创 Codeforces Round #694 (Div. 2) B. Strange List(模拟)
给出 n 个数,给出数 q,在数组 a[] 中,如果 a[i] 不能被 q 整除,那么结束游戏如果可以被 q 整除 ,那么在数组后面添加 q 个 a[i]/q ,最后输出数组的和按照题意模拟即可水过去,时间复杂度 O(n+nlogn)(大概)const int N=1e5+5; int n,m; int i,j,k; ll a[N]; vector<pll> v;signed main(){ IOS; r...2021-01-21 11:48:5938
0
-
原创 Codeforces Round #696 (Div. 2) C. Array Destruction(模拟+思维)
有 2n 个数,第一次任意选择两个数,将他们删掉,记这两个数的最大值为 res,再从剩下的 2n-2 个数中选择两个数,在将他们删掉,但是这两个数要满足相加等于 res,将 res 更新为这两个数的最大值,以此类推,直至将所有数删掉,问是否可以完成,如果完成输出步骤题目中 n=1e3 ,摆明了要来暴力,题目中 a[i]<=1e6,可以开数组大小至 1e6,数组量再大一点可能要离散化,这里采用 map推两遍样例可以发现,如果存在答案的话,那么有种博弈的感觉,第一次一定将最大的...2021-01-20 17:16:2230
0
-
原创 Codeforces Round #696 (Div. 2) B. Different Divisors(数学)
给出一个数 d,要求构造一个数 n ,要求 n 保证至少有 4 个因数,且每个因数的差值都要大于等于 d首先 1 一定是因数,按照贪心下一个因数最小是 1+d,第二个因数是 1+2d,那么答案是 (1+d)*(1+2d),加上本身一共四个因数 ,这样答案显然是不对的,如果 d 是奇数,那么一定存在 2,所以打破了这个规律我们要找的是质数,这样可以保证 d+1 至 2d+1 之间没有任何因数,所以找到质数 x,y,使得 x-1>=d 和 y-x>=d即可,x*y 即为...2021-01-20 10:14:1988
0
-
原创 Codeforces Round #695 (Div. 2) B. Hills And Valleys(思维+贪心+模拟)
给出 n 个数,如果 a[i]>a[i-1] && a[i]>a[i+1] 或者a[i]<a[i-1] && a[i]<a[i+1] 那么称 a[i] 为山峰或山谷,可以改变一个数,问改变一个数之后,数列中剩下的山峰山谷的个数最少有几个我们很容易想到当有 山峰-山谷-山峰的时候可以一下消去 3 个,这是最优的;其次如果单个山峰或山谷,只消去 1 个,这是最差的当 山峰-山谷 时,不可能两个山峰同时出现,好的情况可以将两个都删...2021-01-18 23:39:2834
0
-
原创 Codeforces Round #695 (Div. 2) C. Three Bags(贪心+思维)
有三个背包,三个背包里分别有 A B C 个数字,每次操作可以从任意一个背包中挑选一个数字 x,然后在另外两个背包中挑选一个数字 y 将其变为 y-x,这样操作直至三格背包中剩下一个数字为止,求最后的结果最大是多少将 A 分为 <a,A'> B分为 <b,B'>,C分为 <c,C'>,其中 a,b,c 为背包中的任意元素,A‘ 为除 a 之外的 A 中的所有元素很容易发现对某个数进行操作偶数次那么他的贡献是正的,操作奇数次贡献是负的,对...2021-01-18 21:51:5645
0
-
原创 Educational Codeforces Round 102 (Rated for Div. 2) B - String LCM(模拟)
找到两个字符串的最小公共字符串,如果没有输出 -1模拟两个字符串,直至这两个字符串相等即可,若永远不可能相等则输出 -1int main(){ //IOS; rush(){ string a,b,ta,tb; cin>>a>>b; ta=a,tb=b; int la=a.size(),lb=b.size(); int flag=1; while(...2021-01-16 15:52:1069
0
-
原创 Educational Codeforces Round 102 (Rated for Div. 2) C. No More Inversions(规律)
有 n 个数,每个数都介于 [1,k] 之间,比如 n=7,k=4,那么 a[]={1,2,3,4,3,2,1} 其中保证 n>=k,n<2k要求找出一种排列 p,使得 b[i]=p[a[i]] ,b 数组的大小也为 n,并且满足 p[] 中所有的数介于 [1,k] 之中,b数组的逆序对个数 <=a 数组中的,且 b的字典序最大题意劝退,直接照着样例打当 n=7,k=4,那么 a[]={1,2,3,4,3,2,1} 时 p={4,3,2,1}当 n=...2021-01-16 15:49:2772
0
-
原创 Educational Codeforces Round 102 (Rated for Div. 2) D. Program(思维)
一看到题目就想往数据结构上靠,还是太死板了对于区间 [l,r],假设 l!=1,r!=n,那么这个区间将 [1,n] 总区间分成了两个区间 [1,l-1] [r+1,n],这是最普遍的情况,我们从这两种情况开始入手对于区间 [1,l-1] 利用前缀和很容易知道区间内部的最大值,最小值的情况 对于区间 [r+1,n] 这一部分,我们可以获得 max(sum[i]) 其中 sum[i] 为前缀和,i∈[r+1,n],但是由于 [l,r] 区间内的部分没有去掉,所以再减去这一部分即可。...2021-01-16 15:39:1051
0
-
原创 Educational Codeforces Round 101 (Rated for Div. 2) C. Building a Fence(思维+贪心)
题目要求修建栅栏,第一块栅栏和最后一块栅栏必须放在地面上,第 i 个栅栏所处的地面为 h[i] ,那么该栅栏可以放在 [a[i],a[i]+k-1] 的位置,要求每一块栅栏都必须与前一块栅栏相重合至少 1 个单位格子,问是否可以修建这样的栅栏对于每一块栅栏我们可以维护改栅栏最低端所能处的位置,根据当前地形位置与前一个地形位置的关系,判断是否可以修建该栅栏const int N=2e5+5; int i,j,k; int n,m; int a[N];...2021-01-14 14:57:0363
1
-
原创 Educational Codeforces Round 101 (Rated for Div. 2) D. Ceil Divisions(思维)
给出数 n ,数组 a 为 {1,2,3,……n},最多有 n+5 次机会,将任意两个不相等的数做 ceil(x/y) 运算,使得最后的数组 a 只有一个 2,其余全为 1,给出运算次数具体的运算步骤构造类型的题目,要找到其中的规律,对于大多数的数, 最大数/x,可以将 x 置为 1,但是要确保某些数将最大数变为 1 我们要使得最大数 maxx变为 1,两遍maxx/ceil(sqrt(maxx)),可以把 maxx 变为 1,这样ceil(sqrt(n)) 也变为了最大值...2021-01-14 11:23:3143
0
-
原创 Educational Codeforces Round 101 (Rated for Div. 2) A. Regular Bracket Sequence(思维)
括号匹配问题,字符 ? 可以变成左括号或者是右括号,问最后的字符串是否可以完全匹配括号匹配问题的充分必要条件是 首字符不能为右括号,尾字符不能是左括号,长度必须为偶数int main(){ //IOS; rush(){ string s; cin>>s; int len=s.size(); if(s[0]==')' || s[len-1]=='(' || len&1) pu...2021-01-14 10:27:5625
0