摘要:
题目链接:http://115.231.222.240:8081/JudgeOnline/problem.php?cid=1005&pid=7 题意:中文题面。 手动画一下会发现所求边必然存在于最大生成树上,那么就可以首先构造一棵最大生成树。 问题转化成一棵树上求两个点之间的链上的最短边,用倍增lc 阅读全文
摘要:
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4417 题意:给定n个数和q次询问,每次询问[l,r]区间内不比k大的数字的个数。 直接上归并树,每次查询直接查区间内小于等于k的数的个数,二分即可。 用数组写了个,快了不少。 阅读全文
摘要:
题目链接:http://poj.org/problem?id=2104 题意:略 最近想学一下分块,搜到了这道题。结果在《挑战》上另外看到了另外的用线段树做的算法。后来才知道,这种记录归并排序过程的树叫归并树。利用STL,非常好实现。 思路就是首先二分答案,拿着这个答案在归并树上找对应区间比这个数小 阅读全文
摘要:
把1、2和3、4的藏钱地方的钱的和的可能枚举出来,原始的O(n^2)会tle,用fft。 然后暴力枚举query的值,拆成两半,把两部分的和乘起来。 阅读全文
摘要:
题目链接:http://codeforces.com/contest/762/problem/C 题意:两个字符串a、b。希望在a中删掉连续的字符串,使得b是a的子序列。 希望删掉的是连续的字符串,那么可以预处理两个数组pre和suf。 pre(i)表示b[0,i]为a的子序列,a的最短长度。 su 阅读全文
摘要:
题目链接:http://codeforces.com/contest/798/problem/D 题意:两个数列a、b,分别有n个数。希望选出下标相同的尽可能少的数字,使得它们分别的和为两个数列中数字分别总和的一半,尽可能少指的是≤ 。只要在这个范围内,都算符合条件。 不妨就认为题目是要选个数字,使 阅读全文
摘要:
题目链接:http://codeforces.com/contest/798/problem/C 题意:给n个数,和一种操作:把a(i)和a(i+1)变成a(i)-a(i+1)和a(i)+a(i+1)。问能不能把整个数列变成gcd>1,能的话输出最少步骤。 贪心地认为假如需要这种操作,那么gcd为2 阅读全文
摘要:
题面: 这题的O(n^2) dp很容易想出来,由于我没有数据,也没法提交测试。所以就拿这个dp来简单对拍了。 这道题的n非常大,显然这个O(n^2)的dp是非常不给力的,考虑转移状态:dp(i)一定由之前的dp(j)转移过来,并且这个dp(j)一定是a(j)符合条件并且dp(j)是最大的。可以用线段 阅读全文