- 博客(49)
- 收藏
- 关注
原创 2020牛客暑期多校训练营(第十场) Decrement on the Tree
题目描述 有一棵包含nnn个顶点和n−1n-1n−1个边的树。 树中的每个边都有一个非负的权重。 每次都可以选择两个不同的顶点uuu,vvv,并将路径上每个边的权重减去111。要使所有边的权重变为零。 最小操作数是多少??? 您还需要支持边权重的修改:::将第ppp个边的权重更改为www。 每次修改后,您都需要输出答案。 样例 输入 5 3 1 2 3 1 3 4 2 4 5 3 5 6 1 10 2 10 3 10 输出 8 12 10 10 思路 首先我们会想到,要求最少的路径数,其实只要知道路径两
2020-08-11 13:25:40
286
原创 2020牛客暑期多校训练营(第十场) Hearthstone Battlegrounds
原题 题目描述 xtqxtqxtq非常喜欢玩酒馆战棋,他注意到很多情况在后期下只有鱼人才能击败鱼人。所以他想知道如果他和对手都使用鱼人流,他什么时候才能获胜。为了简化该问题,规定现在只有四种鱼人::: 1.1.1. 1/1/1/1010109,带剧毒圣盾亡语; 2.2.2. 1/1/1/1010109,带剧毒圣盾; 3.3.3. 1/1/1/1010109,带剧毒亡语; 4.4.4. 1/1/1/1010109,带剧毒。 (((注:x/yx/yx/y表示xxx攻击力和yyy血量))) 攻击效果:::当一个x
2020-08-10 21:51:37
312
原创 2020牛客暑期多校训练营(第十场) Tournament
题目描述 您正在安排比赛。有nnn个球队。 每一对球队有n(n−1)2\frac{n(n-1)}{2}2n(n−1)个比赛。 每天安排一场比赛。 对于每支球队,它将在第一场比赛举行的当天到达,并在最后一场比赛结束后离开。 例如,有3个团队,日程表是(1,2)(1,2)(1,2),(1,3)(1,3)(1,3),(2,3)(2,3)(2,3)。 一队将在第一天到达,在第二天离开。它将停留两天。 第二小组将停留三天。 第三队将停留两天。 求一个安排表,以减少他们停留的总天数。 样例 输入 2 3 4 输出
2020-08-10 20:14:07
1469
原创 2020牛客暑期多校训练营(第九场) Groundhog and Gaming Time
题目描述 样例 输入 6 2 2 1 2 1 4 1 5 3 5 3 6 输出 405536771 思路 求期望可以用累加每种情况对期望的贡献求得,本题就是用的这个思路。 线段的交取决于最大的左端点以及最小的右端点,同时维护两个东西比较困难。 所以我们先按照线段左端点从大到小排序,存在数组tltltl中,按照线段右端点从大到小排序,存在数组trtrtr中。同时还可以离散化一下,节省一下复杂度,然后构建线段树,然后做的操作::: 遍历区间[i,i+1][i,i+1][i,i+1],维护包含该区间的线段
2020-08-09 21:00:52
272
原创 2020牛客暑期多校训练营(第九场) The Escape Plan of Groundhog
题目描述 一堆桌子被排列成N×MN×MN×M的矩形,a[i][j]=1a[i][j]=1a[i][j]=1表示位置(i,j)(i,j)(i,j)处有桌子,否则就没有。为了不被老师抓住,他要藏在一个矩形下,这个矩形要满足这些条件: 1、该子矩形的四条边上没有空位; 2、子矩形中的空位与桌子的数量之差不超过111(不包括侧面的桌子); 3、子矩形的长度和宽度必须大于111。 有多少个子矩形可以满足要求? 输入描述: 输入包含两个整数NNN和MMM,范围为[1,500][1,500][1,500],中间用空格隔开
2020-08-09 20:09:17
226
原创 2020牛客暑期多校训练营(第九场)Groundhog and Apple Tree
题目描述 有一个nnn个点n−1n-1n−1条边的苹果树。每条边有障碍物,经过时会减少一定的hphphp。如果吃了第iii个苹果,则会回复aia_iai的hphphp。当没有苹果的时候,可以在原地休息一个单位时间,回复1hp1hp1hp。 hphphp不能为负,但可以是000到正无穷大。一个苹果只能吃一次,但每次经过一条边时,都会消耗hphphp。边很脆弱,每条边只能最多经过222次。 从根节点111开始出发,初始hphphp为000,要求经过所有点后返回111号点,求最少休息时间。 样例 输入 1 5
2020-08-09 16:40:05
395
原创 2020牛客暑期多校训练营(第九场) Groundhog Chasing Death
原题 题目描述 样例1 输入 1 2 1 2 8 4 输出 2048 样例2 输入 1 2 3 4 120 180 输出 235140177 思路 首先看数据范围,如果直接枚举xxxi,yyyj,时间复杂度为3e6×3e6=9e123e6×3e6=9e123e6×3e6=9e12,TLETLETLE等着你。所以我们要想出O(n)O(n)O(n)的算法。 我们先固定iii,然后把xxxi和yyyj(j:c(j:c(j:c~d)d)d)分解质因数: xxxi===q1q1q1x1×××q2q2q2x2
2020-08-09 13:11:05
213
原创 2020牛客暑期多校训练营(第九场) The Flee Plan of Groundhog
题目描述 土拨鼠在第111个房间,要走到OrangeOrangeOrange的第nnn个房间。这nnn间房间之间有n−1n-1n−1条走廊,确保这nnn个房间连通,每个走廊的长度为111。 土拨鼠出发ttt秒钟后,OrangeOrangeOrange发现他发烧了。愚蠢的OrangeOrangeOrange以2m/s2m/s2m/s的速度跑向土拨鼠。 土拨鼠的速度为1m/s1m/s1m/s。如果他以最佳策略跑步,OrangeOrangeOrange多久能赶上他?每秒钟土拨鼠移动一次,然后OrangeOrang
2020-08-09 08:44:58
289
2
原创 020牛客暑期多校训练营(第八场)Cinema
题目描述 样例 输入 3 3 3 4 5 1 5 输出 Case #1: 3 *.* ... .*. Case #2: 6 ..*.* *.... ...*. .*..* Case #3: 2 .*.*. 思路 如果直接dpdpdp,三进制表示行的状态: 000表示位置上没人。 111表示位置上有人。 222表示周围有人。 状态数:::33315=14348907?=14348907?=14348907?这一看就有些不对劲。 所以我们要考虑一下状压dpdpdp。 去除一些非法的情况::: 两个000
2020-08-09 07:23:03
208
原创 2020牛客暑期多校训练营(第八场) Kabaleo Lite
题目描述 厌倦了无聊的WFHWFHWFH,阿波罗决定开设一家名为KabaleoLiteKabaleo LiteKabaleoLite的快餐店。 该餐厅提供n种食物,编号从111到nnn。第iii种食物的利润是 aiaiai 。利润可能为负,因为它使用了昂贵的原料。第一天,阿波罗用第iii种食材做了bibibi道菜。 阿波罗餐厅的独特之处在于订购食物的过程。阿波罗亲自为每个访客选择了一组该访客将获得的菜肴。这样做时,阿波罗遵循以下规则: ● 每个访客应至少获得一道菜。 ● 每个访客都得到从第111种开始的连续
2020-08-08 23:07:20
156
原创 2020牛客暑期多校训练营(第八场) Interesting Computer Game
原题 题目描述 阿波罗正在玩有趣的电脑游戏。 游戏中有NNN轮。 在每个回合中,计算机将为阿波罗提供两个整数aiaiai和bibibi,并且阿波罗只能刚好执行一次以下三个操作之一。 1.1.1.不做任何操作。 2.2.2.如果之前所有回合都未选择整数aiaiai,则阿波罗可以选择整数aiaiai。 3.3.3.如果之前所有回合都未选择整数bibibi,则阿波罗可以选择整数bibibi。 阿波罗破解了比赛,在比赛开始之前,他已经知道了每一轮的所有候选号码。 现在,他想知道可以使用最佳策略选择的最多整数数。我相
2020-08-08 22:59:27
258
原创 2020牛客暑期多校训练营(第八场) Enigmatic Partition
题目描述 样例 输入 3 5 7 7 9 1 9 输出 Case #1: 2 Case #2: 7 Case #3: 8 说明 f(1)=0. f(2)=0. f(3)=0. f(4)=0. f(5)=0. f(6)=1:6=1+2+3. f(7)=1:7=1+1+2+3. f(8)=2:8=1+1+1+2+3,8=1+2+2+3. f(9)=4:9=1+1+1+1+2+3,9=1+1+2+2+3,9=1+2+3+3,9=2+3+4. 思路 看数据猜算法,脑袋一拍我们会知道这肯定是一道打表的题,打一
2020-08-08 22:43:50
212
原创 2020牛客暑期多校训练营(第九场) Groundhog Looking Dowdy
题目描述 有nnn天,每天穿一件衣服,第 i 天有ki件衣服可以穿,穿第k_i 件衣服可以穿,穿第ki件衣服可以穿,穿第j$件衣服的的权值为 aija_{ij}aij 。从nnn天中选择mmm天,求这mmm天中,所穿衣服的权值最大与最小值的最小差是多少。 样例 输入 4 3 1 3 2 8 6 1 2 3 1 7 5 输出 2 思路 因为数据比较多,所以我们考虑一些必要的条件::: 1、1、1、衣服的权值。 2、2、2、这是第几天要穿的衣服。 所以我们可以开结构体存储,输入时标记天数。 然后就用滑动
2020-08-08 21:00:22
215
原创 2020牛客暑期多校训练营(第九场) The Crime-solving Plan of Groundhog
题目描述 给定000到999之间的n个数字,将它们拼成两个不带前导000的正整数,求两个数的最小积。 样例1 输入 1 4 1 2 2 1 输出 122 样例2 输入 2 5 1 3 2 1 2 3 1 1 0 输出 1223 10 代码 #include<bits/stdc++.h> #define ll long long using namespace std; const int maxn=1e6+5; int t,n,len,a[maxn],ans[maxn]; void ch
2020-08-08 20:03:50
333
原创 2020牛客暑期多校训练营(第九场) Groundhog and 2-Power Representation
题目描述 输入计算式,求解。其中 2(x)2(x)2(x)表示 222 的 xxx 次方,式中每一项都对应着答案在二进制表示下的数位为111的位。 样例1 输入 2(2(2+2(0))+2)+2(2(2+2(0)))+2(2(2)+2(0))+2+2(0) 输出 1315 样例2 输入 2(2(2)+2+2(0))+2(2+2(0))+2(0) 输出 137 思路 因为数字很大,所以要用高精度。用一个数字hhh来统计括号有没有匹配完,用ppp来统计当前计算的数字达到的字符串的位数。 若在字符串中找到
2020-08-08 19:02:29
238
原创 2020牛客暑期多校训练营(第七场) Pointer Analysis
原题 题目描述 指针分析旨在确定在执行过程中可以通过程序中的特定指针变量访问哪些对象,这是静态程序分析的基本部分之一。 现在,我们希望您对测试数据执行上下文无关的指针分析。 一个程序包含262626个用小写字母表示的objectobjectobject,每个objectobjectobject也有262626个用小写字母表示的成员变量(也称fields,是指向某个objectobjectobject的指针),和262626个用大写字母表示的全局指针。 程序有4种语句,用[Variable][Variable
2020-08-06 15:38:34
215
原创 2020牛客暑期多校训练营(第七场) Dividing
原题 题目描述 定义传奇元组::: ● (1,k)(1,k)(1,k)始终是传奇元组,其中k是整数。 ● 如果(n,k)(n,k)(n,k)是传奇元组,(n+k,k)(n+k,k)(n+k,k)与(nk,k)(nk,k)(nk,k)也是传奇元组。 我们想知道1≤n≤N1≤n≤N1≤n≤N,1≤k≤K1≤k≤K1≤k≤K时传奇元组(n,k)(n,k)(n,k)的数目。 输入描述 输入包含两个整数NNN和KKK,1≤N1≤N1≤N,K≤K≤K≤10101012。 输出描述 输出答案,取模1010109+7+7+
2020-08-04 16:23:46
193
原创 2020牛客暑期多校训练营(第七场) Topo Counting
原题 题目描述 样例1 输入 2 1073741789 输出 31 样例2 输入 3 1073741789 输出 7954100 思路 我们一拍脑袋,因为n≤3000n≤3000n≤3000,似乎没有后效性,似乎求得是最优解 ,所以盲猜这是一道dpdpdp。 我们会发现每个肉片只受制于架子上的两个节点,所以本题的核心做法就是维护架子以及连在架子上的肉片的形态。 在状态转移时大致会有以下333种情况::: 第一种是一个完整的DRG(n)DRG(n)DRG(n)只删除了第一个节点,,设为h(n)h(
2020-08-04 16:03:20
290
2
原创 2020牛客暑期多校训练营(第七场) Social Distancing
原题 题目描述 样例 输入 4 4 6 2 1 2 0 2 2 3 1 4 4 2 2 3 2 1 2 2 4 2 4 1 输出 2 3 -1 3 4 3 思路 因为这道题的范围比较小,所以可以直接暴力打表,这样也可以ACACAC。 不过,这道题可以用动态规划来做,这样可以减少时间复杂度。 脑袋一拍,我们会知道,要尽把点都放在圆上,而且两个点的间隔要尽量地大。 这样就可以列出nnn个点的距离和为::: 有sigmasigmasigma的dpdpdp转移式都比较烦,而且还有减法,所以我们可以化简一下,
2020-08-04 15:25:02
337
原创 2020牛客暑期多校训练营(第七场) Valuable Forests
原题 题目描述 样例 输入 5 1000000007 2 3 4 5 107 输出 2 24 264 3240 736935633 思路 以下是乍一眼看不懂的官方题解: 这种规律过于玄学,所以我们找到了另一种解题思路: 因为要用到pruferpruferprufer序列,所以大家可以参考一下这篇博客。 因为n个点的无根树可以形成nn−2个不同的树,所以我们不妨设它的值为dpndp_ndpn ,设n个点的森林个数为fnf_nfn。在第n个点加入时,我们可以选择iii个点和它形成一棵树,那么就可以
2020-08-02 20:57:13
279
原创 2020牛客暑期多校训练营(第七场) Mask Allocation
原题 题目描述 样例 输入 2 5 4 3 3 输出 8 4 4 4 4 1 1 1 1 3 3 3 3 思路 首先在比赛上,我们想到了一种暴力的方法。我们构造出两个数组,分别存储mmm个nnn和nnn个mmm,然后逐一比对。比对时去长度较小的序列,在同一位进行相间的操作,减完为000的数组位置上有下一位来填充,直至两个数组中都没有数字,答案就是每一次相减的最小值。举个例子: 当m=10m=10m=10,n=8n=8n=8时::: 构造:a数组存储m个n,b数组存储n个m,c数组存储答案,ans存储口
2020-08-02 16:58:40
207
原创 2020牛客暑期多校训练营(第一场) Infinite Tree
题目描述 样例 输入 3 1 1 1 4 3 1 2 4 4 0 0 0 0 输出 3 17 0 思路 本题需要用到虚树的知识,不会的可以看看我的这篇博客。 代码 #include<bits/stdc++.h> using namespace std; #define ll long long #define low(x) x&-x const int maxn=2e5+5; struct node{int to,next;}vec[maxn]; int n,cnt,tot,top
2020-08-02 14:34:06
244
原创 虚树
虚树的模板题虚树的模板题虚树的模板题 虚树 概念 虚树,就是在有一棵树的情况下,对于数量较少的点进行询问时所建的一棵新的树。 虚树包含询问的点和询问的点的lcalcalca(最近公共祖先),以上这些点被称为关键点。 对于关键点AAA,BBB,它们的连边上包含着原本树上两点之间那条链上的关键信息(一般是边权最大值、边权最小值、边权之和,这取决题目)。 可以解决的题目 虚树一般解决的是在树上做动态规划的题目,所以虚树一般会和树形dpdpdp合起来出,有时还要换根。 一般这棵树很大,无法用数组直接存下,所以可以存
2020-08-01 22:07:23
226
2
原创 2020牛客暑期多校训练营(第六场) Grid Coloring
题目描述 样例 输入 2 2 3 2 5 输入 1 2 3 1 3 2 1 3 2 1 2 3 -1 思路 首先,我们考虑不合法的情况。 若n=1n=1n=1,则是一个1×11×11×1的环,每涂上一个颜色就是一行或一列,肯定不合法。 若k=1k=1k=1,则只有一种颜色,每一行和每一列和每一个环都是同种颜色,肯定不合法。 若2n×(n+1)2n×(n+1)2n×(n+1)%k!=0k!=0k!=0,其中2n×(n+1)2n×(n+1)2n×(n+1)表示边的个数。横着的边有n×(n+1)n×(n+1
2020-07-28 18:48:34
186
原创 2020牛客暑期多校训练营(第六场) Binary Vector
题目描述 设,每天Roundgod从(即维度为n,每一位由01组成的所有向量的集合)中随机选择一个二进制向量。现在他想知道n天中选取n个线性独立向量的概率。答案的输出格式同上题,模数为。 设表示n的答案,最后输出,表示异或。 线性独立 对于问题B,A^n是仅包含0和1的n维向量。 ...
2020-07-28 16:06:06
157
原创 2020牛客暑期多校训练营(第六场) Harmony Pairs
原题 题目描述 设S(x)S(x)S(x)表示十进制表示下xxx的每位数字之和,当S(A)S(A)S(A)>S(B)S(B)S(B)时,(A,B)表示一个和谐对。(1≤N≤101≤N≤101≤N≤10100) 给定NNN,求满足0≤A≤B≤N0≤A≤B≤N0≤A≤B≤N的和谐对的数量,答案对1010109+7+7+7取模。 样例 输入 100 输出 967 思路 因为1≤N≤101≤N≤101≤N≤10100,所以直接存储或者直接暴力都不行。 这时候我们会想到记忆化,而且输入的数字数位非常多,所以
2020-07-28 14:54:52
267
原创 2020牛客暑期多校训练营(第六场) K-Bag
题目描述 当一个数列可以表示为若干个1到k的排列依次组成时,这个数列被称为k-bag。例如1,2,3,2,1,3,3,2,1是一个3-bag。 如果一个序列是一个k-bag的连续子串,则其称为part-k-bag。 求一个长度为n的序列是否是一个part-k-bag。 第一行包含一个整数T(1≤T≤20),表示测试用例的数量。 然后是T个样例。每个测试案例的第一行包含两个整数n,k (1≤n≤5⋅105,1≤k≤109)。 每个测试案例的第二行包含n个整数表示序列。保证∑∑∑n≤2⋅106,序列的值在
2020-07-28 14:19:32
313
原创 (2020牛客暑期多校训练营)[四] Count New String
题目描述 样例1 输入 dbca 输出 10 样例2 输入 dbcad 输出 15 思路 代码 #include<bits/stdc++.h> using namespace std; const int mod=998244353; const int maxn=1e5+5; char s[maxn]; int b[maxn][11],n,h,mx,w; long long ans; vector<pair<int,int> >v; map<int,ve
2020-07-26 16:54:36
243
原创 2020牛客暑期多校训练营(第五场) Graph
原题 题目描述 W先生得到了一个具有N个顶点和N-1条边的新图。 这是一个没有环的连通图。 每个边缘应具有难看的值。 为了使图形更美观,W先生希望您可以帮助他进行修改。 您可以一次删除或添加一个具有丑陋值的边,并且可以根据需要进行多次。 但是任何时候都应满足以下条件: 1、1、1、 图形已连接。 2、2、2、 对于图中的每个环,该环中所有丑陋值的XOR总和为0。 W先生想知道图中所有边的丑陋值的最小和。 输入描述: 第一行包含一个整数N (2≤N≤100000)。 接下来的N-1行每行包含三个整数U,V,
2020-07-26 16:39:19
442
原创 2020牛客暑期多校训练营(第五场) Portal
原题 题目描述 您现在在一家大工厂里。可以将工厂看作为具有n个顶点和m个边的图。每个边都有其长度。您有k个任务要做。第i个任务为达顶点aia_iai,拾取一个块,然后将其发送到顶点bib_ibi。您应该按照从1号到k号的顺序完成任务。最初,您站在顶点1。 你手里拿着枪。当您处于某个顶点u时,您可以向地面射击,然后将在顶点u建立一个传送门。当工厂中有两个传送门时,假设它们分别位于u和v处,则可以在u和v之间进行瞬间转移(就像连接长度为0的u和v的边一样)。 您的手边还有一个遥控器。它使您可以随时随地关闭传
2020-07-26 14:14:07
276
原创 2020牛客暑期多校训练营(第五场) Drop Voicing
原题 题目描述 Inaka创作音乐。今天的排列包括n个音符和弦,用排列p_1,p_2,…p_n表示从低到高的音符。 她的朋友Miyako并通过以下两个操作更改和弦: Drop-2:取出第二高音符并将其移至最低位置,即将排列更改为pn-1,p1,p2,…,pn-3,pn-2,pn。 反转:取出最低音符并将其移至最高位置,即,将排列更改为p2,p3,…,pn-1,pn,p1。 任意数量的连续Drop-2操作都被视为一个multi-drop。 Miyako希望以最少的multi-drop数目将排列更改为有序排列1
2020-07-25 20:39:24
228
原创 2020牛客暑期多校训练营(第五场) Bogo Sort
题目描述 今天,Tonnnny学习了一种称为Bogo Sort的新算法。 老师给了Tonnnny Bogo Sort的代码: 老师说,函数shuffle 是等概率地随机排列长度为n的数组a,这个算法的期望复杂度为O(n⋅n!)。 但是,Tonnnny是一个坚定的男孩——他一点也不喜欢随机! 因此,Tonnnny改进了Bogo Sort。 他选择了一个最喜欢的长度为n的排列p,然后用排列p替换随机的shuffle,因此改进的算法,Tonnnny Sort,可以解决长度为n的数组的排序问题——至少Tonnnn
2020-07-25 19:53:21
501
1
原创 2020牛客暑期多校训练营(第三场) Operating on the Tree
原题 题目描述 此问题是由问题G(Operating on a Graph )启发的。 因此,您需要阅读它的声明才能解决此问题。 您将得到一棵具有n个顶点的树。 假设p是从0到n-1的排列。 我们定义函数f(p)如下: 假设给定的树是问题G的输入图,而p是输入运算符序列。 f(p)是满足条件的操作数:执行第i个操作时,至少有一个顶点属于o[i]组。 令S为从0到n-1的所有可能排列的集合。 请计算 样例 输入 3 4 0 1 2 4 0 1 1 2 0 输出 48 60 2 思路 根据题意,我们先把点
2020-07-23 21:06:36
186
原创 (2020牛客暑期多校训练营)[四] Ancient Distance
题目描述 给定N个点构成的有根树,顶点编号从1-N,根节点为1号点。你可以分配最多K个关节点,使得所有点的最大“祖先距离”尽可能的小。点x的“祖先距离”是在点x到根节点上的路径上,点x与第一个关键点的距离。若x到根节点的路径上没有关键点,则为正无穷大。例如1-2-3树上,关键点为2,则三个点的“祖先距离”分别为{+∞,0,1}。 (给一个有根树,在树上选择 k 个关键点(根必须选),最小化点到最近关键祖先距离的最大值,求出 k 分别为 1,2,…,n 时答案的和) Input 多组数据 输入N 在第二行中有
2020-07-23 14:48:53
260
原创 (2020牛客暑期多校训练营)[四] Sort the Strings Revision
原题 题目描述 有n + 1个长度为n的字符串— s[0],s[1],…,s[n]。字符串中的字符从0到n-1(从左到右)编号。 s0的第i个字符是i取模10后的数字。 例如,如果n = 5,则s[0]为“ 01234”,如果n = 14,则s[0]为“ 01234567890123”。 给定一个0到n-1的排列:p [0],p [1],…,p [n-1]和长度为n的数字序列: d [0],d [1],…,d [n-1]。s[i + 1]可以通过用数字d [i]代替s[i]的第p[i]个字符来获得。注意,如
2020-07-22 20:41:23
299
原创 (2020牛客暑期多校训练营)[四] Dividing Strings
题目描述 长为n的十进制字符串s,将其分割为至少2个非空连续子串,并使得这些子串的最大值与最小值之差尽可能小。子串的值是其转化为十进制的数值。 例如,s=“1230”,可以将其分为"12"和"30",两个子串的值分别为12和30。注意,子串不能有前导0,例如对于字符串"001",只能将其分割为"0",“0"和"1”。 请输出字符串s分割后的子串最大值与最小值的差,这个差应该尽可能小 样例 输入 4 2 08 5 10199 7 9710296 8 12341234 输出 8 2 6 0 思路 我们先讨论
2020-07-21 21:00:27
245
1
原创 (2020牛客暑期多校训练营)[四] Investigating Legions
题目描述 样例 输入 1 10 20 101110101010101010100010010101010100101010010 输出 0 0 1 0 1 0 1 0 1 0 思路 将这道题转换一下,发现这是一道关于染色的题目。 但是由于给出的信息可能是错的,所以我们假设若条件的一半及以上都是正确,则这一条信息是正确的。反之,就是错误的。 我们先遍历每一个点,若被染过了,则跳过。若没有被染,搜索一下和他在一个军团的军队,并验证一下这一条信息是否正确。若正确,则将它染色。反之,跳过。每搜索完一个点,也就
2020-07-21 20:35:02
281
原创 (2020牛客暑期多校训练营)[四] Harder Gcd Problem
题目描述 样例 输入 2 4 10 输入 1 2 4 4 3 9 5 10 8 2 4 6 题目解释 输入一个数n,表示有1~n这n个数,问有多少对不重复的数不互质 思路 原来错误的思路: 先计算出了对数为floor(n-1-a)(a是乘2大于n的质数) 因为乘2大于n的质数和1与其他数字肯定是互质的,所以直接舍去。剩下的数两两配对就行。 配对方案:先素数和素数的平方配,然后素数和它的倍数配,然后奇数和偶数配,最后偶数和偶数配。 因为最后奇数和偶数配的时候,可能会有几个奇数和剩余的偶数都互质,所以导致
2020-07-21 14:42:14
163
原创 (2020牛客暑期多校训练营)[四] Basic Gcd Problem
题目描述 样例 输出 2 3 3 10 5 输入 3 25 思路 刚开始没看懂这个函数在干啥,直接调用,结果TLE。。后来经过一些dalao的讲解,发现这是一道非常水的题。只要求出n的质因子的数量,记为sum。所以,题目就变成了求c的sum次方。因为t<=10^6,所以要用快速幂。 代码 #include<bits/stdc++.h> using namespace std; const int mod=1e9+7; const int M=1e6+5; int t,n,m,a[M]
2020-07-21 12:22:21
184
1
原创 (2020牛客暑期多校训练营)[三]Fraction Construction Problem
题目描述 样例 输入 3 4 1 1 6 37 111 输出 -1 -1 -1 -1 1 2 1 3 145 87 104 78 思路 本题有一个巨大的坑,就是要开longlong。为了保险起见,我全开了longlong。不知道为什么,有人开longlongTLE。我就AC了,可能姿势比较好吧。。 因为本题是多组测试数据,所以可以先打好素数筛,减少时间。 第一种情况,无解。若b只有一个质因数,则无解。这里只包括a与b互质的情况。 第二种情况,有解。若a和b不互质,则一定有解,随便输出一个就行。 若a和
2020-07-19 21:02:56
246
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅