自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 2020牛客多校十C-Decrement on the Tree

原题链接意思就是给一颗树,你可以操作若干次,每次操作可使一条路径上经过的边的边权-1,你要使所有边的边权为0,求最小操作次数。完成之后题目还会修改边权,对于每次修改,你需要再次给出答案。分析边权转化为点权,不如把减边权的操作转化为增加路径的两个端点的访问次数,那所求即转化为求最少的访问次数。设一个点为c,sum为所有与c点连接的边的权值的和。我们用t来保存sum中最大边权的值。如果t>sum-t,其余所有边都与最大边匹配也会剩下t2-sum的边权失配。当前的点必须作为端点这些次才能把边权减为

2020-08-11 15:42:57 156

原创 2020牛客多校E- Groundhog Chasing Death

原题题意求∏i=ab∏j=cdgcd⁡(xi,yj)\prod_{i=a}^b\prod_{j=c}^d\gcd(x^i,y^j)i=a∏b​j=c∏d​gcd(xi,yj)分析拆一下质因子。先枚举i,然后i相同时,用p表示当前的质因数,设x中有u个p,y中有v个p,比较一下iu和jv的大小即可。把小的乘到答案里去。设tmp为分割点,则tmp=ku/v。若tmp<c,说明c到d之间iu一直小于jv,把d-c+1个当前的i和u乘进答案就可以了,若tmp>d,说明c到d之间iu一直大于j

2020-08-10 00:44:09 108

原创 2020牛客多校九J-The Escape Plan of Groundhog

原题链接分析数据量最大为500,稍加思考,O(n3)O(n^3)O(n3)已经可以应付了。我也想不出更优的算法了。

2020-08-09 22:35:13 99

原创 2020牛客多校九A-Groundhog and 2-Power Representation

原题链接题意很简单,就是计算题中的式子,难点在于输入,题目中的括号不是很好处理。此外,高精度加快速幂就能过了。#include<iostream>#include<cstring>#define ll long longusing namespace std;int ans[1001],lena;void add(int b[],int len)//加{ lena=max(len,lena); for(int i=1;i<=lena;i++) { a

2020-08-08 20:43:05 139

原创 2020牛客多校八I-Interesting Computer Game

原题分析题意很简单,就是给定n,表示n个回合,然后每回合给出两个数,可以选择取一个之前没取过数,也可以不取,求取到的数的最大数量。这一题看似简单,正确率却低于20%,在比赛期间甚至长时间低于10%,这道题要靠并查集来做,贪心贪不得。简述一下思路吧,每一回合的两个数之间连边,然后用点的总数减去建图后不带环的连通块的数量即可。正确性当只有一个带环的连通块时环中每一个点都是可以取到的,环外的每一个点也是可以取到的。因为有一条边就可以取一个点,无环图边数比点数少1,故只能取比点数少1个点,有环图相当于在

2020-08-05 00:08:04 119

原创 2020牛客暑期多校训练营(第七场)J-Pointer Analysis

原题代码用数组模拟指针,将是否指向某个字母的操作转化成了二进制上的操作。数组msk[]代表该字母(或大写字母.小写字母)是否指向某个小写字母,若该二进制上为1,代表指向该位代表的字母。在数组msk中,下标0-25代表大写字母A-Z的指向情况,下标26+(‘B’-‘A’)*26+‘z’-'a’代表B.z的指向情况,同理可以表示大写字母.小写字母的指向情况了。指针的指向操作用按位或运算代替。根据题目可知,s1要么是大写字母,要么是大写字母.小写字母,s2还可能是小写字母。分几种情况讨论,第一种s2为小写字

2020-08-03 11:28:28 128

原创 2020牛客暑期多校训练营(第七场)B- Mask Allocation

原题有没有觉得和gcd有点相似。不妨设(n>m)由于要求字典序最大,所以考虑装口罩最多的盒子,显然不能超过m,不然人数在n的时候这盒子分不出去了。那继续考虑字典序最大,医院数量为m时候需要给每个医院安排n个口罩,我们至多给每个医院安排floor(n/m)个装了m个口罩的盒子,那这里就安排了floor(n/m)*m个盒子,此时每个医院还要额外再拿n%m个口罩才能达到要求。这时候我们考虑医院数量为n的情况,此时需要给每个医院分配m个口罩,那显然已经有floor(n/m)*m个医院满足条件了,还有n

2020-08-02 20:28:14 115

原创 2020牛客暑期多校训练营(第六场)K-K-Bag

原题分析题意即给出一个序列和k,由若干个1-k的全排列组成的序列称为k-bag,如123321132即为3-bag,k-bag的子串为part-k-bag,题目要求我们判断给出的序列是否是part-k-bag。题目中k有可能大于n。须知没有必要将序列元素的大小保存下来,只将相对大小作为值保存下来就可以了。此题必须离散化,可以通过unordered_map离散化,但低版本的C++并不能使用这个容器,包括noip。离散化的另一种方法是先用sort排序,然后用unique去重,unique()函数的作用是将

2020-07-28 19:18:52 87

原创 2020牛客暑期多校训练营(第五场)E-Bogo Sort

原题知识点置换群,分解质因数,大数乘法分析本题题意即给定一个序列,与有序序列对比,找出置换,然后判断有多少个序列可以通过这种置换变成有序序列。首先考虑求出环的个数,稍微思考就能得出答案就是所有环的周期长度的最小公倍数,如果通过求最大公因数来求最小公倍数的话就要用到高精度除法了,所以最好用分解质因数的方式求最小公倍数。举个例子,6=2*3,8=23,9=32,6中2出现一次,3出现一次,8中2出现三次,9中3出现两次,取最大出现次数,23*32=72。由于本题需要高精度, 所以改用py比较好 ,我

2020-07-26 23:21:50 72

空空如也

空空如也

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

TA关注的人

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