每日一题
Zhouwen_
这个作者很懒,什么都没留下…
展开
-
Acwing 5133奶牛排队
观察可知,前方相邻奶牛为0号的是第一头奶牛的纸条,则该纸条上写下的后方相邻奶牛则排在第二,再找到另一张写有排在第二的奶牛的编号,就能找到排在第四的奶牛,以此类推,可以找到排在2,4,6......号的奶牛,再观察可得,只有排在二号位的奶牛的纸条上会写下排在第一位的奶牛序号,所以用两个数组A和B来记录在纸条上出现的奶牛的序号,A[i]==1&&B[i]==0的就是排在第一位的奶牛,编号为i,接下来就可以求出排在1,3,5......位的奶牛编号。奶牛排队,点击跳转。原创 2023-08-09 13:43:19 · 169 阅读 · 0 评论 -
5.24 江西icpc 第J题
假设需要查询x=a时的最小值,那么假设y=(x-a)^2+1,令这个函数中y的值为1e5,那么则有(x-a)^2+1=100000,此时得到|x-a|约为317,所以查询的最大范围为[x-317,x+317],遍历这个范围中的函数,查找最小值即可找到答案。1)添加一个二次函数,给出参数a和b,表示y=(x-a)^2+b,注意a和b的范围为(1<=a,b<=n),【因为题目最终是要找最小值,所以当a相同的情况下,需要比较这里的b和原来的b哪个大,要替换成更小的那个b。原创 2023-05-24 21:00:35 · 239 阅读 · 1 评论 -
5.23 江西省2023icpc第K题
题解:先求出每两个数之间的差,记录在数组b[N]中。若为第一种操作,发现仅仅是交换b[x]和b[x-1];若为第二种操作,发现只要在产生最大差值的中间进行分段,这个差值就会失效。所以假如要分成k段,那么只需要排序,去掉前k-1大的差值,剩下相加;这部分操作的时间复杂度为O(nlogn)题意:给出一个长度为n的不递增序列,两种操作,第一种是改变数据,第二种是将序列分为k段,每一段的有效值为该段中最大减去最小,求这k段的所有有效值的最小和。由于可能会进行m次查询,所以需要用前缀和进行预处理操作。原创 2023-05-24 00:03:28 · 355 阅读 · 0 评论 -
5.22江西ICPC2023年I题
一共有两种操作,一是将一棵树一条路径上的边权异或上一个数,二是询问一个点周围所有边权的异或和。对于操作一:除了路径两个端点的答案会改变,其余都不变,所以直接对两个端点异或上这个数即可。注意到数据范围很大,所以用scanf和printf输入和输出。对于操作二:输出答案。原创 2023-05-23 17:03:55 · 268 阅读 · 0 评论