![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
笔记
文章平均质量分 53
果果果709
这个作者很懒,什么都没留下…
展开
-
代码源每日一题 2022-5-19
题目:就是找出所有的区间的前k大的数。最近写题状态不好,简单的题目也花费很长的时间,加油叭。错误的思路:这是我开始想题目的思路,题目给出的n是1e5所以直接去算所有的区间和的话是不可能的,所以我很正常的想到了只能求出前k个大的,但是接下来的思路却出现了问题,我们知道最大的肯定就是所有的数加在一起,那第二大的呢,第二大的肯定就是所有的数加在一起然后减去第一个或者减去最后一个,到这里我的思路还是没错很多,但是接下来的第三大的呢,我考虑到第三大的可能是第一大的减去第一个或者最后一个,也可能是第二大...原创 2022-05-19 17:37:30 · 190 阅读 · 0 评论 -
每日一题打卡 2022-5-18
题目:在实现程序自动分析的过程中,常常需要判定一些约束条件是否能被同时满足。考虑一个约束满足问题的简化版本:假设 x1,x2,x3,…代表程序中出现的变量,给定 nn 个形如 xi=xj 或 xi≠xj 的变量相等/不等的约束条件,请判定是否可以分别为每一个变量赋予恰当的值,使得上述所有约束条件同时被满足。例如,一个问题中的约束条件为:x1=x2,x2=x3,x3=x4,x1≠x4这些约束条件显然是不可能同时被满足的,因此这个问题应判定为不可被满足。现在给出一些约束满足问题,请分别对它们进行原创 2022-05-18 21:43:28 · 215 阅读 · 0 评论 -
每日一题打卡 2022-5-14
题目:有一个由 n 个元素组成的序列 a1,a2,…,an;最初,序列中的每个元素满足ai=i。对于每次操作,你可以交换序列中第 ii 个元素和第 jj 个元素当且仅当满足 |i−j|=di。题目给出序列 b1,b2,…,bn 和 d1,d2,…,dn,询问是否可以通过若干次交换,使得序列 a 和序列 b 完全相同。输入格式:第 1 行一个正整数 n,含义如上。第 2 行 n 个正整数表示 b1,b2,…,bn。第 3 行 n 个正整数表示 d1,d2,…,dn。输出格式:原创 2022-05-14 18:00:37 · 165 阅读 · 0 评论 -
代码源每日一题 2022 - 5 - 11
题目描述:huaji有一个 01 序列,每次可以对其中的某一位取反(0变1,1变0)。求最少翻转其中的几位可以使得该序列变为非递减序列。输入格式:第一行输入一个整数 nn (1≤n≤1e6)。第二行输入一个长度为 nn 的且仅包含 0 和 1 的字符串。输出格式:输出一个整数,为该序列变为非递减序列的最少操作次数。样例输入:6010110样例输出:2本题较易获得的一种思路,暴力求解,我们知道结果无论如何都是一个前面为0后面为1的序列,所以我们只需要列出所原创 2022-05-11 14:55:42 · 230 阅读 · 0 评论 -
代码源每日一题 2022-5-10
今天的题目没什么意思,直接给代码了。#include<iostream>const int N = 2E5+5;long long a[N] ,b[N],sum[N];int n , m , k;using namespace std;int main(){ cin >> n >> m >> k; for(int i = 1 ;i <= n ; i++) { scanf("%lld",&a原创 2022-05-10 10:31:47 · 79 阅读 · 0 评论 -
代码源每日一题 2022-5-9
数学 - 题目 - Daimayuan Online Judge给定整数 n,胖教授想将1∼n这nn个数字分成两组,每一组至少有一个数,并且使得两组数字的和的最大公约数最大,请输出最大的最大公约数。输入格式:一行输入一个n。输出格式:输出一个最大的公约数。数据:对于20%的数据,保证n≤100。对于100的数据,保证n≤1e9。输入样例:6输出样例7好了,题目已经看完了,然后就是解题了。1:我们先来转化题意因为题目是1~n分成俩组数据,那1~.原创 2022-05-09 15:24:36 · 388 阅读 · 1 评论 -
代码源每日一题 2022-5-8
今天的每日一题,题目的意思也是很简单的,就是说把一个数组分成平均的三分。1:因为数组是连续的,所以第一段一定是1~x,第二段是x+1~y,第三段是y+1~n。很显然,一个数组可能会有很多种x,y的组合,但是三个段都得相等,且三个段连续,我们很容易发现一个利用前缀和写题目的做法。2:设长度为len,1~x是len,1~y是2*len,y+1~n是3*len,3*len = 数组的总和,所以len就一定是一个固定的值,很明显第三段是不需要考虑的,所以只需要考虑前面的俩段,len 2*len 就可以组..原创 2022-05-08 16:54:53 · 176 阅读 · 0 评论 -
每日一题2022-5-7
今天的每日一题,也算简单,但是思路还是要有的。首先题目的意思是给出一个树,然后求去掉最少经过多少次操作才可以产生相对应的连通块。其实仔细想想这个题目挺简单的。1:我们看去掉父节点和子节点之间的连线意味着什么,很明显,意味着增加这个父节点的子节点个数的连通块,所以我们只需要将每一个不是叶子节点的子节点的个数记录下来,然后求最少操作多少次就能形成k个连通块。2:题目转换之后就是给你一个数组,然后让你求出用这个数组里的最少的数组成一个k。很明显了,01背包问题。然后如果不行要输出-1...原创 2022-05-07 21:47:08 · 68 阅读 · 0 评论 -
每日一题 2022-5-6
题目自己看,题意很简单。今天写这个题目的时候,脑子抽了,说实话很简单的题目写了很久,对自己很失望,所以还是得继续加油。1:我们发现表达式除了第一个之外,其他的数都是分母,然后我们在可以改变运算顺序的地方随便加上一个括号(就是在第一个数之后加括号),我们发现加了括号之后除了第一个数其他的数都会变成分子。2:我们的题目是求是否能变成整除,我们仔细看看,假如我们就在第一个数上加上括号,除了第二个数其他的数全都变成分子,那问题就变成了除了第二个数之外的其他数乘积是否能整除第二个数的而问题。总结:..原创 2022-05-06 10:56:07 · 68 阅读 · 0 评论 -
代码源每日一题 2022 - 5 - 5
这个题目意思很简单,就是按照题目给出来的要求,建造一个没有环的连通图,然后俩个人一个在c,一个在d,他们同时按照最短的路往对方的村子走,然后看他们会在村子相遇还是在道路上相遇。1:题目很容易转换,我们只需要知道俩个村子之间的最近的距离是奇数还是偶数就行,奇数就是在道路相遇,偶数的话就是在城市相遇。2:所以我们现在就是要知道每俩个城市之间的距离就行了,但是这里的n有很大,二维数组是不可能开的,所以我们只能取俩个城市到一个固定点的距离,然后再取差值,那这里的这个固定的点就一定得是这个图的,一个端点就..原创 2022-05-05 22:49:21 · 86 阅读 · 0 评论 -
每日一题 2022-5-4
题目大意:就是1~n的全排列,然后按照每一个数与左边最近的大于他的数连一个无向边,与右边最近的大于他的数也建立一个无向边,然后求出这1~n的全排列中有多少种可以按照题目的要求建成一个有环的图。写本题目的时候,首先题目的意思我是一时半会没有理解完的,后来仔细想一想也就很简单了,就是排列中的每一个数找一个左边离他最近的比他他的数连一个边,右边也找一个比他大的并且最近的数连一个边,然后按照这个要求构成一个图。知道题目意思之后,该怎么想呢。1:n个数的全排列的个数,这个很简单就是 n! 。2:怎..原创 2022-05-05 22:11:17 · 147 阅读 · 0 评论 -
代码源每日一题 2022 5 - 3
题目意思就是求出有多少个子数组的和为K。题目中给出了样例,就不再多做描述了。题目其实也能比较容易的想到,因为前缀和求子区段的总和是我们很常见的办法,但是如果一段一段的去看的话,就是说假如已经求出了前缀和数组s[n],然后遍历s[n] - s[n-1] , s[n] - s[n-2]......s[n] - s[1] ... s[2] - s[1] ,s[1] - s[0] , 很明显我们的时间复杂度来到了o(n^2),所以这样的做法肯定是不行的。思路:1.因为本题只需要求出子段的和是不是..原创 2022-05-04 12:55:20 · 70 阅读 · 0 评论 -
代码源每日一题 2022 5 - 1
题目的意思就是求和.首先,一眼看出去就能想到一个o(n^2)的时间复杂度的代码,但是很明显不能这么写。解题思路:1.题目为异或运算,想到二进制。2.先模拟一次可以运行的简单运算,比如题目所给的:1^2 + 1^3 + 2^3,我们将1^2+1^3拿出来因为这就是一个循环的运算,我们将其展开 001 ^ 010 + 001 ^ 011 = 5 ,很明显的如果我们继续进行这样的二进制运算,那我们将其变成二进制的效果就没有体现出来,所以我们进行下一步。3. 我们将 1 2 3 的二进制...原创 2022-05-01 17:48:54 · 414 阅读 · 1 评论