ACM_BC
文章平均质量分 54
jason_star
我要变强!
展开
-
hdu 5056 Boring Counts
停了好久没有写博客来记录自己的ACM生活了,之前一直是觉得大神应该原创 2014-09-29 23:01:59 · 684 阅读 · 0 评论 -
【BC】5192 Building Blocks Ⅱ(思维题+树状数组维护)
题目思路: 首先得明白的是假设高度为h的时候,我们求取最少步数的方法是:max(∑(Hi−h),∑(h−Hj))(Hi>h,Hj≤h) 其中可以等价于 max(∑Hi−cnt(i)∗h,cnt(j)∗h−∑Hj) 用语言表达的意思就是H1(高于h的所有积木的高度相加之和)-cnt1(高于h的所有积木的堆数)*h 与 H1(低于h的所有积木的高度相加之和)-cnt1(低于h的所有积木的堆原创 2015-03-23 20:21:50 · 529 阅读 · 0 评论 -
【HDU】5175 Misaki's Kiss again(反异或|搜索匹配因子做法)
思路:求出n的所有因数 然后设m=n^p[i],p[i]是n的因子,就会得到原来的数,反异或即可。 AC代码:#define _CRT_SECURE_NO_WARNINGS #include<iostream> #include<cstdio> #include<algorithm> using namespace std; long long p[10000]; long long mid[1原创 2015-02-14 21:36:58 · 608 阅读 · 0 评论 -
【Best Coder】#34 B Building Blocks
题目思路:首先按题解的要找出w区间的方法, 我是用long long型的need和out,max(need,out)表示的就是这区间所要移动的积木的数量。 然后从左往右移动这个区间,可以发现, 当这个区间往下一个区间移动的时候,发生改变的只是头和尾的值。 所以这边我们就不需要重新计算了,只需要将尾减去,加上新进来头的值就可以得到新一个w区间的need和out 另外是处理新赠堆的情况。由于题原创 2015-03-22 09:53:10 · 577 阅读 · 0 评论 -
【Best Coder】#35 DZY Loves Topological Sorting(线段树维护)
题目思路:题目要求点数最大的优先输出。由于可以将k条边去掉。 所以这边的一个基本思想就是。面对这次的输出。我们应该选择一个点数最大的,并且他的入度 并且注意是每次。每次都得重新选择。 下面这组数组就会让你懂得 5 3 2 4 5 3 5 1 5 答案应该是 4 5 3 2 1 所以这边需要实时更新每个点的入度,并且每次选择最大的那个入度小于k的那个点,正好利用线段树的维护和查询原创 2015-03-29 23:00:05 · 592 阅读 · 0 评论 -
【Best Coder 】 32 B Negative and Positive (NP)
思路:题目是根据所给的规则,判断是否在一个区间i-j的结果等于k。 其实要求i-j区间的值我们可以采用1-j的值减去1-i的值即可得到i-j的值。 sum[j]-sum[i]=k sum[j]-k=sum[i] 问题就可以转化成判断sum[i]是否存在,而sum[i]假如存在的话,一定在求解sum[j]之前求解过了 所以我们不妨将求解过的sum[l]全部假如hash表当中,只要对sum[原创 2015-03-09 10:32:39 · 410 阅读 · 0 评论 -
【BestCoder Round #25】A(拓扑排序,找环)
题意不难看出是一道简单拓扑题目,自己对于拓扑一直没能掌握。这边就不写思路了,直接上代码了。 我的代码: #include #include #include using namespace std; bool DIS[110][110]; int r[110]; bool vis[110]; int main() { int n, m; while (cin >> n >> m) {原创 2015-01-03 22:06:39 · 799 阅读 · 0 评论 -
【BestCoder】#29 C GTY's gay friends(区间和 随机数判重)
题目大意:可以到相应的场次查看中文翻译。 思路:其实这道题很简单,对于一个等差数列,我们要判断他是否每个数都出现,只需要判断区间和或者是最大值是否符合即可,但这边需要注意的便是中间的重复部分。最大值的判重必要性我就不知道了,而且我也不会做,目测做也超时。 这边就写一下偷别人的区间和 随机数判重的做法 其实这边判重的方法是给一个数加上一个超过1000007的权,然后在计算和的时候,便是唯一的。原创 2015-02-07 21:46:29 · 908 阅读 · 0 评论 -
【Best Coder】#29 B GTY's birthday gift(快速幂|mod的时候记得负!)
题目大意:查看相关场次即可看到。 思路:推公式的题目,可以用快速幂加公式快速解决,也可以用二进制拆分运算的方法加快速度。 需要注意的一点在于:今后在mod之后有涉及到运算的都要加上一个mod之后再mod,或者统一都加一个mod 顺便复习一下二进制拆分的方法!! 二进制拆分的做法AC代码:#define _CRT_SECURE_NO_WARNINGS #include<iostream> #i原创 2015-02-07 22:55:53 · 943 阅读 · 0 评论 -
【BestCoder】36 B Gunner(哈希)
#define _CRT_SECURE_NO_WARNINGS #include #include #include #include using namespace std; #define MAX 1000010 #define mod 1000007 int head[MAX],cnt; struct edge { int x; int cnt; int next;原创 2015-04-04 22:36:05 · 546 阅读 · 0 评论