helpless fucking 结论:如果一个数可以被对于a序列中每个数的最大公约数整除,那么它就是好的. Bitch Man 感性证明: 贪心地想,对于a序列中的任意两个数,它们的最大公约数可由这两个数相减得到. 而且显然这个最大公约数完全可以替代掉原来的两个数并成为a序列中的一个新的元素. 这个新的元素就可以和其他元素继续取最大公约数. 给所有数取个最大公约数,这个最大公约数会替代掉整个a序列中的所有元素.…
Boring 构造一棵包含1号结点的连通子集个数刚好为给定的n的树. 这棵树的结点不能多于60. 1<=n<=109 Gai 容易得到,计算给定一棵树的Ans1,其中Ansi表示包含i号结点的连通子集个数. 也即, 对于树上的任意一个非叶子结点u,都有: Ansu=∏u∈son(v)(Ansu+1) 现在构造出一个Ans=n的树上结点now, 1.若此时n是偶数,那么: 新建一个结点new,给now和new连一条边. 这样等价于构造出一个Ans=n/2的树上结点now. 就回到原问题. 2.若…
2019.8.3 [HZOI]NOIP模拟测试12 C. 分组 全场比赛题解:https://pan.baidu.com/s/1eSAMuXk 刚看这题觉得很难,于是数据点分治 k只有1和2两种,分别讨论: k=1:根据人类直觉,不难想到一种贪心策略:从前往后扫,若扫到的数能加入当前这段就加入,否则再开一段新的. 于是你就WA了... 题目要求字典序最小,而我们的策略会让当前段尽可能长,所以划分点会靠后.例如:1 2 3 4 5,可以分为{1},{2,3,4},{5}三段,而我们的策略得到的答案…
2019.8.3 [HZOI]NOIP模拟测试12 B. 数颜色 全场比赛题解:https://pan.baidu.com/s/1eSAMuXk 数据结构学傻的做法: 对每种颜色开动态开点线段树直接维护 操作一区间查询 操作二转化为单点修改 常数有点大,需要稍微卡常. 正解: 对每种颜色开vector存储出现位置(下标),可以发现每种颜色出现位置满足单调性,操作一直接二分找到这段区间,操作二找到两个位置修改. Code: #include <bits/stdc++.h> using names…
2019.8.3 [HZOI]NOIP模拟测试12 A. 斐波那契(fibonacci) 全场比赛题解:https://pan.baidu.com/s/1eSAMuXk 找规律 找两个节点的lca,需要能快速根据编号求出父亲的编号. 斐波那契数列:1.2.3.5.8.13.21... 第10对兔子的父节点:斐波那契数列中小于10的最大项为8,所以第10对兔子的父节点为10-8=2. 很容易理解:第5个月时,共有8对兔子(斐波那契第5项),到了第6个月时,共13对兔子.多出的5对兔子,一定是已经成…
[NOIP2017提高A组模拟9.12]Arrays and Palindrome[SPJ] 题目 Description Input Output Sample Input 1 6 Sample Output 6 2 1 5 Data Constraint 题解 题意 em--语言组织能力不行,看题吧 题解 结论题 可以证得\(A\)里最多只有2个奇数,否则无解 分情况讨论 0个奇数:\(a\)就是\(A\),\(b\)是\(A_1+1,A_2...A_{n-1},A_n-1\) 1个奇数:…
[题解在下面] 早上5:50,Gekoo同学来到机房并表态:“打暴力,打暴力就对了,打出来我就赢了.” 我:深以为然. (这是个伏笔) 据说hzoi的人还差两次考试[现在是一次了]就要重新分配机房,不知道我们几个的安排是什么样的,瑟瑟发抖.各种原因作用,心情有些微妙地一遍瞎画一边等着7:10考试开始. 不怎么适合涂鸦的本,不怎么适合涂鸦的笔,不怎么适合涂鸦的心情.考试开始,我摔笔看题. T1上来感觉东西很多很麻烦,过了一遍题发现大概要耐下心来去仔细推一推性质,于是没细想先跳过.然后看T2,受到上…
嗯,rank5.没什么可评价的,高不算高低不算低. 一套好题,被我浪费了. 离上面280的大神差的有点远. 分机房的绝响就要来临. 越来越感觉自己变菜了,整体的能力水平在下滑. 说的不只是考试,包括平时. 这次考试吧,T1是个数学类的,很简单的找规律,A掉了.没找到规律暴力有70分. 我也不知道为什么,那么简单的题做得奇慢.全场共14个AC可见其难度真的不高. 虽说干掉了它,可是严重挤压了后两题的时间. 简单题切掉就切掉,切不掉就暴力,要用尽量短的时间拿到尽量多的分数. T2正常的想法是高级数据…
Link https://jzoj.net/senior/#main/show/4216 Description 给出一个N个整数构成的序列,有M次操作,每次操作有一下三种: ①Insert Y X,在序列的第Y个数之前插入一个数X: ②Add L R X,对序列中第L个数到第R个数,每个数都加上X: ③Query L R,询问序列中第L个数到第R个数的平方和. Solution 我不会告诉你这道题我打了10000+byte,并且改了2个月,50多个小时,删掉代码重打了5次.这道题用splay来…
期望得分:100+100+50=250 实际得分:100+100+30=230 A 约数之和(count.pas/c/cpp) TL:1S ML:128MB[Description]我们用 D(x)表示正整数 x 的约数的个数.给定一个正整数 N,求 D(1)+D(2)+…+D(N).[Input]一行一个正整数 N.[Output]一行一个整数,表示答案[Sample Input]5[Sample Output]10[Hint]样例解释:D(1)=1 D(2)=2D(3)=2 D(4)=3 D…