Codeforces Round #426 (Div. 2)
摘要:AB都是水题。 C,设A和B是输入的最终分数,A和B一定具有这样的形式:A=a*b*b, B=a*a*b。那么A*B开三次方得到a*b,从而得到a和b,只要a和b存在答案便存在。开三次方使用二分即可。 D题,题意是使序列刚好分成k段,每段的贡献值为这段不同数字的个数,问一种分法使得分数最大,求最大的
阅读全文
CodeForces 787 题解
摘要:A题,因为数据范围很小,所以只要暴力即可,如果能相遇一定范围不大,如果范围很大还没相遇一定是不会相遇的了。正解应当是用扩展欧几里得计算这个方程的整数解,再想办法看看有没有正整数解才是。 B题,只要看懂了题意,用map维护一下即可。真不知道题目给的n是干嘛用的。。 C题,如果不存在loop的情况就用n
阅读全文
2017年浙江省赛总结
摘要:最终是5题银。其实感觉再给点时间能7题的,主要是最后机子不够用了,没时间调试了,当然代码能力弱也是很大的一个问题。 E题,队友当时卡了很久,最终是A了。赛后发现就是一个很水的数位DP。。代码如下: 1 #include <stdio.h> 2 #include <algorithm> 3 #incl
阅读全文
UVA 11525 Permutation ——(线段树,脑筋急转弯)
摘要:只要注意到对于譬如:S1*(k-1)! 因为后面k-1个数字的全排列个数刚好是(k-1)!,那么第一个数字就是没有取过的数字的第(S1+1)个即可。取走这个数字以后这个数字就不能再用了,依次类推即可得到整个排列了。 那么随便用线段树维护一下即可。 代码如下:
阅读全文
2017 ZSTU寒假排位赛 #7
摘要:题目链接:https://vjudge.net/contest/149498#overview。 A题,水题,直接按照题意模拟一下即可。 B题,我用的是线段树。大力用的差分标记(上次听zy说过,下次再做些类似的题目好了),lyf的方法也不错。 C题,不难发现,00是不能变成其他的,而11可以变成10
阅读全文
2017 ZSTU寒假排位赛 #5
摘要:题目链接:https://vjudge.net/contest/148901#overview。 A题,排序以后xjbg即可。 B题,弄个数组记录当前列是不是删除以及当前行是不是已经大于下一行然后乱搞即可。 C题,线段树写的比较无脑,但是可以直接搞,在遍历的时候记录最大的,然后继续找的时候更新答案即
阅读全文
Codeforces Round #373 (Div. 2)
摘要:A题,水题。只要细心一点就能做出来的。 B题,最后的排列只可能是rbrbr..或者brbrb..,那么枚举这两种情况,统计当前序列和他们不同的r或者b的个数,假设为x和y,那么较小的他们互换即可,而剩下的只能重刷,因此,答案是min(x,y)+max(x,y)-min(x,y)=max(x,y)。最
阅读全文
2017 ZSTU寒假排位赛 #3
摘要:题目链接:https://vjudge.net/contest/147974#overview。 A题,费用流,不会。。跳过了。 B题,给一个图,问至少添加几条边能成为强连通图。显然缩点,要使得成为一个scc,任意一个点都要至少一个入度和出度,而一条边可以提供一个入度和出度,因为答案为max(入度为
阅读全文
2017 ZSTU寒假排位赛 #2
摘要:题目链接:https://vjudge.net/contest/147632#overview。 A题,状态压缩一下然后暴力即可。 B题,水题,略过。 C题,有负数,前缀和不是单调的,因此不能用尺取法。做法是枚举左端点i,然后在[i,n]这个范围内用线段树查找最左边的pre>=S+pre[i-1]的
阅读全文
HDU 1255 覆盖的面积 ——(线段树+扫描线)
摘要:又做了一题扫描线以后对节点的覆盖标记理解的更加深刻了。 代码如下:
阅读全文
HDU 3265 Posters ——(线段树+扫描线)
摘要:第一次做扫描线,然后使我对线段树的理解发生了动摇= =。。这个pushup写的有点神奇。代码如下:
阅读全文
CodeForces Good Bye 2016
摘要:A题,水题略过。 B题,也水,但是想复杂了。只要运动超出[0,20000]的范围就算不可能了。 C题,我自己的方法是解不等式,然后取最大的答案即可。代码如下: 1 #include <stdio.h> 2 #include <algorithm> 3 #include <string.h> 4 #i
阅读全文
zstu2016校赛圣杯战争
摘要:这题不知道为什么就是T,简直有毒。 思想和巴比伦那题差不多。 话说,寻找一个区间内满足一个条件的最左(右)边的一个数,用线段树来写,应该是可以的,之前博客里大连网赛那题的线段树写法应该是有点小问题的。现在按照下面的套路来,虽然是T的= =。当然也可以用单调栈来实现。 代码如下(T的):
阅读全文
UVA 12501 Bulky process of bulk reduction ——(线段树成段更新)
摘要:和普通的线段树不同的是,查询x~y的话,给出的答案是第一个值的一倍加上第二个值的两倍一直到第n个值的n倍。 思路的话,就是关于query和pushup的方法。用一个新的变量sum记录一下这个区间里面按照答案给出的方式的值,比如说,这个节点的区间是1~3,那么这个节点的sum值就是(1*val[1]+
阅读全文
Light Switching(SPOJ LITE)—— 线段树成段更新异或值
摘要:题目连接:http://www.spoj.com/problems/LITE/en/。 题意:有若干个灯泡,每次对一段操作,这一段原先是亮的,就关了;原先是关着的,就打开。询问某一段的打开的灯泡的个数。 分析:很显然的成段更新,但是一开始想着用某段是不是相同的来维护,敲了很长时间都没有实现。后来经过
阅读全文
ACM之路(14)—— 线段树的日常(上)
摘要:我的线段树简直有毒,各种错误都能忙上半天。做了kuangbin的线段树专题的一半,还有一半留到以后去做。 链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=66989#overview 总结一下题目吧: A和B都是最简单的线段树,也没有
阅读全文