随笔分类 - ACM-Codeforces
摘要:"传送门" 题意: 给两个整数a,m $( 1 \le a include include include include include include include include using namespace std; typedef long long ll; const int max
阅读全文
摘要:"传送门" 题意: 给两个字符串$s,t$ $z$为一个空串 问对$s$进行多少操作能将$z$变成$t$ 每次操作为,选s的一些字串(可以不连续,但顺序不能乱),让把这个字串加到Z的后面 输出最少操作的次数,如果$z$不能变成$t$,输出 1 思路: 把字符串放入vector,或者二维数组里,因为只
阅读全文
摘要:"传送门" 题意: 给两个整数n,x; 然后一行长度为n的01字符串s t字符串为s的无限循环构成 $t=ssssss$ $cnt_0,q−cnt _1,q$等于q字符串中0的个数减去1的个数 问有多少可能的t的前缀子串的$cnt_0,q−cnt _1,q$==x 如果有无限个输出 1 思路: $1
阅读全文
摘要:"传送门" 题意: 如图,要想让0亮需要6段,让1亮需要2段,让2亮需要5段......让7亮需要3段...... 出一个整数n,表示可以亮的段数,问能显示出来最大的值为多少 思路: 位数越多肯定表示的数越大,可以看出结论,如果n为偶数,那么输出n/2位个1,如果n位奇数,输出一个7,然后输出(n
阅读全文
摘要:"传送门" 题意: 给一个n个结点的无权树,三个结点p1,p2,p3,这三个结点组成的三条路径的路径并集(这个意思就是三条路径之间,重复的边算一次)为ans,找出使得ans最大的三个结点,可能答案有多个,输出一种组合即可 思路: 很显然有种最优解的两个结点为直接的端点p1,p2(直接用两次bfs找直
阅读全文
摘要:"传送门" 题意: 给出一个n m的矩阵 两种操作: 1,可以把矩阵中的任一个数更改成任意值 2,把矩阵中的某一列整体上移一个单位 例如: 第一列进行了2操作一次 问最少进行多少次操作把原来的矩阵变成 思路: 分析,每一列之间的操作都是独立的,因此一列一列考虑即可 对于每一列,为了得到最少的操作次数
阅读全文
摘要:"传送门" 题意: 先给出MEX的定义:一个数列,他里面没有出现的第一个非负整数 给一个q,x 然后有q行,每行一个整数,把这个数加到数列中,对数列中的每个数可以+x,或者 x,任意次,使得该数列中的MEX的值尽可能的大,并输出 思路: +x, x操作等同于%x的操作 ans为当前要输出的MEX的值
阅读全文
摘要:"传送门" 题意: 给一个整数n,问是否存在3个不同的数$a,b,c,$ $2≤a,b,c , a \cdot b \cdot c = n$,如果存在输出yes,并输出任一满足的三个数,否则输出no 思路: 将n进行质因子分解,然后进去讨论判断即可,具体看代码 代码:
阅读全文
摘要:"传送门" 题意: 一个机器人要经过n个地方,他只能往右(R)和上(U)走,最开始在(0,0)位置,问这n个点能否全部经过,如果不能输出NO,如果能输出YES,并输出路径字符串(只含RU) 思路: 先把n个点的坐标排序,然后判断有没有在当前位置不能到达的点,如果有输出NO,如果没有,输出YES, 代
阅读全文
摘要:"传送门" 题意: 给4个整数,$a,b,c,n$,然后把分成3份分别位A,B,C,(A+B+C=n) 问是否有一种分的方式满足 $a + A = b + B = c + C$ 满足输出yes,否则输出no 思路: 如果a+b+c+n不是3的倍数,肯定不满足,从题目中可以看出,A,B,C =0,判断
阅读全文
摘要:"传送门" 题意: 有一个长度为 $n\ (1\leq n\leq 10^5)$的整数序列 $a_1,\cdots,a_n\ \ (0\leq a_i\leq 2^{30} 1)$,你需要找到一个非负整数 $X$ 使得 $\max(a_i\oplus X)$最小,其中 $\oplus$ 为按位异或运
阅读全文
摘要:"传送门" 题意: 给一个数x,找到满足lcm(a,b)==x中,max(a,b)的值最小的那一对a,b 思路: 两个数尽可能接近且两个数互质,这样max(a,b)才会越小,那就从sqrt(x)开始枚举,找到符合的输出即可 代码:
阅读全文
摘要:"传送门" 题意: 给一个长度为n的数列 1 :所有数的和为sum 2 :所有字段和两个正整数 $l,r(1\leq l \leq r \leq n)$,并算出 $\sum_{i=l}^{r} a_i$,但是不能$l=1,r=n$ 如果2算出的任意值都严格小于sum,则输出YES,否则输出NO
阅读全文
摘要:"传送门" 题意: 给一个长度为n的字符串,字符串只有L,R组成,L代表向左移动一个单位,R代表向右移动一个单位,但是由于某些问题,有些字符命令不执行,即遇到L可能不向左移动,遇到R可能不向右移动(不移动就是待在原地不动),最初机器人在0,问它可能移动到点的数量 思路: 直接找到最左端能移动到哪个位
阅读全文
摘要:传送门 题意: 给n个字符串,如果任意两个字符串有一个字符相同,则他们相同即属于同一集合,问总共有几个集合 思路: 并查集,对于每个字符串,把每个字符与第一个字符合并,因为他们肯定在同一个集合(意思是每个字符串都当成ch[0],看有几个不同的),合并之后,for(1-26)以它为根的个数,即集合的个
阅读全文
摘要:传送门 题意: 输入一个数n,求出n/i(i取任意)向下取整有几种数,并输出 思路: 整除分块裸题 for(int l=1,r;l<=n;l=r+1) { r=n/(n/l); a[++cnt]=n/l; } cnt代表分块的块的个数,每个块里的值为a[i]=n/l,l为块的左端点,r为块的右端点r
阅读全文
摘要:传送门 题意: t组数据,每组n个四位数,目的是改变最小的次数,使得n个数各不相同 思路: 看这个数据:2<=n<=10,因此发现重复的,暴力改变千位的值,如果改变后的数,没出现过,则break,一共十个数,for(0-9)改变千位,肯定能找的 代码: #include <iostream> #in
阅读全文
摘要:传送门 题意: 有红,绿,蓝三种颜色的糖各r,g,b个,每天要吃两个糖且颜色不同,问最多能吃多少天 思路: 先把r,g,b排序,从小到大为a,b,c如果a+b<=c,结果肯定输出a+b 否则输出(a+b+c)/2 原因:为了使天数最多,每次取最多和次多的两堆,当次多的变成和最少的相等时,把最多的那个
阅读全文

浙公网安备 33010602011771号