HGOI 20190705 题解】的更多相关文章

Problem A 树状数组 给出数x,一直执行x = x and (x+1)-1 直到 x=0 为止 询问这个数执行运算的次数. 这个数以二进制的形式表述出 x = s1 & s2 .... s2 & s3 其中s2字段重复n次 &表示连接符号. 对于$100\%$的数据 $ length(s1),length(s2),length(s3) \leq 10^3 ,n \leq 10^6$ Sol : 这道题目就是求x+1中含有二进制1的个数. 不妨设x=A111...其中A表示一…
HGOI 20181028(复赛备考) /* 真是暴力的一天,最后一题MLE?由于数组开得太大了!!! 270滚粗 考场上好像智商高了很多?!(假的) */ sol:暴力求解,然后没有数据范围吐槽一下(我开了10000000) code:(100pts) # include <bits/stdc++.h> using namespace std; ; char s[MAXN]; int fun(char c) { ;;; ; ; ; ; } bool check(int l,int r) {…
/* 又是又双叒叕WA的一天... 我太弱鸡了... 今天上午打了4道CF */ Problem 1 meaning 给出q组询问,求下列函数的值$ f(a) = \max\limits_{0 < b < a} \{   gcd(a\oplus b,a \ \& \ b)\} $ 对于100%的数据 $q\leq 1000, 2 \leq a_i \leq 2^{25}-1$ 结论题,直接打表找结论,发现当$a \in [2^{n-1},2^{n}-2] (n \geq 2)$ 答案为…
/* 记一串数字真难. 5435 今天比赛又是hjcAK的一天. 今天开题顺序是312,在搞T1之前搞了T3 昨天某谷月赛真是毒瘤. 但是讲评的同学不错,起码T4看懂了... 构造最优状态然后DP的思路真妙 */ Problem A lcp 给出字符串S,m个询问,每个询问含有$l1,r1,l2,r2$求|S|子串$[l1,r1]$和$[l2,r2]$的LCP(最长公共前缀) 对于100%的数据$ 1 \leq |S|,m \leq 10^5 , l1 \leq r1 ,l2 \leq r2$…
/* The Most Important Things: ljc chat with fyh on QQTa说期末考Ta数学74分感觉不好但是我觉得fyh是地表最强的鸭~~(of course encourge her) About Today's Training: 玄学错误,没有开longlong+没有算好空间(还不如暴力) 还是得继续加油. 本来以为今天是AK局来着呢.. */ Problem A password 求$\sum\limits _{i=1} ^n i^2 2^i$ 的值,…
/* 又是AK局... hjc又双叒叕AK了... Hmmm...我侥幸 */ Problem A card 给出无序序列a[]可以选择一个数插入到合适的位置作为一次操作,至少多少次操作后可以把序列变成有序. 对于100%的数据,序列长度 $l\leq5e5$ Solution : 最长上升子序列(LIS)-n  这个是显然的结论,最优的话一定是保证LIS情况下,把除LIS外的数依次加到有序的LIS里面刚好加了这么多个. 所以答案是n-LIS,最优性显然: LIS保证需要插入的数字数量最少,而需…
/* for me,开训第一天 /beacuse 文化课太差被抓去补文化课了... 看一眼题 : AK局? 但是,Wa on test #10 in problem C 290! (就差那么一咪咪) 膜 _AK的_郝竟成 (id确实是这个) 说AK就AK了... 他踩了STD 阿! (我)下午溜出去社会实践3h(with hjc) */ 今天的题目好像都是一眼题: Problem A  百万小小兵(Millian) 问[1,n]和n不互质的数有几个? Solution: 在某同学在计算打表的时间…
problem:把一个可重集分成两个互异的不为空集合,两个集合里面的数相乘的gcd为1(将集合中所有元素的质因数没有交集) solution:显然本题并不是那么容易啊!考场上想了好久.. 其实转化为上面的题意就简单多了,对于每一个元素分解质因数,就是在筛质数的时候记下每一个合数的最小质因子low[x],然后每一次不停的除low[x] 得到一个合数x',然后继续除low[x']即可,然后我们统计出含有每一个质因子的数有哪些(用一个二维vector),然后具有同种质因子的数必须放在同一个集合里面,…
/* 又是爆0的一天(不知道今年高考难不难,反正今天(信息学)真的难!) */ solution:对于两个数相加,有一个显然的结论就是要么不进位(相对于位数大的),要么(进最多一位) 然后对于整个数组先排序,然后枚举每一个数,在它的前面找到和他相加进1位的点,讨论不变位和进一位累加求和即可 由于数列有序对于最左边的p满足f(a[p]+a[now])=f(a[now])+1对于他的右边所有的数都符合进一位的条件,这样可以二分查找找到最左端的点 # pragma GCC optimze() # in…
Problem A 新婚快乐 一条路,被$n$个红绿灯划分成$n+1$段,从前到后一次给出每一段的长度$l_i$,每走$1$的长度需要$1$分钟. 一开始所有红绿灯都是绿色的,$g$分钟后所有红绿灯变成红色,再过$r$分钟,所有红绿灯又重新变为绿色. 以$r+g$分钟为一个周期,如此反复. 有$Q$组询问,如果第$t_i$分钟从第一条线段的首端出发走到最后一条线段末端需要的时刻. 对于$100\%$的数据满足$1 \leq n\leq 2\times 10^5$ , 其他所有数字都在$10^9$…