摘要: 285C - Building Permutation 思路:贪心。因为每个数都不同且不超过n,而且长度也为n,所有排列只能为1 2 3 ......n。所以排好序后与对应元素的差值的绝对值加起来就是答案。 代码: 阅读全文
posted @ 2017-07-24 14:51 Wisdom+.+ 阅读(237) 评论(0) 推荐(0) 编辑
摘要: 388C - Fox and Card Game 思路:贪心博弈。 如果是偶数个一人一半;如果是奇数个,中间那个数单独取,其他一人一半。单独取的数排一下序再取。 代码: 阅读全文
posted @ 2017-07-24 14:23 Wisdom+.+ 阅读(236) 评论(0) 推荐(0) 编辑
摘要: 388A - Fox and Box Accumulation 思路: 从小到大贪心模拟。 代码: 阅读全文
posted @ 2017-07-24 14:18 Wisdom+.+ 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 614E - Necklace 思路:如果奇数超过1个,那么答案是0;否则,所有数的gcd就是答案。 构造方案:每个数都除以gcd,如果奇数个仍旧不超过1个,找奇数个那个在中间(如果没有奇数默认a),其他的平均分到两边。 如果奇数个数超过1个,为了保证中间点之间的每个字母个数是偶数个,那么就拿上种情 阅读全文
posted @ 2017-07-23 23:27 Wisdom+.+ 阅读(355) 评论(2) 推荐(0) 编辑
摘要: 556D - Case of Fugitive 思路:将桥长度放进二叉搜索树中(multiset),相邻两岛距离按上限排序,然后二分查找桥长度匹配并删除。 代码: 阅读全文
posted @ 2017-07-23 15:37 Wisdom+.+ 阅读(258) 评论(0) 推荐(0) 编辑
摘要: 197D - Infinite Maze 思路:bfs,如果一个点被搜到第二次,那么就是符合要求的。 用vis[i][j].x,vis[i][j].y表示i,j(i,j是取模过后的值)这个点第一次被搜到的位置,用vis[(next.x%n+n)%n][(next.y%m+m)%m]标记,因为位置可以 阅读全文
posted @ 2017-07-20 13:47 Wisdom+.+ 阅读(301) 评论(0) 推荐(0) 编辑
摘要: 260D - Black and White Tree 思路:把两种颜色先按值sort一下,最小值肯定是叶子,然后把这个叶子和另外一中颜色的一个最小值的节点连接起来,再把这个节点变成叶子,把值减掉就可以了。 如下图: 代码1: 代码2(写残版): 我居然用了优先队列,患上STL综合症的我脑残了。 阅读全文
posted @ 2017-07-19 17:37 Wisdom+.+ 阅读(312) 评论(0) 推荐(0) 编辑
摘要: 算法笔记 map: set: 阅读全文
posted @ 2017-07-19 14:44 Wisdom+.+ 阅读(202) 评论(0) 推荐(0) 编辑
摘要: 260B - Ancient Prophesy 思路:字符串处理,把符合条件的答案放进map里,用string类中的substr()函数会简单一些,map中的值可以边加边记录答案,可以省略迭代器访问部分。 代码: 阅读全文
posted @ 2017-07-19 14:19 Wisdom+.+ 阅读(268) 评论(0) 推荐(0) 编辑
摘要: 260C - Balls and Boxes 思路:模拟。在x前面找到最小值,如果没有,从0跳到n,继续找到最小值,边找最小值路过的点边减1。然后所有值都减去最小值,最小值那个点加上减去的值。 找到x前面离x最近的最小值的原因:如果如果在x到最小值之间还有最小值,那么这个最小值最后会变成-1。 简单 阅读全文
posted @ 2017-07-19 14:14 Wisdom+.+ 阅读(234) 评论(0) 推荐(0) 编辑
摘要: 559B - Equivalent Strings 思路:字符串处理,分治 不要用substr(),会超时 AC代码: TLE代码: 阅读全文
posted @ 2017-07-18 17:05 Wisdom+.+ 阅读(380) 评论(0) 推荐(0) 编辑
摘要: 580A - Kefa and First Steps 思路:dp dp[i]表示包括前i个元素中a[i]在内的最大增序列。 代码: 阅读全文
posted @ 2017-07-18 16:14 Wisdom+.+ 阅读(219) 评论(0) 推荐(0) 编辑
摘要: 447D - DZY Loves Modification 思路:将行和列分开考虑。用优先队列,计算出行操作i次的幸福值r[i],再计算出列操作i次的幸福值c[i]。然后将行取i次操作和列取k-i次操作,那么多加的幸福值就是i*(k-i)*p,因为无论先操作行还是列,每操作一次一个格子只减一次p。这 阅读全文
posted @ 2017-07-18 15:04 Wisdom+.+ 阅读(333) 评论(0) 推荐(0) 编辑
摘要: 算法笔记 priority_queue<int>que;//默认大顶堆 或者写作:priority_queue<int,vector<int>,less<int>>//less表示其他元素都比堆顶小 小顶堆:priority_queue<int,vector<int>,greater<int>>// 阅读全文
posted @ 2017-07-18 14:54 Wisdom+.+ 阅读(216) 评论(0) 推荐(0) 编辑
摘要: 447C - DZY Loves Sequences 思路:dp 代码: 阅读全文
posted @ 2017-07-18 11:47 Wisdom+.+ 阅读(248) 评论(0) 推荐(0) 编辑
摘要: gcd 一行版: 快速幂和快速乘 扩展欧几里得(扩展gcd) 乘法逆元 扩展欧几里得版: 费马小定理版: 当模数不为质数时,是 a ^(phi(p) - 1) 逆元递推版 普通素数筛(埃筛,复杂度O(nlog(log(n)))) 线性素数筛(欧拉筛,复杂度O(n)) 求单个欧拉函数 普通筛法求欧拉函 阅读全文
posted @ 2017-07-14 23:11 Wisdom+.+ 阅读(282) 评论(0) 推荐(0) 编辑
摘要: 算法笔记 参考资料:https://wenku.baidu.com/view/25540742a8956bec0975e3a8.html sg函数大神详解:http://blog.csdn.net/luomingjun12315/article/details/45555495 sg[i]定义,从i 阅读全文
posted @ 2017-07-14 21:38 Wisdom+.+ 阅读(2022) 评论(0) 推荐(0) 编辑
摘要: 丢史蒂芬妮 代码: 阅读全文
posted @ 2017-07-14 17:07 Wisdom+.+ 阅读(360) 评论(0) 推荐(0) 编辑
摘要: hdu 5724-Chess 代码: 阅读全文
posted @ 2017-07-14 16:02 Wisdom+.+ 阅读(319) 评论(4) 推荐(0) 编辑
摘要: D - High Load 因为要出口节点距离最小,所以除了根节点(根节点连接k个儿子)其他节点的儿子只能有一个,其他情况下的距离都比这个长,因为如果不是这样,那么根节点连接的子树数量就小与k,那么每个子树的长度就更长了(显然,画图可证)。 n-1个节点平均分配到k条子树上,如果画图的话,是这样的 阅读全文
posted @ 2017-07-12 16:43 Wisdom+.+ 阅读(194) 评论(0) 推荐(0) 编辑